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
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 |