我正在使用 Postgresql 14,它是为逻辑复制设置的。尝试使用 debezium 1.8 版流式传输更改。实际上,一切看起来都还不错。除了更新相同值的更新之外,每个插入、更新、删除都是流式传输的。根据这个很好的答案,这种更新会创建一个 WAL 记录,但它实际上是否试图通过发布进行复制?
还需要提一下,我在 debezium 聊天中问了同样的问题,但他们问了我这两个问题:
- 更改传播到复制槽
- 更改传播到发布中
如果您能提供验证这两者的方法,我会很高兴。
我正在使用 Postgresql 14,它是为逻辑复制设置的。尝试使用 debezium 1.8 版流式传输更改。实际上,一切看起来都还不错。除了更新相同值的更新之外,每个插入、更新、删除都是流式传输的。根据这个很好的答案,这种更新会创建一个 WAL 记录,但它实际上是否试图通过发布进行复制?
还需要提一下,我在 debezium 聊天中问了同样的问题,但他们问了我这两个问题:
如果您能提供验证这两者的方法,我会很高兴。
是的。每次更新都会被传输,即使是相同的值。
(
pg_recvlogical
内置程序)可用于证明行为:(多行格式以获得更好看的响应)
使用相同参数重复调用查询
update am set k = 'hi' where n = 2;
会将传递的数据写入/tmp/recvlog
,例如:请注意,发布使用二进制数据协议,
pg_recvlogical
不解码特定消息。但是检查数据是否通过发布相同值的更新就足够了。