小编Dar*_*win的帖子

可以使用逻辑解码来复制单个表吗?

我正在研究逻辑解码,我已经能够创建一个插槽,并使用流复制协议将数据库中的所有事务复制到另一个,并且它工作得非常好.

但我需要复制一个表而不是数据库中的所有表.

所以,我的问题是:是否logical decoding允许过滤单个表的流?

我目前的提示是创建一个自定义逻辑解码输出插件,我错了吗?

更新

我已经构建了一个output plugin基于contrib/test decodingpostgresql的源代码,这是一个很好的解决方法.但是它对实际用例没用,所以我决定将其他一些项目作为fork和update的引用.

对我来说最好的是wal2json,所以我决定将它分叉并添加表过滤器作为选项而不是硬编码表名.

是fork,这是变更集.

如何使用

首先使用wal2json插件创建插槽:

pg_recvlogical -d postgres --slot test_slot --create-slot -P wal2json

然后开始接收流

pg_recvlogical -d postgres --slot test_slot --start -o limit-to = table_foo,table_bar -f -

现在我们准备在接收更新table_footable_bar唯一的.


这是一个非常好的挑战,我不是开发人员,我知道代码需要一些优化,但是现在它比预期更好.

postgresql database-replication postgresql-9.4

8
推荐指数
2
解决办法
3924
查看次数