1

我正在使用 Java 进行 PG 逻辑复制,并在jdbc 驱动程序文档上找到了一个演示

PGReplicationStream stream =
        replConnection.getReplicationAPI()
            .replicationStream()
            .logical()
            .withSlotName("demo_logical_slot")
            .withSlotOption("include-xids", false)
            .withSlotOption("skip-empty-xacts", true)
            .start();

然后我可以从流中解析消息。

这对于一些日常需求来说已经足够了,但是现在我想知道事务提交时间。

在stackoverflow上的问题的帮助下,我添加.withSlotOption("include-timestamp", "on")了它并且它正在工作。

我的问题是在哪里可以找到有关“插槽选项”的完整列表,因此我们可以非常方便地找到它们,而不是在 google 或 stackoverflow 上搜索。

4

1 回答 1

3

可用选项取决于复制槽的逻辑解码插件,该插件在创建复制槽时指定。

该示例必须使用test_decoding插件,该插件包含在 PostgreSQL 中,作为用于测试和播放的 contrib 模块。

该插件的可用选项没有记录,但可以在源代码中找到:

  • include-xids: 包含交易号BEGINCOMMIT输出
  • include-timestampCOMMIT: 在输出中包含时间戳信息
  • force-binary:指定输出模式为二进制
  • skip-empty-xacts: 不要为没有修改数据库的事务输出任何东西
  • only-local:仅输出未设置复制源的数据
  • include-rewrites: 包括由 DDL 语句引起的表重写的信息
于 2019-03-06T18:45:53.407 回答