지원 버전 :현재(17) /16 / 15 / 14
개발 버전 :18 / Devel

47.10. 논리적 디코딩에 대한 2 단계 커밋 지원#

7370_7417begin_cb, Change_CB, Commit_CBandmessage_cb) 2 상 커밋 명령과 같은거래 준비, 준비and롤백 준비디코딩되지 않았습니다. 동안거래 준비무시됩니다.준비a로 디코딩되었습니다.커밋and롤백 준비a로 디코딩되었습니다롤백.

8059_8231begin_prepare_cb, repay_cb, commit_prepared_cb, Rollback_prepared_cbandStream_prepare_cb) 및 선택적 콜백 (filter_prepare_cb).

2 단계 커밋 명령을 해독하기위한 출력 플러그인 콜백이 제공되면거래 준비, 해당 트랜잭션의 변경 사항은 해독되어 출력 플러그인으로 전달되고repay_cb콜백이 호출됩니다. 이는 트랜잭션이 커밋 될 때 변경 사항이 출력 플러그인으로만 전달되는 기본 디코딩 설정과 다릅니다. 준비된 거래의 시작은에 의해 표시됩니다.begin_prepare_cb콜백.

준비된 트랜잭션을 사용하여 롤백 할 때롤백 준비, 그런 다음Rollback_prepared_cb콜백이 호출되고 준비된 트랜잭션이 사용되는 경우준비, 그런 다음commit_prepared_cb콜백이 호출되었습니다.

선택적으로 출력 플러그인은를 통해 필터링 규칙을 정의 할 수 있습니다.filter_prepare_cb두 단계에서 특정 트랜잭션 만 해독하려면. 이것은에서 패턴 일치하여 달성 할 수 있습니다.gid또는를 사용하여xid.

준비된 트랜잭션을 해독하려는 사용자는 아래 언급 된 점에주의해야합니다.

  • 준비된 트랜잭션이 잠겨 있다면 [사용자] 카탈로그 테이블 독점적으로 독점적으로 해독 준비가 주 트랜잭션이 커밋 될 때까지 차단 될 수 있습니다.

  • 이 기능을 사용하여 분산 된 2 단계 커밋을 구축하는 논리적 복제 솔루션은 준비된 트랜잭션이 [사용자] 카탈로그 테이블을 독점적으로 잠그면 교착 상태에 빠질 수 있습니다. 이 사용자를 피하려면 카탈로그 테이블에 자물쇠가있는 것을 삼가야합니다 (예 : 명시 적잠금명령) 그러한 거래에서. 보다섹션 47.8.2세부 사항은

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용12185_12196문서 문제를보고하려면