17.3.9 복제 지연(Delayed Replication)
MySQL 5.6은 슬레이브 서버가 마스터에서 의도적으로 적어도 지정된 시간 지연 지연 복제를 지원합니다. 기본 지연 시간은 0 초입니다. CHANGE MASTER TO
의 MASTER_DELAY
옵션을 사용하여 지연을 N
초로 설정하십시오.
CHANGE MASTER TO MASTER_DELAY = N
;
마스터에서받은 이벤트는 마스터에서 실행보다 적어도 N
초 후까지 실행되지 않습니다. 예외는 형식 설명 이벤트 또는 로그 파일 회전 이벤트에 지연이없고, 이들은 SQL 스레드의 내부 상태에만 영향을줍니다.
지연 복제는 여러 가지 목적에 사용할 수 있습니다.
마스터에서 사용자의 실수로부터 보호하기 위하여. DBA는 지연 슬레이브를 장애 직전까지 롤백 할 수 있습니다.
지연이있을 때 시스템이 어떻게 작동하는지 테스트하기 위하여. 예를 들어, 응용 프로그램에서 슬레이브로 큰 부하로 인해 지연이 발생할 수 있습니다. 그러나이 부하 수준을 생성하는 것이 어려울 수 있습니다. 지연 복제는로드를 시뮬레이트하지 않고 지연을 시뮬레이션 할 수 있습니다. 지연을하고있는 슬레이브 관련 조건을 디버깅하는 데 사용할 수도 있습니다.
백업을 다시로드하지 않고 데이터베이스가 이전에 어떤 었는지를 알아 내기 위하여. 예를 들어, 대기 시간이 1 주에서 지난 며칠 동안의 개발 전에 데이터베이스가 어떻게 었는지를 DBA가 확인해야 할 경우에는 지연 슬레이브를 확인할 수 있습니다.
START SLAVE
및 STOP SLAVE
은 즉시 적용되며 지연을 무시합니다. RESET SLAVE
는 지연을 0으로 재설정합니다.
SHOW SLAVE STATUS
는 지연에 대한 정보를 제공하는 다음과 같은 3 개의 필드가 있습니다.
SQL_Delay
: 슬레이브가 마스터보다 지연해야하는 초 수를 나타내는 음수가 아닌 정수.SQL_Remaining_Delay
:Slave_SQL_Running_State
가Waiting until MASTER_DELAY seconds after master executed event
의 경우,이 필드는 지연의 나머지 초수를 나타내는 정수가 포함됩니다. 다른 경우,이 필드는NULL
입니다.Slave_SQL_Running_State
: SQL 쓰레드의 상태를 나타내는 문자열 (Slave_IO_State
비슷합니다). 값은SHOW PROCESSLIST
로 표시되는 SQL 스레드의State
값과 동일합니다.
슬레이브 SQL 쓰레드가 이벤트 실행 전에 지연이 경과 할 때까지 대기하고있을 때, SHOW PROCESSLIST
는 State
값을 Waiting until MASTER_DELAY seconds after master executed event
로 표시합니다.
relay-log.info
파일에 지연 값이 포함되게 파일 형식이 변경되었습니다. 섹션 17.2.2.2 "노예 상태 로그" 를 참조하십시오. 예를 들어, 파일의 첫 번째 행이 파일의 행수를 나타내게되었습니다. 슬레이브 서버를 MySQL 5.6 이전 버전으로 다운 그레이드하면 기존 서버는 파일을 올바르게 읽지 않습니다. 이를 해결하려면 텍스트 편집기에서 파일을 변경하고 행수를 포함한 최초의 행을 삭제합니다.