↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 协议消息 / 逻辑复制格式

Message (logical replication)

Byte1('M') 将消息标识为逻辑解码消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int8 标志:0 表示没有标志;1 表示该逻辑解码消息是事务性的。 Int64 (XLogRecPtr) 逻辑解码消息的 LSN。 String 逻辑解码消息的前缀。 Int32 内容的长度。 Byte n 逻辑解码消息的内容。

当前查看 PostgreSQL 18。

中文定义与说明

协议消息 Message。

同版本中文手册定义

Byte1('M')

将消息标识为逻辑解码消息。

Int32 (TransactionId)

事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。

Int8

标志:0 表示没有标志;1 表示该逻辑解码消息是事务性的。

Int64 (XLogRecPtr)

逻辑解码消息的 LSN。

String

逻辑解码消息的前缀。

Int32

内容的长度。

Byten

逻辑解码消息的内容。

查看完整中文手册与上下文。

说明

Byte1('M') 将消息标识为逻辑解码消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int8 标志:0 表示没有标志;1 表示该逻辑解码消息是事务性的。 Int64 (XLogRecPtr) 逻辑解码消息的 LSN。 String 逻辑解码消息的前缀。 Int32 内容的长度。 Byte n 逻辑解码消息的内容。

层次
逻辑复制载荷,与前后端消息封装分开。
首个字段
Byte1('M')

用法

Message

协议上下文

本节说明各逻辑复制消息的详细格式。这些消息由复制槽 SQL 接口返回,或由 walsender 发送。由 walsender 发送时,它们被封装在复制协议的 WAL 消息中(参见第 54.4 节),消息流程通常与物理复制相同。Stream Start、Stream Stop、Stream Commit 和 Stream Abort 从协议版本 2 起可用。Begin Prepare、Prepare、Commit Prepared、Rollback Prepared 和 Stream Prepare 从协议版本 3 起可用。以下消息部分为上述消息所共用。

按手册顺序排列的字段

位置格式含义
1Byte1('M')将消息标识为逻辑解码消息。
2Int32 (TransactionId)事务的 XID,仅在流式传输事务中出现。此字段从协议版本 2 起可用。
3Int8标志:0 表示没有标志;1 表示该逻辑解码消息是事务性的。
4Int64 (XLogRecPtr)逻辑解码消息的LSN。
5字符串逻辑解码消息的前缀。
6Int32内容的长度。
7Byte n逻辑解码消息的内容。

相关条目

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

版本比较

PostgreSQL 13 → 14: 新增收录。

以下差异保留原始字段名与英文源描述。

--- PostgreSQL 13
+++ PostgreSQL 14
@@ -1 +1,33 @@
-该版未收录
+{
+  "fields": [
+    {
+      "description": "Identifies the message as a logical decoding message.",
+      "format": "Byte1('M')"
+    },
+    {
+      "description": "Xid of the transaction (only present for streamed transactions). This field is available since protocol version 2.",
+      "format": "Int32"
+    },
+    {
+      "description": "Flags; Either 0 for no flags or 1 if the logical decoding message is transactional.",
+      "format": "Int8"
+    },
+    {
+      "description": "The LSN of the logical decoding message.",
+      "format": "Int64"
+    },
+    {
+      "description": "The prefix of the logical decoding message.",
+      "format": "String"
+    },
+    {
+      "description": "Length of the content.",
+      "format": "Int32"
+    },
+    {
+      "description": "The content of the logical decoding message.",
+      "format": "Byte n"
+    }
+  ],
+  "layer": "logical replication"
+}

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回协议消息 · 收录范围为 PostgreSQL 14 至 20;最早采样版本不一定是实际引入版本。