pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
PostgreSQL 提供了两个逻辑解码输出插件:pgoutput 和 test_decoding。也可以开发自定义输出插件(详见第 47.7 节)。
pgoutput 是 PostgreSQL 提供的标准逻辑解码输出插件。它用于内置的逻辑复制。
proto_version (integer) #指定协议版本。目前支持版本 1、2、3 和 4。必须提供有效的版本。
版本 2 在服务器版本 14 及以上受支持;当 streaming 设置为 on 以流式传输大型进行中事务时,必须使用该版本。
版本 3 在服务器版本 15 及以上受支持;当启用 two_phase 以流式传输两阶段提交时,必须使用该版本。
版本 4 在服务器版本 16 及以上受支持;当 streaming 设置为 parallel 流式传输大型进行中事务以供并行应用时,必须使用该版本。
publication_names (string) #要订阅的发布名称列表,以逗号分隔。各个发布名称按标准对象名处理,可按需加引号。至少需要一个发布名称。
binary (boolean) #启用二进制传输模式。二进制模式比文本模式更快,但稳健性略差。默认值为 off。
messages (boolean) #启用发送由 pg_logical_emit_message 写入的消息。默认值为 off。
streaming (enum) #启用对进行中事务的流式传输。有效值为 off(默认)、on 和 parallel。
当设置为 off 时,pgoutput 会先完整解码一个事务,再将其整体发送。该模式适用于任何协议版本。
当设置为 on 时,pgoutput 会流式传输大型进行中事务。这要求协议版本为 2 或更高。
当设置为 parallel 时,pgoutput 会流式传输大型进行中事务,并在某些消息中额外发送信息,以支持并行处理。这要求协议版本为 4 或更高。
two_phase (boolean) #启用发送两阶段事务。开启该选项至少需要协议版本 3。默认值为 off。
origin (enum) #指定是否按来源发送更改。可选值包括 none,仅发送没有关联来源的更改;以及 any,不论其来源为何都发送更改。这可用于避免复制节点之间出现环路(同一数据的无限复制)。默认值为 any。
pgoutput 产生的是二进制输出,因此那些期望文本数据的函数(pg_logical_slot_peek_changes 和 pg_logical_slot_get_changes)不能与它一起使用。请改用 pg_logical_slot_peek_binary_changes 或 pg_logical_slot_get_binary_changes。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游会在正式发布前持续修订。