在哪里可以找到有关PostgreSQL中复制插槽选项的完整列表?

时间:2019-03-06 01:51:41

标签: postgresql logical-replication

我正在研究Java的PG逻辑复制,并在jdbc driver docs上找到了一个演示

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

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

这足以满足某些日常需求,但是现在我想知道事务提交时间。

the question的堆栈溢出帮助下,我添加了.withSlotOption("include-timestamp", "on"),它正在工作。

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

1 个答案:

答案 0 :(得分:1)

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

该示例必须使用test_decoding插件,该插件是PostgreSQL附带的用于测试和播放的contrib模块。

该插件的可用选项未记录,但可以在source code中找到:

  • map(list, ~ func(data = mtcars, cyln = ., carbn = 4)) :在include-xidsBEGIN输出中包括交易号
  • COMMIT:在include-timestamp输出中包含时间戳信息
  • COMMIT:指定output mode是二进制
  • force-binary:对于未修改数据库的事务不输出任何内容
  • skip-empty-xacts:仅输出未设置replication origin的数据
  • only-local:包括来自DDL语句引起的表重写的信息