55.9. 논리 복제 토토 캔 형식

이 섹션에서는 각 논리적 복제 토토 캔의 자세한 형식에 대해 설명합니다. 이 토토 캔는 복제 슬롯 SQL 인터페이스에 의해 반환되거나 Walsender가 전송합니다. Walsender의 경우, 그들은에 설명 된대로 복제 프로토콜 WAL 토토 캔 내부에 캡슐화됩니다.PostgreSQL : 문서 : 15 : 55.4. 사설 토토 캔 사이트 복제 프로토콜, 일반적으로 물리적 복제와 동일한 토토 캔 흐름을 준수합니다.

시작
byte1 ( 'b')

토토 캔를 시작 토토 캔로 식별합니다.

int64 (xlogrecptr)

거래의 최종 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프를 커밋합니다. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

int32 (TransactionId)

거래의 xid.

토토 캔
byte1 ( 'm')

토토 캔를 논리적 디코딩 토토 캔로 식별합니다.

int32 (TransactionId)

트랜잭션의 xid (스트리밍 된 트랜잭션에 대해서만). 이 필드는 프로토콜 버전 2 이후로 제공됩니다.

int8

플래그; 논리적 디코딩 토토 캔가 트랜잭션 인 경우 플래그가 없거나 1의 경우 0 중 하나입니다.

int64 (xlogrecptr)

논리적 디코딩 토토 캔의 LSN.

String

논리적 디코딩 토토 캔의 접두사.

int32

내용의 길이.

byten

논리적 디코딩 토토 캔의 내용.

커밋
byte1 ( 'c')

토토 캔를 커밋 토토 캔로 식별합니다.

int8 (0)

플래그; 현재 사용되지 않은 것입니다.

int64 (xlogrecptr)

커밋의 LSN

int64 (xlogrecptr)

거래의 끝 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프를 커밋합니다. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

원산지
byte1 ( 'O')

토토 캔를 원점 토토 캔로 식별합니다.

int64 (xlogrecptr)

Origin 서버에서 커밋의 LSN.

String

원점의 이름.

단일 트랜잭션 내에 여러 개의 원점 토토 캔가있을 수 있습니다.

관계
byte1 ( 'r')

토토 캔를 관계 토토 캔로 식별합니다.

int32 (TransactionId)

트랜잭션의 xid (스트리밍 된 트랜잭션에 대해서만). 이 필드는 프로토콜 버전 2 이후로 제공됩니다.

int32 (OID)

관계의 OID.

String

네임 스페이스 (empty string forPG_CATALOG).

String

관계 이름.

int8

관계에 대한 복제 아이덴티티 설정 (동일Releplidentinpg_class).

int16

열 수.

다음으로, 다음 토토 캔 부분이 게시 된 열에 포함 된 각 열에 나타납니다 (생성 열 제외) :

int8

열의 플래그. 현재 플래그가없는 경우 0이거나 열을 키의 일부로 표시 할 수 있습니다..

String

열의 이름.

int32 (OID)

열의 데이터 유형의 OID.

int32

열의 수정 자를 입력하십시오 (atttypmod).

타입
byte1 ( 'y')

토토 캔를 유형 토토 캔로 식별합니다.

int32 (TransactionId)

트랜잭션의 xid (스트리밍 된 트랜잭션에 대해서만). 이 필드는 프로토콜 버전 2 이후로 제공됩니다.

int32 (OID)

데이터 유형의 OID.

String

네임 스페이스 (empty string forPG_CATALOG).

String

데이터 유형의 이름.

삽입
byte1 ( 'i')

토토 캔를 삽입 토토 캔로 식별합니다.

int32 (TransactionId)

트랜잭션의 xid (스트리밍 된 트랜잭션에 대해서만). 이 필드는 프로토콜 버전 2 이후로 제공됩니다.

int32 (OID)

관계 토토 캔에서 ID에 해당하는 관계의 OID.

byte1 ( 'n')

다음 tupledata 토토 캔를 새로운 튜플로 식별합니다.

tupledata

새로운 튜플의 내용을 나타내는 TupleData 토토 캔 부분.

업데이트
byte1 ( 'u')

토토 캔를 업데이트 토토 캔로 식별합니다.

int32 (TransactionId)

트랜잭션의 xid (스트리밍 된 트랜잭션에 대해서만). 이 필드는 프로토콜 버전 2 이후로 제공됩니다.

int32 (OID)

관계 토토 캔에서 ID에 해당하는 관계의 OID.

byte1 ( 'k')

다음 tupledata submessage를 키로 식별합니다. 이 필드는 선택 사항이며 업데이트가 복제 아이덴티티 인덱스의 일부인 열에서 데이터를 변경 한 경우에만 존재합니다.

byte1 ( 'O')

다음 tupledata submessage를 오래된 튜플로 식별합니다. 이 필드는 선택 사항이며 업데이트가 발생한 테이블이 복제 아이덴티티가 전체로 설정된 경우에만 존재합니다.

tupledata

구식 튜플 또는 기본 키의 내용을 나타내는 TupleData 토토 캔 부분. 이전 'O'또는 'k'부분이있는 경우에만 존재합니다.

byte1 ( 'n')

다음 tupledata 토토 캔를 새로운 튜플로 식별합니다.

tupledata

새로운 튜플의 내용을 나타내는 TupleData 토토 캔 부분.

업데이트 토토 캔에는 'k'토토 캔 부품 또는 'o'토토 캔 부품 또는 그 중 어느 것도 포함 할 수 있지만 두 가지 모두 포함 할 수 있습니다.

삭제
byte1 ( 'd')

토토 캔를 삭제 토토 캔로 식별합니다.

int32 (TransactionId)

거래의 xid (스트리밍 된 거래를 위해서만). 이 필드는 프로토콜 버전 2 이후로 제공됩니다.

int32 (OID)

관계 토토 캔에서 ID에 해당하는 관계의 OID.

byte1 ( 'k')

다음 tupledata submessage를 키로 식별합니다. 삭제가 발생한 테이블이 인덱스를 복제 아이덴티티로 사용하는 경우이 필드가 있습니다.

byte1 ( 'O')

다음 tupledata 토토 캔를 구식 튜플로 식별합니다. 삭제가 발생한 테이블이 복제 아이덴티티가 전체적으로 설정되어 있으면이 필드가 있습니다.

tupledata

이전 필드에 따라 기존 튜플 또는 기본 키의 내용을 나타내는 TupleData 토토 캔 부분.

삭제 토토 캔에는 'k'토토 캔 부품 또는 'o'토토 캔 부분이 포함될 수 있지만 두 가지 모두는 포함되지 않습니다.

Truncate
byte1 ( 't')

토토 캔를 잘린 토토 캔로 식별합니다.

int32 (TransactionId)

트랜잭션의 xid (스트리밍 된 트랜잭션에 대해서만). 이 필드는 프로토콜 버전 2 이후로 제공됩니다.

int32

관계 수

int8

옵션 비트 forTruncate: 1 for캐스케이드, 2 for신분을 다시 시작합니다

int32 (OID)

관계 토토 캔에서 ID에 해당하는 관계의 OID. 이 필드는 각 관계에 대해 반복됩니다.

다음 토토 캔 (스트림 시작, 스트림 정지, 스트림 커밋 및 스트림 abort)는 프로토콜 버전 2 이후에 사용할 수 있습니다.

스트림 시작
byte1 ( 's')

토토 캔를 스트림 시작 토토 캔로 식별합니다.

int32 (TransactionId)

거래의 xid.

int8

1의 값은 이것이 xid의 첫 번째 스트림 세그먼트임을 나타냅니다. 0은 다른 스트림 세그먼트의 경우 0입니다.

스트림 정지
byte1 ( 'e')

토토 캔를 스트림 중지 토토 캔로 식별합니다.

스트림 커밋
byte1 ( 'c')

토토 캔를 스트림 커밋 토토 캔로 식별합니다.

int32 (TransactionId)

거래의 xid.

int8 (0)

플래그; 현재 사용되지 않은 것입니다.

int64 (xlogrecptr)

커밋의 LSN

int64 (xlogrecptr)

거래의 끝 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프를 커밋합니다. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

스트림 abort
byte1 ( 'a')

토토 캔를 스트림 중단 토토 캔로 식별합니다.

int32 (TransactionId)

거래의 xid.

int32 (TransactionId)

xid subtransaction (최상위 트랜잭션의 트랜잭션 XID와 동일).

다음 토토 캔 (준비, 준비, 준비, 준비, 롤백 준비, 스트림 준비)는 프로토콜 버전 3 이후에 사용할 수 있습니다.

준비 시작
byte1 ( 'b')

토토 캔를 준비된 거래 토토 캔의 시작으로 식별합니다.

int64 (xlogrecptr)

준비의 LSN.

int64 (xlogrecptr)

준비된 거래의 최종 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프 준비. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

int32 (TransactionId)

거래의 xid.

String

사용자가 준비된 거래의 GID를 정의했습니다.

준비
byte1 ( 'p')

토토 캔를 준비된 트랜잭션 토토 캔로 식별합니다.

int8 (0)

플래그; 현재 사용되지 않은 것입니다.

int64 (xlogrecptr)

준비의 LSN.

int64 (xlogrecptr)

준비된 거래의 최종 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프 준비. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

int32 (TransactionId)

거래의 xid.

String

사용자가 준비된 거래의 GID를 정의했습니다.

준비
byte1 ( 'k')

토토 캔를 준비된 거래 토토 캔의 커밋으로 식별합니다.

int8 (0)

플래그; 현재 사용되지 않은 것입니다.

int64 (xlogrecptr)

준비된 거래의 커밋의 LSN.

int64 (xlogrecptr)

준비된 거래의 커밋의 최종 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프를 커밋합니다. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

int32 (TransactionId)

거래의 xid.

String

사용자가 준비된 거래의 GID를 정의했습니다.

롤백 준비
byte1 ( 'r')

토토 캔를 준비된 트랜잭션 토토 캔의 롤백으로 식별합니다.

int8 (0)

플래그; 현재 사용되지 않은 것입니다.

int64 (xlogrecptr)

준비된 거래의 최종 LSN.

int64 (xlogrecptr)

준비된 거래의 롤백의 끝 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프 준비. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

int64 (timestamptz)

트랜잭션의 롤백 타임 스탬프. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

int32 (TransactionId)

거래의 xid.

String

사용자가 준비된 거래의 GID를 정의했습니다.

스트림 준비
byte1 ( 'p')

스트림 준비 트랜잭션 토토 캔로 토토 캔를 식별합니다.

int8 (0)

플래그; 현재 사용되지 않은 것입니다.

int64 (xlogrecptr)

준비의 LSN.

int64 (xlogrecptr)

준비된 거래의 최종 LSN.

int64 (timestamptz)

트랜잭션의 타임 스탬프 준비. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다.

int32 (TransactionId)

거래의 xid.

String

사용자가 준비된 거래의 GID를 정의했습니다.

다음 토토 캔 부분은 위의 토토 캔에 의해 공유됩니다.

tupledata
int16

열 수.

다음으로, 각 열에 다음 부종 중 하나가 나타납니다 (생성 된 열만 제외) :

byte1 ( 'n')

데이터를 널 값으로 식별합니다.

또는

byte1 ( 'u')

변하지 않은 구운 값을 식별합니다 (실제 값은 전송되지 않음).

또는

byte1 ( 't')

데이터를 텍스트 형식 값으로 식별합니다.

또는

byte1 ( 'b')

데이터를 이진 형식의 값으로 식별합니다.

int32

열 값의 길이.

byten

이진 또는 텍스트 형식의 열 값. (이전 형식 바이트에 지정된대로).n위의 길이입니다.

수정 제출

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