我正在研究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上进行搜索。
答案 0 :(得分:1)
可用选项取决于复制插槽的逻辑解码插件,复制插件是在创建复制插槽时指定的。
该示例必须使用test_decoding
插件,该插件是PostgreSQL附带的用于测试和播放的contrib模块。
该插件的可用选项未记录,但可以在source code中找到:
map(list, ~ func(data = mtcars, cyln = ., carbn = 4))
:在include-xids
和BEGIN
输出中包括交易号COMMIT
:在include-timestamp
输出中包含时间戳信息COMMIT
:指定output mode是二进制force-binary
:对于未修改数据库的事务不输出任何内容skip-empty-xacts
:仅输出未设置replication origin的数据only-local
:包括来自DDL语句引起的表重写的信息