53.9. 논리 복제 토토 베이 형식#

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

시작 #
byte1 ( 'b')

토토 베이를 시작 토토 베이로 식별합니다.

int64 (xlogrecptr)

거래의 최종 LSN.

int64 (timestamptz)

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

int32 (TransactionId)

거래의 xid.

토토 베이 #
byte1 ( 'm')

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

Int32 (TransactionId)

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

int8

Flags; Either 0 for no flags or 1 if the logical decoding message is transactional.

int64 (xlogrecptr)

논리적 디코딩 토토 베이의 LSN.

String

The prefix of the logical decoding message.

Int32

Length of the content.

바이트n

논리적 디코딩 토토 베이의 내용.

커밋 #
Byte1('C')

토토 베이를 커밋 토토 베이로 식별합니다.

Int8(0)

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

int64 (xlogrecptr)

The LSN of the commit.

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')

Identifies the message as a type message.

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')

Identifies the following TupleData submessage as a key. This field is optional and is only present if the update changed data in any of the column(s) that are part of the REPLICA IDENTITY index.

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. 이 필드는 각 관계에 대해 반복됩니다.

The following messages (Stream Start, Stream Stop, Stream Commit, and Stream Abort) are available since protocol version 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 of the subtransaction (will be same as xid of the transaction for top-level transactions).

int64 (xlogrecptr)

중단의 LSN. 이 필드는 프로토콜 버전 4 이후로 제공됩니다.

int64 (timestamptz)

트랜잭션의 타임 스탬프를 중단합니다. 값은 PostgreSQL Epoch (2000-01-01) 이후 마이크로 초입니다. 이 필드는 프로토콜 버전 4 이후로 제공됩니다.

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

준비 시작 #
byte1 ( 'b')

토토 베이를 준비된 트랜잭션 토토 베이의 시작으로 식별합니다.

Int64 (XLogRecPtr)

The LSN of the prepare.

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 of the transaction.

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)

The LSN of the prepare.

int64 (xlogrecptr)

준비된 거래의 최종 LSN.

int64 (timestamptz)

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

int32 (TransactionId)

거래의 xid.

String

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

다음 토토 베이 부분은 위의 토토 베이에서 공유됩니다.

tupledata #
int16

열 수.

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

byte1 ( 'n')

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

또는

byte1 ( 'u')

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

또는

byte1 ( 't')

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

또는

byte1 ( 'b')

Identifies the data as binary formatted value.

int32

열 값의 길이.

바이트n

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

수정 제출

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