MySQL 마스터-슬레이브 복제(Master-Slave Replication) 또는 프라이머리-리플리카 복제(Primary-Replica Replication) 환경에서는 슬레이브(리플리카) 서버의 상태를 초기화해야 할 때가 있습니다.
이때 사용하는 명령어가 RESET SLAVE(MySQL 8.0.22부터는 RESET REPLICA)입니다.
MySQL RESET SLAVE / RESET REPLICA란?
RESET SLAVE / RESET REPLICA는 슬레이브(리플리카) 서버에서 복제 관련 정보를 초기화하는 명령어입니다.
이 명령어를 실행하면:
- 슬레이브(리플리카) 서버가 현재 마스터(프라이머리)와의 연결 정보를 삭제
- 복제 관련된 상태 및 로그 파일을 삭제하여 새로운 복제 설정이 가능하도록 초기화
MySQL 8.0.22부터 "슬레이브(Slave)" 용어가 "리플리카(Replica)"로 변경되었으며,
이전에는 RESET SLAVE를 사용했지만, 이후 버전에서는 RESET REPLICA를 사용합니다.
즉,
- MySQL 8.0.22 이전: RESET SLAVE
- MySQL 8.0.22 이후: RESET REPLICA
RESET SLAVE / RESET REPLICA의 주요 기능
- 슬레이브(리플리카) 복제 정보 초기화
- 현재 설정된 마스터(프라이머리) 서버 정보 삭제
- 복제 로그 파일(relay log) 및 관련 정보 삭제
- 복제 연결 강제 종료
- STOP SLAVE 또는 STOP REPLICA 명령어를 실행한 것과 동일한 효과
- 슬레이브(리플리카) 서버에서 복제 중인 데이터 흐름을 중단
- 새로운 복제 설정을 위한 준비
- 기존 복제 정보 제거 후, 새로운 CHANGE MASTER TO 명령어를 사용할 수 있도록 환경 재설정
- 완전 초기화 옵션 사용 가능 (ALL 옵션)
- RESET SLAVE ALL 또는 RESET REPLICA ALL을 사용하면 복제 관련 계정 정보까지 완전히 삭제
RESET SLAVE / RESET REPLICA 기본 문법
1. 기본적인 초기화
RESET SLAVE;
또는
RESET REPLICA;
2. 완전한 초기화 (ALL 옵션 사용)
RESET SLAVE ALL;
또는
RESET REPLICA ALL;
이 명령어는 슬레이브(리플리카) 상태를 완전히 초기화하고, MySQL 내부의 관련 로그 파일까지 모두 삭제합니다.
RESET SLAVE / RESET REPLICA 사용 예제
1. 슬레이브 복제 초기화 후 다시 설정하기
현재 복제 상태 확인:
SHOW SLAVE STATUS\G;
출력 예제:
Master_Host: 192.168.1.100
Master_User: replica_user
Master_Port: 3306
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
이제 RESET SLAVE / RESET REPLICA를 실행하여 복제 정보를 초기화합니다.
STOP SLAVE;
RESET SLAVE;
또는 MySQL 8.0.22 이상에서는:
STOP REPLICA;
RESET REPLICA;
이제 새로운 마스터(프라이머리) 서버 정보를 설정합니다.
CHANGE MASTER TO MASTER_HOST='192.168.1.101',
MASTER_USER='replica_user',
MASTER_PASSWORD='securepassword',
MASTER_LOG_FILE='mysql-bin.000015',
MASTER_LOG_POS=154;
복제를 다시 시작합니다.
START SLAVE;
MySQL 8.0.22 이상에서는:
START REPLICA;
이제 다시 SHOW SLAVE STATUS\G; 명령어를 실행하여 복제가 정상적으로 실행되는지 확인합니다.
2. 모든 복제 정보 삭제 후 새로운 복제 설정
완전히 새로운 복제 환경을 만들기 위해 RESET SLAVE ALL / RESET REPLICA ALL을 사용합니다.
STOP SLAVE;
RESET SLAVE ALL;
또는 MySQL 8.0.22 이상에서는:
STOP REPLICA;
RESET REPLICA ALL;
이제 새로운 복제 설정을 적용합니다.
CHANGE MASTER TO MASTER_HOST='192.168.1.200',
MASTER_USER='replica_user',
MASTER_PASSWORD='securepassword',
MASTER_LOG_FILE='mysql-bin.000020',
MASTER_LOG_POS=100;
복제를 다시 시작합니다.
START SLAVE;
MySQL 8.0.22 이상에서는:
START REPLICA;
RESET SLAVE / RESET REPLICA 실행 시 주의할 점
- 복제 데이터 손실 가능성 있음
- RESET SLAVE ALL 또는 RESET REPLICA ALL을 실행하면 복제 관련 계정 정보까지 삭제되므로 신중하게 사용해야 합니다.
- 복제 로그(relay log) 삭제됨
- RESET SLAVE 또는 RESET REPLICA를 실행하면 슬레이브(리플리카) 서버의 relay log가 모두 삭제됩니다.
- 따라서 중간에 동기화되지 않은 데이터가 있을 경우 데이터 불일치 문제가 발생할 수 있습니다.
- STOP SLAVE / STOP REPLICA를 먼저 실행해야 함
- RESET SLAVE 또는 RESET REPLICA를 실행하기 전에 반드시 STOP SLAVE 또는 STOP REPLICA를 먼저 실행해야 합니다.
- 새로운 복제 설정을 적용하려면 CHANGE MASTER TO 명령어가 필요
- RESET SLAVE 또는 RESET REPLICA 실행 후 새로운 복제 설정을 적용하려면 CHANGE MASTER TO를 사용해야 합니다.
- 마스터(프라이머리) 서버와 연결된 모든 정보가 초기화됨
- 새로운 마스터(프라이머리) 서버로 변경하려면 다시 설정해야 합니다.
결론
MySQL RESET SLAVE / RESET REPLICA 명령어는 슬레이브(리플리카) 서버의 복제 정보를 초기화하고 새로운 복제 설정을 적용하는 데 사용됩니다.
특히 완전 초기화(ALL 옵션)를 사용하면 복제 계정 정보까지 삭제되므로 신중하게 실행해야 합니다.
슬레이브(리플리카) 서버를 다시 설정하려면 반드시 STOP SLAVE, RESET SLAVE, CHANGE MASTER TO, START SLAVE 등의 과정을 순서대로 진행해야 합니다.
참고 자료
공식 가이드 문서: https://dev.mysql.com/doc/refman/8.0/en/reset-slave.html
'DB' 카테고리의 다른 글
[MySQL] CREATE USER 완벽 가이드 사용법(사용자 생성) (0) | 2025.02.24 |
---|---|
[MySQL] CREATE SPATIAL INDEX 완벽 가이드 사용법(공간 데이터 검색을 위한 고성능 인덱스) (0) | 2025.02.20 |
[MySQL] SET DEFAULT ROLE 완벽 가이드 사용법(사용자 권한 관리) (0) | 2025.02.20 |
[MySQL] CREATE FULLTEXT INDEX 완벽 가이드 사용법(전문 검색[Full-Text Search] 인덱스 활용) (1) | 2025.02.20 |
[MySQL] PURGE BINARY LOGS 완벽 가이드 사용법(바이너리 로그 정리) (0) | 2025.02.20 |
[MySQL] DROP SERVER 완벽 가이드 사용법(원격 서버 삭제) (0) | 2025.02.20 |
[MySQL] ALTER SERVER 완벽 가이드 사용법(원격 데이터 소스 수정) (0) | 2025.02.20 |
[MySQL] CREATE SERVER 완벽 가이드 사용법(원격 데이터 소스 등록) (0) | 2025.02.19 |