Mysql & Maria/admin

SHOW SLAVE STATUS

dbavayne 2024. 12. 3. 23:43

1. Master의 binlog 위치 (Master Log Position)

Master 서버에서 실행되는 binlog 파일에 모든 데이터 변경 (예: INSERT, UPDATE, DELETE 쿼리) 정보가 기록됩니다. 복제를 설정할 때, Slave 서버는 이 binlog 파일을 읽어와서 동일한 작업을 수행하게 됩니다.

  • Master_Log_File: 현재 Master에서 사용하는 binlog 파일 이름
  • Read_Master_Log_Pos: Slave가 읽고 있는 Master binlog 파일 내 위치 (바이트 단위)

2. Relay 로그 위치 (Relay Log Position)

Slave 서버에서는 Relay 로그라는 파일에 Master에서 전달된 binlog 이벤트를 저장하고, 이를 기반으로 SQL 스레드가 실행됩니다. Relay 로그는 Master의 binlog 내용이 Slave에 전달된 후, 그 내용을 실행할 때 사용됩니다.

  • Relay_Log_File: 현재 사용 중인 Relay 로그 파일 이름
  • Relay_Log_Pos: 현재 Relay 로그 내 위치 (바이트 단위)
  • Exec_Master_Log_Pos: SQL 스레드가 Master에서 실행한 binlog의 마지막 위치

확인 방법

SHOW SLAVE STATUS\G 명령을 실행하면 다음과 같은 정보를 확인할 수 있습니다:

  • Master_Log_File: Master에서 현재 사용 중인 binlog 파일
  • Read_Master_Log_Pos: Master에서 Slave가 읽고 있는 위치
  • Relay_Log_File: Slave에서 사용하는 Relay 로그 파일
  • Relay_Log_Pos: Slave의 Relay 로그 내 위치
  • Exec_Master_Log_Pos: Slave에서 실행된 Master binlog의 마지막 위치

이 값들을 비교하여, **Read_Master_Log_Pos**와 **Exec_Master_Log_Pos**가 동일한지 확인해야 합니다.

만약 이 값들이 일치하지 않으면 복제가 제대로 진행되지 않거나,

Slave에서 로그가 제대로 처리되지 않은 상태일 수 있습니다.

일치 여부 확인 예시

Master_Log_File: mysql-bin.000012
Read_Master_Log_Pos: 154
Relay_Log_File: relay-bin.000005
Relay_Log_Pos: 154
Exec_Master_Log_Pos: 154

 

MySQL 5.7 - SHOW SLAVE STATUS 주요 항목 설명

 

Slave_IO_State Slave의 I/O 스레드 상태. Master와의 연결 상태를 나타냄. 예: "Waiting for master to send event".
Master_Host Master 서버의 호스트 이름.
Master_User Master 서버에 연결할 때 사용하는 사용자 이름.
Master_Port Master 서버의 포트 번호.
Connect_Retry Slave가 Master에 연결을 재시도하는 간격 (초 단위).
Master_Log_File Master 서버에서 사용 중인 binlog 파일 이름.
Read_Master_Log_Pos Slave가 Master binlog에서 읽고 있는 현재 위치. (바이트 단위)
Relay_Log_File Slave 서버에서 사용하는 Relay 로그 파일 이름.
Relay_Log_Pos Slave의 Relay 로그에서 현재 위치 (바이트 단위).
Relay_Master_Log_File Relay 로그가 기록된 Master의 binlog 파일 이름.
Slave_IO_Running I/O 스레드 상태 (Yes/No). Slave가 Master와의 연결을 통해 binlog를 읽고 있는지 여부.
Slave_SQL_Running SQL 스레드 상태 (Yes/No). Slave에서 Relay 로그를 실행하고 있는지 여부.
Replicate_Do_DB 복제할 데이터베이스의 이름을 지정. 복제할 데이터베이스만 실행.
Replicate_Ignore_DB 복제에서 제외할 데이터베이스 이름을 지정.
Replicate_Do_Table 복제할 테이블을 지정. 지정된 테이블만 복제.
Replicate_Ignore_Table 복제에서 제외할 테이블을 지정.
Replicate_Wild_Do_Table 와일드카드를 사용하여 복제할 테이블을 지정.
Replicate_Wild_Ignore_Table 와일드카드를 사용하여 복제에서 제외할 테이블을 지정.
Last_Errno Slave에서 발생한 마지막 오류의 번호.
Last_Error Slave에서 발생한 마지막 오류 메시지.
Skip_Counter 오류 발생 시 몇 건의 쿼리를 건너뛸지 지정하는 카운터.
Exec_Master_Log_Pos Slave의 SQL 스레드가 Master binlog에서 실행한 마지막 위치 (바이트 단위).
Relay_Log_Space Slave 서버에서 사용하는 Relay 로그의 전체 공간 크기.
Until_Condition 복제 중에 멈추기 위한 조건 (예: NONE, GTID)
Until_Log_File 복제 중에 멈추기 위한 log 파일 이름.
Until_Log_Pos 복제 중에 멈추기 위한 log 위치 (바이트 단위).
Master_SSL_Allowed Slave에서 Master와의 연결에 SSL을 사용할 수 있는지 여부.
Master_SSL_CA_File Master SSL 연결에 사용할 CA 인증서 파일 경로.
Master_SSL_CA_Path Master SSL 연결에 사용할 CA 인증서 경로.
Master_SSL_Cert Master SSL 연결에 사용할 클라이언트 인증서 파일 경로.
Master_SSL_Cipher Master SSL 연결에 사용할 암호화 방식.
Master_SSL_Key Master SSL 연결에 사용할 클라이언트 키 파일 경로.
Seconds_Behind_Master Slave가 Master에서 얼마나 지연되고 있는지 나타내는 시간(초 단위). NULL이면 복제 지연이 없음.
Master_SSL_Verify_Server_Cert Master 서버의 SSL 인증서 검증 여부. (Yes/No)
Last_IO_Errno Slave에서 I/O 스레드 오류가 발생했을 경우 오류 번호.
Last_IO_Error Slave에서 I/O 스레드 오류가 발생했을 경우 오류 메시지.
Last_SQL_Errno Slave에서 SQL 스레드 오류가 발생했을 경우 오류 번호.
Last_SQL_Error Slave에서 SQL 스레드 오류가 발생했을 경우 오류 메시지.
Replicate_Ignore_Server_Ids 복제에서 제외할 서버의 ID 목록.
Master_Server_Id Master 서버의 고유 ID.
Master_UUID Master 서버의 고유 UUID (MySQL 8.0 이상에서 제공).
Master_Info_File Slave가 Master의 정보를 저장하는 파일 경로.
SQL_Delay SQL 스레드에서 실행을 지연시킬 시간 (초 단위).
SQL_Remaining_Delay SQL 스레드에서 남은 지연 시간 (초 단위).
Slave_SQL_Running_State Slave SQL 스레드의 현재 상태 설명.
Master_Retry_Count Slave가 Master에 연결을 시도하는 최대 횟수.
Master_Bind Slave가 Master에 연결할 때 사용할 로컬 IP 주소.
Last_IO_Error_Timestamp 마지막 I/O 오류가 발생한 시간.
Last_SQL_Error_Timestamp 마지막 SQL 오류가 발생한 시간.
Master_SSL_Crl Master SSL 연결에 사용할 인증서 해지 목록 (CRL) 경로.
Master_SSL_Crlpath Master SSL 연결에 사용할 인증서 해지 목록 경로.
Retrieved_Gtid_Set Slave가 Master에서 가져온 GTID 목록. (GTID 복제 활성화 시 사용)
Executed_Gtid_Set Slave에서 실행한 GTID 목록. (GTID 복제 활성화 시 사용)
Auto_Position GTID 기반 복제를 사용할 경우, GTID 복제 모드 활성화 여부. (0이면 비활성화, 1이면 활성화)
Replicate_Rewrite_DB 복제 중에 데이터베이스 이름을 변경하는 규칙.
Channel_Name 복제 채널 이름 (멀티-채널 복제를 사용하는 경우).
Master_TLS_Version Master와 Slave 사이의 TLS 버전. (MySQL 8.0 이상에서 제공)

'Mysql & Maria > admin' 카테고리의 다른 글

Performance Schema  (1) 2024.12.13
replication 깨진 후 bin log 복구  (2) 2024.12.03
percona toolkit (pt-table-checksum)  (1) 2024.11.19
mysql 5.7 replication 구성  (0) 2024.11.19
mysql 모니터링 관련  (0) 2024.10.24