Galera Cluster
동기식 멀티마스터 클러스터 솔루션으로,
모든 노드가 읽기/쓰기 요청을 처리할 수 있으며 데이터가 모든 노드에 실시간으로 동기화 됨
특징
- 동기식 복제 (Synchronous Replication)
트랜잭션 커밋 시 모든 노드에 적용되어 데이터 일관성을 유지
- 멀티 마스터 (Multi-Master)
어느 노드에서든 쓰기 가능
- 자동 노드 복구 (Automatic Node Join / Recovery)
신규 노드가 클러스터에 자동으로 합류, 데이터 동기화
장점
고가용성
데이터 일관성 보장
읽기/쓰기 부하 분산 가능
단점
쓰기 트랜잭션이 많은 환경에서 성능 저하 가능
네트워크 지연에 민감
클러스터 사이즈가 커질수록 동기화 오버헤드 증가
주요 구성 파일
my.cnf 혹은 mariadb.cnf
[mysqld]
# Galera 플러그인 로드
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# 클러스터 이름
wsrep_cluster_name="galera_cluster"
# 클러스터 노드 주소 (부트스트랩용)
wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip"
# 노드 고유 ID 및 호스트명
wsrep_node_name="node1"
wsrep_node_address="node1_ip"
# 동기화 옵션
wsrep_sst_method=rsync # 혹은 mariabackup/xtrabackup
모든 노드에서 `wrep_cluster_name`이 동일해야함
노드 IP 또는 호스트명을 정확히 지정해야함
SST (State Snapshot Transfer) 방법 선택 (rsync, mariabackup 등)
모니터링 방법
클러스터 상태와 동기화 상태를 확인하는 것이 핵심
- 노드 상태 확인
SHOW STATUS LIKE 'wsrep%';
# 주요 항목
wsrep_cluster_size : 클러스터 내 노드 수
wsrep_ready : 노드가 클러스터에 참여 가능한지 여부
wsrep_connected : 클러스터와 연결 상태
wsrep_local_state_comment : 현재 노드 상태 (Synced, Donor, Joining 등)
wsrep_incoming_addresses : 다른 노드의 IP
wsrep_flow_control_paused : 동기화 지연 정도
- 클러스터 헬스 체크
단순 SQL 모니터링 외에 Prometheus + MariaDB Exporter 조합 사용 가능
Galera 상태별 알람 (노드 분리, SST 실패) 설정
- 로그 확인
MariaDB 에러 로그 (error.log)에서 Galera 관련 오류 확인
네트워크 지연, SST 실패, quorum loss 등 문제점 확인
'Database > MySQL' 카테고리의 다른 글
| 피해야할 SQL 안티패턴들 (0) | 2025.11.15 |
|---|---|
| SQL을 떠나고 싶지만 떠날 수 없는 이유 13가지 (0) | 2025.10.19 |
| mariaDB 터미널 모니터링 (0) | 2025.02.02 |
| mySQL 날짜 속성 비교 (DATE / DATETIME / TIME / TIMESTAMP) (0) | 2024.11.30 |
| SQL 문장 가독성 향상 방법 (7) | 2024.09.28 |
