본문 바로가기
  • 배움에는 끝이 없다.
Application/SQL (Mysql,MariaDB)

[SQL] MySQL replication status 정보 정리

by 줘패자 2023. 3. 13.

 slave status 정보설명

Slave_IO_State
  • I/O Thread의 상태, 아래 'Slave_IO_State 값' 표 참고
Master_Host
  • Master의 Hostname
Master_User
  • Master의 접속 계정명
Master_Port
  • Master의 접속 포트
Connect_Retry
  • Master에 접속할 수 없을 때 재접속 시도 시간(초)
Master_Log_File
  • I/O Thread가 읽고있는 Master 갱신로그 파일
Read_Master_Log_Pos
  • I/O Thread가 읽고있는 Master 갱신로그의 위치
  • Exec_Master_Log_Pos 값과 일치하지 않으면 Exec_Master_Log_Pos 시점부터 오류발생
  • (단, 덤프뜨는데 대용량(100GB 규모급...)이면 Exec_Master_Log_Pos 값과 불일치 할 수 있음)
Relay_Log_File
  • SQL Thread가 읽고있는 Relay 로그 파일
Relay_Log_Pos
  • SQL Thread가 읽고있는 Master 갱신로그의 위치
Relay_Master_Log_File
  • SQL Thread가 마지막에 실행한 쿼리가 기록된 파일
Slave_IO_Running
  • I/O Thread 실행여부
  • NO이면 비정상
Slave_SQL_Running
  • SQL Thread 실행여부
  • NO이면 비정상
Replicate_Do_DB
  • 리플리케이션 대상 DB명
Replicate_Ignore_DB
  • 리플리케이션 제외 DB명
Last_Errno
  • 마지막으로 실행한 쿼리 에러번호
  • 0이면 정상
Last_Error
  • 마지막으로 실행한 쿼리 에러정보
  • 에러정보 없으면 빈 값
Skip_Counter
  • 마지막으로 SQL_SLAVE_SKIP_COUNTER를 사용했을 때 값
  • 0이면 사용하지 않음
Exec_Master_Log_Pos
  • Master_Log_File에서 SQL Thread가 마지막에 실행한 쿼리의 위치
  • Read_Master_Log_Pos 값과 일치하지 않으면 Exec_Master_Log_Pos 시점부터 오류발생
Relay_Log_Space
  • Relay_Log_File의 size(byte)
Seconds_Behind_Master
  • I/O Thread에 대해 SQL Thread 처리지연시간(초)
  • slave가 update할 때, 이 필드는 Master에서 받은 로깅된 timestamp 값과 현재 slave에서 실행되는 현재의 timestamp의 값의 차를 구해서 지연속도 계산
  • 1) 네트워크 속도가 빠를 시 2) Master, Slave의 시간차가 거의 없을 때 Slave의 지연시간으로 간주할 수 있음

 

● Slave_IO_State 값설명

Connecting to master
  • I/O Thread가 Master에 접속중
Checking master version 
  • Master에 접속이 된 후에 매우 짧게 나타나는 상태
Registering slave on master 
  • Master에 접속이 된 후에 매우 짧게 나타나는 상태
Requesting binlog dump
  • Master에 접속이 된 후에 매우 짧게 나타나는 상태
  • I/O Thread가 binary log(예 : master-bin.000001) 내용에 대한 요청을 Master에 보낸다.
  • 이후, 해당 binary log 파일 이름과 위치부터 리플리케이션을 시작한다.
Waiting to reconnect after a failed binlog dump request 
  • 접속 불가로 인해 binary log 덤프가 실패할 경우, I/O Thread는 해당 상태가 되며, 그 다음에 주기적으로 재접속 시도
  • 재시도 간격은 --master-connect-retry(my.cnf) / CHANGE MASTER TO 문을 사용해 지정할 수가 있다.
Reconnecting after a failed binlog dump request 
  • I/O Thread가 binary log 덤프 요청 실패로 Master에 재접속 시도중

Waiting for master to send event 
  • I/O Thread는 Master에 접속되었고 binary log event가 도착 하기를 기다리고 있다.
  • 정상 상태에서 자주 보인다.
Queueing master event to the relay log 
  • I/O Thread는 event를 읽었고 이것을 relay log에 복사를 해서 SQL Thread가 해당 event를 처리하게 한다.
Waiting to reconnect after a failed master event read 
  • event를 읽는 도중에 에러 발생
  • I/O Thread는 재 접속을 시도하기 전에 master-connect-retry 시간 동안 대기
Reconnecting after a failed master event read 
  • I/O Thread가 Master에 재접속 시도중.
Waiting for the slave SQL thread to free enough relay log space 
  • relay log의 크기가 1) 0이 아니고 2) relay_log_space_limit 초과해서 사용중
  • I/O Thread는 SQL Thread가 relay log 파일 중 일부를 삭제해서 충분한 공간을 확보할 때 까지 대기
  • disk 공간 확인 및 relay log size를 더 작게 설정 필요
Waiting for slave mutex on exit 
  • I/O Thread가 멈추었을 때 매우 짧게 발생하는 상태.

댓글