- SHOW RELICA STATUS, SHOW SLAVE STATUS 문으로 원본서버, 복제서버간의 연결 구성 및 상태 정보 확인 가능
- MySQL 8.0.22 부터 SHOW SLAVE STATUS 문은 사용되지 않는다.
대신 SHOW REPLICA STATUS 를 사용
- PERFORMANCE_SCHEMA 에 replication_ 로 시작하는 테이블에서 복제 관련 정보를 확인할 수 있다.
- 원본서버는 하트 비트 간격보다 긴 기간동안 바이너리 로그에 업데이트 겂어 보내지 않는 이벤트가 없는 경우 하트 비트 신호를 복제본으로 전송한다.
CHANGE MASTER TO 문의 MASTER_HEARTBEAT_PERIOD 설정은 하트 비트 빈도를 지정한다. (기본값 slave_net_timeout의 1/2)
- replication_connection_status 테이블에는 복제가 최선 하트 비트 신호를 언제 수신했는지 여부와 하트 비트 신호 수가 표시된다.
SHOW RELICA STATUS, SHOW SLAVE STATUS 에서 제공하는 정보 중 주요정보
- Replica_IO_State : 복제의 현재 상태
- Replica_IO_Running : 원본 바이너리 로그를 읽기위한 I/O 스레드 실행 상태
- Replica_SQL_Running : 릴레이 로그의 이벤트를 실행하는 SQL 쓰레드 실행 상태
- Last_IO_Error, Last_SQL_Error : 릴레이 로그를 처리 할 때 I/O 및 SQL 쓰레드에 의해 등록 된 마지막 오류
- Seconds_Behind_Source : 복제 SQL 쓰레드가 원본 바이너리 로그의 처리를 지연 시간 (초)
- Seconds_Behind_Source값 0은 일반적으로 복제가 소스에 따라 잡았다는 것을 의미하는 것으로 해석 할 수 있지만, 엄밀하게는 true가 아닌 경우도 있다.
예를 들어 원본과 복제본 간의 네트워크 연결이 끊어졌지만, 복제 I / O thread가 아직 이를 모르고 ( slave_net_timeout이 아직 경과하지 않은) 경우에 발생할 수 있다.
- Seconds_Behind_Source임시 값이 상황을 정확히 반영하지 않을 수도 있다.
복제 I/O thread가 아직 새로운 이벤트를 대기하는 경우 복제 SQL 쓰레드가 새로운 이벤트의 실행을
종료 할 때까지 , Seconds_Behind_Source큰 값이 표시 될 수 있다. 이것은 이벤트에 오래된 타임 스탬프가있는
경우에 문제가 발생할 수 있다. 이런 경우 비교적 짧은 기간에 SHOW REPLICA STATUS, SHOW SLAVE STATUS 를
여러 번 실행하면이 값이 0에서 비교적 큰 값까지 반복적으로 변경 될 수 있다.
두가지를 같이 확인해야되는 정보
- show replica status, show slave status 에서 출력되는 값은 같으나 아래와 같이 다르게 나오는 부분이 있다.
- show slave status 에서 Master, Slave 로 출력되는 항목이 show replica status 에서는 Source, Replica 로 출력된다.
- Master_Log_file, Read_Master_Log_Pos 또는 Source_Log_file, Read_Source_Log_Pos : 복제 I/O thread가 원본 로그에서 이벤트를 읽을 위치 (원본 바이너리 로그 파일과 포지션)
- Relay_Master_Log_File, Exec_Master_Log_Pos 또는 Relay_Source_Log_File, Exec_Source_Log_Pos: 복제 SQL 쓰레드가 로그에서 받은 이벤트를 실행 한 위치 (원본 바이너리 로그 파일과 포지션)
- Relay_Log_File, Relay_Log_Pos : 복제 SQL 쓰레드가 릴레이 로그를 실행 한 위치
원본에서 연결 복제 상태 확인
- SHOW PROCESSLIST 문
mysql> show processlist\G;
Id: 8
User: repl
Host: 192.168.137.12:32796
db: NULL
Command: Binlog Dump GTID
Time: 1645
State: Master has sent all binlog to slave; waiting for more updates
Info: NULL
- SHOW REPLICAS, SHOW SLAVE HOSTS 문
mysql> show replicas;
+-----------+------+------+-----------+--------------------------------------+
| Server_Id | Host | Port | Source_Id | Replica_UUID |
+-----------+------+------+-----------+--------------------------------------+
| 12 | | 3306 | 11 | f6d4ffe7-bbd7-11eb-8dde-00155ddba00e |
+-----------+------+------+-----------+--------------------------------------+
1 row in set (0.00 sec)
mysql> show slave hosts;
+-----------+------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID |
+-----------+------+------+-----------+--------------------------------------+
| 12 | | 3306 | 11 | f6d4ffe7-bbd7-11eb-8dde-00155ddba00e |
+-----------+------+------+-----------+--------------------------------------+
1 row in set, 1 warning (0.00 sec)
참고
https://dev.mysql.com/doc/refman/8.0/en/replication-administration-status.html
'MySQL' 카테고리의 다른 글
ANALYZE TABLE Statement (0) | 2021.06.17 |
---|---|
GTID - 트랜잭션 건너뛰기 (0) | 2021.06.13 |
GTID 사용시 복제본 복구 (0) | 2021.06.10 |
GTID를 사용한 복제구성 (0) | 2021.06.09 |
GTID (0) | 2021.06.09 |