Loading...
MySQL 9.5 Reference Manual 9.5의 14.18.4 Position-Based Synchronization Functions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 절에 나열된 함수들은 MySQL Replication에서 소스 서버와 레플리카 서버의 위치 기반 동기화를 제어하는 데 사용됩니다.
Table 14.28 Positional Synchronization Functions
| Name | Description | Deprecated |
|---|---|---|
MASTER_POS_WAIT() | 레플리카가 지정된 위치까지의 모든 업데이트를<br> 읽고 적용할 때까지 블록 | Yes |
SOURCE_POS_WAIT() | 레플리카가 지정된 위치까지의 모든 업데이트를<br> 읽고 적용할 때까지 블록 |
SOURCE_POS_WAIT()의 deprecated alias입니다.
이 함수는 소스-레플리카 동기화 제어를 위한 것입니다. 레플리카가 소스의 바이너리 로그에서 지정된 위치까지의 모든 업데이트를 읽고 적용할 때까지 블록합니다.
반환 값은 레플리카가 지정된 위치로 진행하기 위해 대기해야 했던 로그 이벤트의 개수입니다. 복제 SQL 스레드가 시작되지 않았거나, 레플리카의 소스 정보가 초기화되지 않았거나, 인자가 잘못되었거나, 오류가 발생한 경우 함수는 NULL을 반환합니다. timeout이 초과된 경우 -1을 반환합니다. SOURCE_POS_WAIT()가 대기하는 동안 복제 SQL 스레드가 중지되면 함수는 NULL을 반환합니다. 레플리카가 지정된 위치를 이미 지난 경우 함수는 즉시 반환합니다.
바이너리 로그 파일 위치가 invalid로 표시된 경우, 함수는 유효한 파일 위치가 알려질 때까지 대기합니다. 바이너리 로그 파일 위치는 복제 채널에 대해 CHANGE REPLICATION SOURCE TO 옵션 GTID_ONLY가 설정되어 있고, 서버가 재시작되었거나 복제가 중지되었을 때 invalid로 표시될 수 있습니다. 트랜잭션이 주어진 파일 위치를 지나서 성공적으로 적용된 후에 파일 위치는 유효해집니다. 적용기(applier)가 명시된 위치에 도달하지 못하면, 함수는 timeout까지 대기합니다. 바이너리 로그 파일 위치가 invalid로 표시되었는지 확인하려면 SHOW REPLICA STATUS 스테이트먼트를 사용하십시오.
멀티스레드 레플리카의 경우, 이 함수는 체크포인트 작업이 호출되어 레플리카의 상태를 업데이트할 때까지, replica_checkpoint_group 또는 replica_checkpoint_period 시스템 변수에 설정된 한도가 만료될 때까지 대기합니다. 시스템 변수의 설정에 따라 함수는 지정된 위치에 도달한 후 일정 시간이 지나서 반환될 수 있습니다.
바이너리 로그 트랜잭션 압축이 사용 중이고 지정된 위치의 트랜잭션 페이로드가 (Transaction_payload_event로서) 압축되어 있는 경우, 함수는 전체 트랜잭션이 읽혀서 적용되고 위치가 업데이트될 때까지 대기합니다.
timeout 값을 지정하면, SOURCE_POS_WAIT()는 timeout 초가 경과하면 대기를 중지합니다. timeout 은 0 이상이어야 합니다. (서버가 strict SQL 모드로 실행 중일 때 음수 timeout 값은 즉시 ER_WRONG_ARGUMENTS로 거부됩니다. 그렇지 않으면 함수는 NULL을 반환하고 경고를 발생시킵니다.)
선택적인 channel 값은 함수가 어느 복제 채널에 적용되는지를 이름으로 지정할 수 있게 해줍니다. 자세한 내용은 Section 19.2.2, “Replication Channels”를 참조하십시오.
이 함수는 스테이트먼트 기반 복제에 대해 unsafe합니다. binlog_format이 STATEMENT로 설정되어 있을 때 이 함수를 사용하면 경고가 로그에 기록됩니다.
14.18.3 Asynchronous Replication Channel Failover Functions
14.19 Aggregate Functions