13.7.5.35 SHOW SLAVE STATUS 구문
SHOW SLAVE STATUS
이 문은 슬레이브 쓰레드의 기본 매개 변수에 대한 상태 정보를 제공합니다. 여기에는 SUPER
또는 REPLICATION CLIENT
권한 중 하나가 필요합니다.
mysql 클라이언트를 사용하여이 문을 발행하는 경우, 세미콜론 대신에 \G
문장 종결자를 사용하면보다 읽기 쉬운 세로 레이아웃을 얻을 수 있습니다.
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ******************** *******
Slave_IO_State : Waiting for master to send event
Master_Host : localhost
Master_User : root
Master_Port : 13000
Connect_Retry : 60
Master_Log_File : master-bin.000002
Read_Master_Log_Pos : 1307
Relay_Log_File : slave-relay-bin.000003
Relay_Log_Pos : 1508
Relay_Master_Log_File : master-bin.000002
Slave_IO_Running : Yes
Slave_SQL_Running : Yes
Replicate_Do_DB :
Replicate_Ignore_DB :
Replicate_Do_Table :
Replicate_Ignore_Table :
Replicate_Wild_Do_Table :
Replicate_Wild_Ignore_Table :
Last_Errno : 0
Last_Error :
Skip_Counter : 0
Exec_Master_Log_Pos : 1307
Relay_Log_Space : 1858
Until_Condition : None
Until_Log_File :
Until_Log_Pos : 0
Master_SSL_Allowed : No
Master_SSL_CA_File :
Master_SSL_CA_Path :
Master_SSL_Cert :
Master_SSL_Cipher :
Master_SSL_Key :
Seconds_Behind_Master : 0
Master_SSL_Verify_Server_Cert : No
Last_IO_Errno : 0
Last_IO_Error :
Last_SQL_Errno : 0
Last_SQL_Error :
Replicate_Ignore_Server_Ids :
Master_Server_Id : 1
Master_UUID : 3e11fa47-71ca-11e1-9e33-c80aa9429562
Master_Info_File : /var/mysqld.2/data/master.info
SQL_Delay : 0
SQL_Remaining_Delay : NULL
Slave_SQL_Running_State : Slave has read all relay log; waiting for the slave I / O thread to
Master_Retry_Count : 10
Master_Bind :
Last_IO_Error_Timestamp :
Last_SQL_Error_Timestamp :
Master_SSL_Crl :
Master_SSL_Crlpath :
Retrieved_Gtid_Set : 3e11fa47-71ca-11e1-9e33-c80aa9429562 : 1-5
Executed_Gtid_Set : 3e11fa47-71ca-11e1-9e33-c80aa9429562 : 1-5
Auto_Position : 1
1 row in set (0.00 sec)
다음 목록은 SHOW SLAVE STATUS
에 의해 반환되는 필드에 대해 설명하고 있습니다. 이러한 의미의 해석 자세한 내용은 섹션 8.12.5.6 "리플리케이션 슬레이브 I / O 쓰레드 상태" 를 참조하십시오.
Slave_IO_State
슬레이브 I / O thread에 대한
SHOW PROCESSLIST
출력의State
필드의 복사. 따라서이 스레드가 수행하고 있는지 (마스터에 연결하려고하는 마스터에서 이벤트를 대기하고있는 마스터에 다시 연결하는 등)을 알 수 있습니다. 수있는 상태의 목록을 보려면 섹션 8.12.5.6 "리플리케이션 슬레이브 I / O 쓰레드 상태" 를 참조하십시오.Master_Host
슬레이브가 연결되어있는 마스터 호스트.
Master_User
마스터에 연결하는 데 사용되는 계정의 사용자 이름입니다.
Master_Port
마스터에 연결하는 데 사용되는 포트입니다.
Connect_Retry
연결 재시도 사이의 시간 (초) (기본값은 60). 이것은
CHANGE MASTER TO
문에서 설정할 수 있습니다.Master_Log_File
I / O 쓰레드가 현재 읽고있는 원래의 마스터 바이너리 로그 파일의 이름입니다.
Read_Master_Log_Pos
현재 마스터 바이너리 로그 파일의 I / O 스레드가 마지막으로 읽은 위치.
Relay_Log_File
SQL 쓰레드가 현재 읽고 실행하고있는 원래의 릴레이 로그 파일의 이름입니다.
Relay_Log_Pos
현재의 릴레이 로그 파일의 SQL 쓰레드가 마지막으로 읽고 실행 한 위치.
Relay_Master_Log_File
SQL 쓰레드에 의해 실행 된 최신 이벤트를 포함한 마스터 바이너리 로그 파일의 이름입니다.
Slave_IO_Running
I / O 스레드가 시작되고 마스터에 성공적으로 연결했는지 여부. 내부적으로는이 스레드의 상태는 다음 세 가지 값 중 하나로 표시됩니다.
MYSQL_SLAVE_NOT_RUN 슬레이브 I / O 쓰레드가 실행되고 있지 않습니다. 이 상태의 경우
Slave_IO_Running
은No
입니다.MYSQL_SLAVE_RUN_NOT_CONNECT 슬레이브 I / O 쓰레드가 실행되어 있지만 복제 마스터에 연결되어 있지 않습니다. 이 상태의 경우
Slave_IO_Running
은 다음 표와 같이 서버 버전에 따라 다릅니다.MySQL 버전 Slave_IO_Running
4.1 (4.1.13 이전), 5.0 (5.0.11 이전) Yes
4.1 (4.1.14 이상) 5.0 (5.0.12 이후) No
5.1 (5.1.45 이전) No
5.1 (5.1.46 이상) 5.5,5.6 Connecting
MYSQL_SLAVE_RUN_CONNECT 슬레이브 I / O 쓰레드가 실행되어 복제 마스터에 연결되어 있습니다. 이 상태의 경우
Slave_IO_Running
은Yes
입니다.
Slave_running
시스템 상태 변수의 값은이 값에 해당합니다.Slave_SQL_Running
SQL 쓰레드가 시작되었는지 여부.
Replicate_Do_DB
,Replicate_Ignore_DB
--replicate-do-db
및--replicate-ignore-db
옵션으로 지정된 데이터베이스의 목록 (존재하는 경우).Replicate_Do_Table
,Replicate_Ignore_Table
,Replicate_Wild_Do_Table
,Replicate_Wild_Ignore_Table
--replicate-do-table
,--replicate-ignore-table
,--replicate-wild-do-table
및--replicate-wild-ignore-table
옵션에서 지정된 테이블의 목록 (존재하는 경우).Last_Errno
,Last_Error
이 컬럼은
Last_SQL_Errno
및Last_SQL_Error
의 별칭입니다.RESET MASTER
또는RESET SLAVE
를 발행하면이 열에 표시되는 값이 재설정됩니다.참고슬레이브 SQL 쓰레드는 오류를 받으면 먼저 오류를보고하고 SQL 스레드를 중지합니다. 즉,
Slave_SQL_Running
에 아직Yes
가 표시되어 있음에도 불구하고,SHOW SLAVE STATUS
가Last_SQL_Errno
에 0이 아닌 값을 나타내는 짧은 시간이 존재합니다.Skip_Counter
sql_slave_skip_counter
시스템 변수의 현재 값입니다. 섹션 13.4.2.4 "SET GLOBAL sql_slave_skip_counter 구문" 을 참조하십시오.Exec_Master_Log_Pos
현재 마스터 바이너리 로그 파일의 SQL 쓰레드가 처리 할 다음 트랜잭션 또는 이벤트의 시작을 표시하면서 읽고 실행 한 마지막 위치. 기존 슬레이브에서 새로운 슬레이브를 시작할 때, 그 새로운 슬레이브가이 위치에서 읽기를 시작하도록
CHANGE MASTER TO
문MASTER_LOG_POS
옵션에서이 값을 사용할 수 있습니다. 마스터의 바이너리 로그의 (Relay_Master_Log_File
,Exec_Master_Log_Pos
)로 지정되는 좌표는 릴레이 로그의 (Relay_Log_File
,Relay_Log_Pos
)로 지정되는 좌표에 대응합니다.(MySQL 5.6.3 이후에
slave_parallel_workers
를 0 이외의 값으로 설정함으로써) 멀티 스레드 슬레이브를 사용하는 경우이 컬럼의 값이 실제로 커밋되지 않은 트랜잭션이 그 전에 남아 않은 "낮은 경계"값을 나타냅니다. 현재 구현에서는 다른 데이터베이스의 트랜잭션을 슬레이브에서 마스터와 다른 순서로 수행하는 것이 허용되기 때문에 이것은 반드시 가장 최근에 실행 된 트랜잭션의 위치는 없습니다.Relay_Log_Space
기존의 모든 릴레이 로그 파일의 전체 크기입니다.
Until_Condition
,Until_Log_File
,Until_Log_Pos
START SLAVE
문UNTIL
절에 지정된 값.Until_Condition
값은 다음과 같습니다.UNTIL
절이 지정되지 않은 경우None
슬레이브가 마스터의 바이너리 로그의 특정 위치까지 읽는 경우
Master
슬레이브가 릴레이 로그의 특정 위치까지 읽는 경우
Relay
MySQL 5.6.6에서 다음 값을 가진 GTID에 관련한
UNTIL
절이 추가되었습니다.슬레이브 SQL 쓰레드가
gtid_set
에 GTID가 나열되어있는 첫 번째 트랜잭션에 도달 할 때까지 트랜잭션을 처리하는 경우SQL_BEFORE_GTIDS
.슬레이브 쓰레드가
gtid_set
의 마지막 트랜잭션이 두 스레드에 의해 처리 될 때까지 모든 트랜잭션을 처리하는 경우SQL_AFTER_GTIDS
.멀티 스레드 SQL 쓰레드가 릴레이 로그에 이상 차이가 발견되지 않을 때까지 실행하는 경우
SQL_AFTER_MTS_GAPS
.
Until_Log_File
과Until_Log_Pos
로그 파일의 이름과 SQL 쓰레드가 실행을 중지하는 좌표를 정의하는 위치를 나타냅니다.UNTIL
절 자세한 내용은 섹션 13.4.2.5 "START SLAVE 구문" 을 참조하십시오.Master_SSL_Allowed
,Master_SSL_CA_File
,Master_SSL_CA_Path
,Master_SSL_Cert
,Master_SSL_Cipher
,Master_SSL_CRL_File
,Master_SSL_CRL_Path
,Master_SSL_Key
,Master_SSL_Verify_Server_Cert
이 필드는 슬레이브가 마스터에 연결하기 위해 사용하는 SSL 매개 변수를 표시합니다 (존재하는 경우).
Master_SSL_Allowed
값은 다음과 같습니다.마스터에 SSL 연결이 허용되는 경우
Yes
마스터에 SSL 연결이 허용되지 않으면
No
SSL 연결은 허용되고 있지만, 슬레이브 서버에서 SSL 지원이 활성화되어 있지 않으면
Ignored
기타 SSL 관련 필드의 값은
CHANGE MASTER TO
문에 대한MASTER_SSL_CA
,MASTER_SSL_CAPATH
,MASTER_SSL_CERT
,MASTER_SSL_CIPHER
,MASTER_SSL_CRL
,MASTER_SSL_CRLPATH
,MASTER_SSL_KEY
및MASTER_SSL_VERIFY_SERVER_CERT
옵션 값에 해당합니다. 섹션 13.4.2.1 "CHANGE MASTER TO 구문" 을 참조하십시오.Master_SSL_CRL_File
과Master_SSL_CRL_Path
는 MySQL 5.6.3에서 추가되었습니다.Seconds_Behind_Master
이 필드는 슬레이브가 얼마나 "지연하고있다"여부를 나타냅니다.
슬레이브가 업데이트를 처리하는 경우,이 필드는 현재 슬레이브에서 처리되는 최신 이벤트에 대한 슬레이브의 현재 타임 스탬프와 마스터에 기록 된 원래 타임 스탬프의 차이를 나타냅니다.
현재이 슬레이브에서 이벤트가 처리되지 않은 경우,이 값은 0입니다.
기본적으로이 필드는 SQL 쓰레드와 슬레이브 I / O 쓰레드 사이의 시간 차이 (초)을 측정합니다. 마스터와 슬레이브 간의 네트워크 연결이 빠른 경우는 슬레이브 I / O thread가 마스터에 매우 가깝기 때문에,이 필드는 SQL 쓰레드가 마스터에 비해 얼마나 지연되는지를 보여주는 좋은 근사 값이됩니다. 이 네트워크가 느린 경우, 이것은 좋은 근사치가 없습니다. 슬레이브 SQL 쓰레드가 읽기 느린 슬레이브 I / O 쓰레드에 매우 자주 따라 붙지 될 수 있기 때문에 I / O thread가 마스터에 비해 지연하는 경우에도
Seconds_Behind_Master
는 자주 0의 값 를 나타냅니다. 즉,이 컬럼은 고속 네트워크의 경우에만 유효합니다.이 시간 차이 계산은 슬레이브 I / O 쓰레드가 시작될 때 계산 된 시간 차이가 이후에도 지속적인 유지한다면, 마스터와 슬레이브 클럭 시간이 동일하지 않은 경우에도 작동합니다. 변경 사항 (NTP의 업데이트 포함)가있는 경우
Seconds_Behind_Master
계산의 신뢰성을 저하시키는 스큐가 발생할 수 있습니다.MySQL 5.6.9 이후에서는,이 필드는 SQL 쓰레드가 실행되고 있지 않은 경우 또는 SQL 쓰레드가 모든 릴레이 로그를 소비하며 슬레이브 I / O 쓰레드가 실행되고 있지 않은 경우에
NULL
(정의되지 않았거나 알)입니다. 이전,이 필드는 SQL 쓰레드 또는 슬레이브 I / O 쓰레드가 실행되지 않거나 마스터에 연결되어 있지 않은 경우NULL
되었습니다. (Bug # 12946333) 예 (MySQL 5.6.9 이전) 슬레이브 I / O 쓰레드가 실행되어 있지만 마스터에 연결되어 있지 않고, 다시 연결하기 전에CHANGE MASTER TO
문 또는--master-connect-retry
옵션에 지정된 시간 (초) (기본값은 60) 만 슬립하는 경우이 값은NULL
이었습니다. 현재이 같은 경우는 마스터에 연결은 테스트되지 않습니다. 대신, I / O 쓰레드가 실행되고 있지만, 릴레이 로그가 소진 된 경우Seconds_Behind_Master
가 0으로 설정됩니다.Seconds_Behind_Master
값은 이벤트에 저장되어있는 타임 스탬프에 기반을두고 있으며이 타임 스탬프는 복제를 통해 유지됩니다. 즉, 마스터 M1이 자체 M0 슬레이브 인 경우, M0의 바이너리 로그에 기인하는 M1의 바이너리 로그에서 모든 이벤트는 해당 이벤트에 M0의 타임 스탬프를 포함합니다. 이렇게하면 MySQL은TIMESTAMP
를 성공적으로 복제 할 수 있습니다. 그러나Seconds_Behind_Master
문제는 M1이 클라이언트에서 직접 업데이트도받은 경우 M1에서의 마지막 이벤트가 때로는 M0에 기인하고 또한 당신 M1에서 직접 업데이트 결과이기 때문에Seconds_Behind_Master
값 이 무작위로 변동될 수 있습니다.멀티 스레드 슬레이브 (MySQL 5.6.3 이후)를 사용하는 경우이 값이
Exec_Master_Log_Pos
에 따라 있기 때문에 최근에 커밋 된 트랜잭션의 위치를 반영하지 않을 수 있습니다.Last_IO_Errno
,Last_IO_Error
I / O 스레드를 정지시킨 최신의 오류의 오류 번호와 메시지. 0 오류 번호 및 빈 문자열 메시지는 "오류없이"을 나타냅니다.
Last_IO_Error
값이 비어 있지 않으면이 오류 값은 슬레이브의 오류 로그에 나타납니다.MySQL 5.6.1에서 I / O 오류 정보는 최신 I / O 스레드 오류가 언제 발생했는지를 나타내는 타임 스탬프가 포함되어 있습니다. 이 타임 스탬프는
YYMMDD HH:MM:SS
형식이 사용됩니다.MySQL 5.6.3 이전에는이 타임 스탬프는
Last_IO_Error
컬럼에 표시되는 오류 메시지 텍스트 앞에 추가되었습니다. MySQL 5.6.3 이후에서는이 타임 스탬프 대신Last_SQL_Error_Timestamp
컬럼에 표시됩니다.RESET MASTER
또는RESET SLAVE
를 발행하면이 열에 표시되는 값이 재설정됩니다.Last_SQL_Errno
,Last_SQL_Error
SQL thread를 정지시킨 최신의 오류의 오류 번호와 메시지. 0 오류 번호 및 빈 문자열 메시지는 "오류없이"을 나타냅니다.
Last_SQL_Error
값이 비어 있지 않으면이 오류 값은 슬레이브의 오류 로그에 나타납니다.MySQL 5.6.1에서 SQL 오류 정보는 최신의 SQL 스레드 오류가 언제 발생했는지를 나타내는 타임 스탬프가 포함되어 있습니다. 이 타임 스탬프는
YYMMDD HH:MM:SS
형식이 사용됩니다.MySQL 5.6.3 이전에는이 타임 스탬프는
Last_SQL_Error
컬럼에 표시되는 오류 메시지 텍스트 앞에 추가되었습니다. MySQL 5.6.3 이후에서는이 타임 스탬프 대신Last_SQL_Error_Timestamp
컬럼에 표시됩니다.RESET MASTER
또는RESET SLAVE
를 발행하면이 열에 표시되는 값이 재설정됩니다.Replicate_Ignore_Server_Ids
MySQL 5.6에서는
CHANGE MASTER TO
문IGNORE_SERVER_IDS
옵션을 사용하여 0 이상의 마스터에서 이벤트를 무시하도록 슬레이브를 설정합니다. 이것은 기본적으로 공백이며, 일반적으로 순환 또는 기타 다중 마스터 복제 설정을 사용하는 경우에만 변경됩니다. 공백이 때Replicate_Ignore_Server_Ids
에 표시되는 메시지는 무시되는 서버 ID를 나타내는 하나 이상의 번호의 쉼표로 구분 된 목록으로 구성됩니다. 예 :Replicate_Ignore_Server_Ids : 2, 6, 9
참고Ignored_server_ids
도 무시되는 서버 ID를 나타냅니다 만, 이것은 무시되는 서버 ID의 총수가 앞에있는 공백으로 구분 된 목록입니다. 예를 들어, 서버 ID 2,6 또는 9를 가진 마스터를 무시하도록 슬레이브에 지시하기 위해IGNORE_SERVER_IDS = (2,6,9)
옵션을 포함CHANGE MASTER TO
문이 발행 된 경우, 그 정보는 다음의 같이 표시됩니다.Ignored_server_ids : 3 2 6 9
여기서
3
은 무시되는 서버 ID의 수입니다.Replicate_Ignore_Server_Ids
필터링은 SQL 쓰레드가 아닌 I / O 스레드에서 실행됩니다.즉, 필터링 된 이벤트는 릴레이 로그에 기록되지 않습니다. 이것은 SQL 스레드에 적용되는--replicate-do-table
등의 서버 옵션에 의해 수행되는 필터링 작업과는 다릅니다.Master_Server_Id
마스터에서
server_id
값.Master_UUID
마스터에서
server_uuid
값. 이 필드는 MySQL 5.6.0에서 추가되었습니다.Master_Info_File
master.info
파일의 위치. 이 필드는 MySQL 5.6.0에서 추가되었습니다.SQL_Delay
슬레이브가 마스터에서 지연 할 필요가있다 초. 이 필드는 MySQL 5.6.0에서 추가되었습니다.
SQL_Remaining_Delay
Slave_SQL_Running_State
가Waiting until MASTER_DELAY seconds after master executed event
인 경우,이 필드는 나머지의 지연 시간 (초)이 포함됩니다. 다른 경우,이 필드는NULL
입니다. 이 필드는 MySQL 5.6.0에서 추가되었습니다.Slave_SQL_Running_State
SQL 쓰레드의 상태 (
Slave_IO_State
에 유사합니다). 이 값은SHOW PROCESSLIST
으로 표시되는 SQL 스레드의State
값과 동일합니다. 섹션 8.12.5.7 "리플리케이션 슬레이브 SQL 쓰레드 상태" 는 가능성이있는 상태 목록이 표시됩니다. 이 필드는 MySQL 5.6.0에서 추가되었습니다.Master_Retry_Count
연결이 끊어진 경우에 슬레이브가 마스터에 다시 연결을 시도 할 수있는 횟수. 이 값은
CHANGE MASTER TO
문MASTER_RETRY_COUNT
옵션 (권장) 또는 이전--master-retry-count
서버 옵션 (하위 호환성을 위해 계속 지원되고 있습니다)를 사용하여 설정할 수 있습니다. 이 필드는 MySQL 5.6.1에서 추가되었습니다.Master_Bind
이 슬레이브 바인딩 된 네트워크 인터페이스 (존재하는 경우). 이것은
CHANGE MASTER TO
문MASTER_BIND
옵션을 사용하여 설정됩니다.이 컬럼은 MySQL 5.6.2에서 추가되었습니다.
Last_IO_Error_Timestamp
최신 I / O 오류가 언제 발생했는지를 나타내는
YYMMDD HH:MM:SS
형식의 타임 스탬프.이 컬럼은 MySQL 5.6.3에서 추가되었습니다. 이전 MySQL 5.6에서는이 타임 스탬프는
Last_IO_Error
에 표시되는 오류 텍스트 앞에 추가되었습니다.Last_SQL_Error_Timestamp
최신 SQL 오류가 언제 발생했는지를 나타내는
YYMMDD HH:MM:SS
형식의 타임 스탬프.이 컬럼은 MySQL 5.6.3에서 추가되었습니다. 이전 MySQL 5.6에서는이 타임 스탬프는
Last_SQL_Error
에 표시되는 오류 텍스트 앞에 추가되었습니다.Retrieved_Gtid_Set
슬레이브에 의해 수신 된 모든 트랜잭션에 대응하는 글로벌 트랜잭션 ID의 세트. GTID가 사용되지 않은 경우는 하늘입니다.
이것은 릴레이 로그에 존재하거나 지금까지 존재 한 모든 GTID 세트입니다. 각 GTID은
Gtid_log_event
가 수신되면 바로 추가됩니다. 따라서이 세트에는 부분적으로 전송 된 트랜잭션 GTID도 포함될 수 있습니다.RESET SLAVE
또는CHANGE MASTER TO
를 실행했기 때문에 또는--relay-log-recovery
옵션의 효과를 위해 모든 릴레이 로그가 손실 된 경우이 세트가 클리어됩니다.relay_log_purge = 1
의 경우, 최신의 릴레이 로그가 항상 유지되기 때문에이 세트는 지워지지 않습니다.이 컬럼은 MySQL 5.6.5에서 추가되었습니다.
MySQL 5.6.10 이전에는이 값은 대문자로 출력되었습니다. MySQL 5.6.10 이후로는 항상 소문자로 출력됩니다. (Bug # 15869441)
Executed_Gtid_Set
바이너리 로그에 기록 된 글로벌 트랜잭션 ID의 세트. 이것은이 서버에서 글로벌
gtid_executed
시스템 변수 (MySQL 5.6.9 이전의 이름은gtid_done
)의 값과이 서버에서SHOW MASTER STATUS
출력의Executed_Gtid_Set
값과 동일합니다. GTID가 사용되지 않은 경우는 하늘입니다.이 컬럼은 MySQL 5.6.5에서 추가되었습니다.
MySQL 5.6.10 이전에는이 값은 대문자로 출력되었습니다. MySQL 5.6.10 이후로는 항상 소문자로 출력됩니다. (Bug # 15869441)
Auto_Position
자동 포지셔닝이 사용되는 경우 1, 그렇지 않으면 0.
이 컬럼은 MySQL 5.6.10에서 추가되었다. (Bug # 15992220)