🔗
03 / 05
이중화 구성
Master-Replica GTID 기반 복제 설정. CHANGE MASTER TO, 병렬 복제, systemd 구성
ReplicationGTIDParallel
Replication
Master-Replica 이중화 구성
GTID 기반 복제로 Master-Replica 이중화를 구성했다. 병렬 복제(optimistic mode)를 적용해서 복제 처리량을 높이고, 워커 큐 설정으로 burst 상황에서도 안정적으로 동작하도록 했다.
복제 파이프라인
Replication Pipeline
Master→ binlog →IO Thread→Relay Log
Relay Log→SQL Coordinator→Worker 1~4
| 구성 요소 | 역할 |
|---|---|
| IO Thread | Master binlog를 읽어서 Relay Log로 저장 |
| Relay Log | Master와 Replica 속도 분리를 위한 버퍼 역할 |
| SQL Coordinator | Relay Log를 읽고 워커에게 작업 분배 |
| Worker Thread | 실제 INSERT/UPDATE/DELETE 실행 |
Replica 설정
my.cnf
[mysqld] server-id=2 relay-log=relay-bin read-only=ON log-slave-updates=ON gtid_strict_mode=ON # 병렬 복제 slave_parallel_threads=4 slave_parallel_mode=optimistic slave_parallel_max_queued=524288
CHANGE MASTER TO
CHANGE MASTER TO MASTER_HOST='[master-ip]', MASTER_PORT=[db-port], MASTER_USER='[repl-user]', MASTER_PASSWORD='[repl-password]', MASTER_USE_GTID=slave_pos; START SLAVE;
복제 상태 확인
SHOW SLAVE STATUS\G
| 항목 | 정상값 |
|---|---|
| Slave_IO_Running | Yes |
| Slave_SQL_Running | Yes |
| Seconds_Behind_Master | 0 |
| Gtid_Slave_Pos | Master와 동일 |
systemd 서비스 설정
# /etc/systemd/system/mariadb.service.d/override.conf [Service] LimitNOFILE=65535 LimitNPROC=65535
sudo systemctl daemon-reload sudo systemctl enable mariadb sudo systemctl start mariadb