微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

逻辑复制不将数据从发布者复制到订阅者

如何解决逻辑复制不将数据从发布者复制到订阅者

这是Ubuntu 18.04上的postgres 10

我通过架构从发布者复制到订阅

pg_dump -d <db> -s | psql <db> -h subscriber_host -U rep

将wal_level设置为发布服务器上的逻辑

ALTER SYstem SET wal_level = 'logical';

我在发布服务器上重新启动了数据库

我已连接到数据库

\<db>

创建的出版物

CREATE PUBLICATION my_pub FOR ALL TABLES;

然后向名为rep的现有复制用户授予特权

GRANT ALL PRIVILEGES ON DATABASE <db> TO rep;

我现在在订阅服务器上

CREATE Subscription sub CONNECT 'dbname=<db> host=x.x.0.174 user=rep password=password' PUBLICATION my_pub;

数据未复制,订阅服务器上的表仍然为空。

我在日志上看到以下错误

2020-08-14 01:26:08.055 UTC [21523] LOG:  worker process: logical replication worker for subscription 56144 sync 55996 (PID 435) exited with exit code 1
2020-08-14 01:26:08.057 UTC [437] LOG:  logical replication table synchronization worker for subscription "sub",table "wholesaletransfers" has started
2020-08-14 01:26:08.081 UTC [436] ERROR:  Could not start initial contents copy for table "public.wholesale": ERROR:  permission denied for relation wholesale

为什么在批发桌时会说public.wholesale

解决方法

您仅向用户rep授予了数据库权限,而没有向架构和表授予权限。

用户仅需要数据库上的CONNECT特权,但是模式上需要USAGE,表上需要SELECT

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。