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_FileI / O 쓰레드가 현재 읽고있는 원래의 마스터 바이너리 로그 파일의 이름입니다.
Read_Master_Log_Pos현재 마스터 바이너리 로그 파일의 I / O 스레드가 마지막으로 읽은 위치.
Relay_Log_FileSQL 쓰레드가 현재 읽고 실행하고있는 원래의 릴레이 로그 파일의 이름입니다.
Relay_Log_Pos현재의 릴레이 로그 파일의 SQL 쓰레드가 마지막으로 읽고 실행 한 위치.
Relay_Master_Log_FileSQL 쓰레드에 의해 실행 된 최신 이벤트를 포함한 마스터 바이너리 로그 파일의 이름입니다.
Slave_IO_RunningI / O 스레드가 시작되고 마스터에 성공적으로 연결했는지 여부. 내부적으로는이 스레드의 상태는 다음 세 가지 값 중 하나로 표시됩니다.
MYSQL_SLAVE_NOT_RUN 슬레이브 I / O 쓰레드가 실행되고 있지 않습니다. 이 상태의 경우
Slave_IO_Running은No입니다.MYSQL_SLAVE_RUN_NOT_CONNECT 슬레이브 I / O 쓰레드가 실행되어 있지만 복제 마스터에 연결되어 있지 않습니다. 이 상태의 경우
Slave_IO_Running은 다음 표와 같이 서버 버전에 따라 다릅니다.MySQL 버전 Slave_IO_Running4.1 (4.1.13 이전), 5.0 (5.0.11 이전) Yes4.1 (4.1.14 이상) 5.0 (5.0.12 이후) No5.1 (5.1.45 이전) No5.1 (5.1.46 이상) 5.5,5.6 ConnectingMYSQL_SLAVE_RUN_CONNECT 슬레이브 I / O 쓰레드가 실행되어 복제 마스터에 연결되어 있습니다. 이 상태의 경우
Slave_IO_Running은Yes입니다.
Slave_running시스템 상태 변수의 값은이 값에 해당합니다.Slave_SQL_RunningSQL 쓰레드가 시작되었는지 여부.
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_Countersql_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_PosSTART 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 연결이 허용되지 않으면
NoSSL 연결은 허용되고 있지만, 슬레이브 서버에서 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_ErrorI / 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_ErrorSQL 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_IdsMySQL 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_Filemaster.info파일의 위치. 이 필드는 MySQL 5.6.0에서 추가되었습니다.SQL_Delay슬레이브가 마스터에서 지연 할 필요가있다 초. 이 필드는 MySQL 5.6.0에서 추가되었습니다.
SQL_Remaining_DelaySlave_SQL_Running_State가Waiting until MASTER_DELAY seconds after master executed event인 경우,이 필드는 나머지의 지연 시간 (초)이 포함됩니다. 다른 경우,이 필드는NULL입니다. 이 필드는 MySQL 5.6.0에서 추가되었습니다.Slave_SQL_Running_StateSQL 쓰레드의 상태 (
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)