1

我正在使用 Bucardo-5.3.1 并尝试复制我的本地 postgreSQL 数据库。我已经使用 RDS postgreSQL 创建了主-主复制。如果 RDS 数据库为空并且 pg_dump 完成,我能够成功复制,当我想要进行增量复制时会出现问题。当我尝试pg_dump -U $PGSUPERUSER -h $PGHOST --data-only -N bucardo $PGDATABASE | PGOPTIONS='-c session_replication_role=replica' psql -U $BUCARDOUSER -h $PGHOST2 -d $PGDATABASE

我收到以下错误,因为 RDS 拒绝了会话复制

psql: FATAL:  permission denied to set parameter "session_replication_role"

我也尝试使用以下命令

bucardo update sync mysync1 onetimecopy=2

我也尝试使用 pg_restore 但它仍然给出ERROR: duplicate key value violates unique constraint

4

2 回答 2

1

RDS 不会拒绝会话复制(至少现在是这样)。您的 bucardo 用户只是缺乏足够的权限来设置该值。我们通过让 Bucardo 用来连接数据库的用户成为“rds_superuser”角色的成员来实现这一点。

例如,如果您的 Bucardo 用户名为“bucardo”,您可以通过运行以下命令进行设置:

GRANT rds_superuser TO bucardo;

您需要以具有“CREATEROLE”权限的用户身份连接。

于 2016-11-01T17:11:04.557 回答
0

bucardo 用于从 RDS 导出,londist 用于导入 RDS。此链接可能有助于配置 londiste。

于 2015-06-06T15:28:02.077 回答