MySQL MyISAM 무중단 리플리케이션 구성 방법 (mysqldump 기반)
MySQL에서 MyISAM 엔진을 사용할 경우에도 리플리케이션(replication) 구성이 가능합니다. 다만 MyISAM은 트랜잭션 미지원 및 Crash-safe 부재로 인해 완전한 의미의 무중단은 어렵습니다. 그러나 mysqldump 방식을 활용하면 최소한의 중단으로 리플리케이션을 구축할 수 있습니다.
이 글에서는 MyISAM 엔진 무중단(준무중단) 리플리케이션 구성 방법을 mysqldump 기반 단계별 매뉴얼로 정리합니다.
1. mysql myisam 무중단 리플리케이션 마스터 서버 설정
각 서버에 고유한 서버 ID 지정 및 bin-log가 활성화 되어야 합니다.
-
설정 파일 수정
[mysqld]
server-id=1
log-bin=mysql-bin
2. 복제 계정 생성
CREATE USER ‘repl’@‘%’ IDENTIFIED BY ‘비밀번호’; GRANT REPLICATION SLAVE ON *.* TO ‘repl’@‘%’; FLUSH PRIVILEGES;
2. mysql myisam 무중단 리플리케이션 슬레이브 서버 설정
1.고유한 서버 ID 지정
[mysqld]
server-id=2
relay-log=relay-log-bin
2. 버전 호환성 확인
슬레이브 MySQL 버전은 마스터와 동일하거나 더 높아야 합니다.
3. 데이터 동기화 (mysqldump 활용)
1.마스터에서 읽기 잠금 및 상태 확인
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
-
File, Position 값 기록 해 두어야 합니다.

2.mysqldump 실행
mysqldump -u root -p –all-databases –master-data=2 > dump.sql
3.잠금 해제
UNLOCK TABLES;
4.슬레이브 서버에 덤프 복원
덤프파일을 slave 서버로 옮긴 후 복원
mysql -u root -p < dump.sql
4. 슬레이브 서버 리플리케이션 시작
1 CHANGE MASTER TO 실행 (마스터 정보 입력)
CHANGE MASTER TO
MASTER_HOST=’마스터_IP’,
MASTER_USER=’repl’,
MASTER_PASSWORD=’비밀번호’,
MASTER_LOG_FILE=’mysql-bin.000001′, <- 위에서 기재해둔 master 의 값을 참고합니다.
MASTER_LOG_POS=12345; <- 위에서 기재해둔 master 의 값을 참고합니다.
2 슬레이브 시작
START SLAVE;
SHOW SLAVE STATUS\G
5. 운영 시 주의사항
-
MyISAM은 쓰기 시 테이블 락이 걸리므로 대량 처리 시 지연 발생 가능
-
Crash-safe 기능 부재로 인해 장애 시 데이터 정합성 깨질 위험 존재
-
Failover 자동화 도구(MHA, Orchestrator)는 권장되지 않음
-
주로 읽기 전용 쿼리 분산 용도로 활용
6. 최적화 및 대안
-
MyISAM은 무중단 리플리케이션 환경에서 한계가 크므로 장기적으로는 InnoDB로 마이그레이션하는 것이 가장 바람직합니다.
-
InnoDB는 트랜잭션 지원, Crash-safe, Hot backup 지원, 고가용성 아키텍처 호환성 측면에서 훨씬 우수합니다.
MyISAM 엔진 무중단 리플리케이션 구성은 mysqldump
방식을 통해 짧은 읽기 잠금만으로 구축 가능합니다.
비록 완전한 무중단은 어렵지만, 다운타임을 최소화하면서 복제 환경을 만들 수 있으며, 운영 안정성을 위해 InnoDB 전환이 권장됩니다.