通过bucardo将postgres master master delta复制到RDS

时间:2015-06-04 10:55:36

标签: postgresql replication master rds bucardo

我正在使用Bucardo-5.3.1并试图复制我的内部postgreSQL数据库。我用RDS postgreSQL创建了一个主 - 主复制。如果RDS db为空且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

2 个答案:

答案 0 :(得分:0)

bucardo用于从RDS导出,londiste用于导入RDS。 This link可能有助于配置londiste。

答案 1 :(得分:0)

RDS不会拒绝会话复制(至少现在)。您的bucardo用户只是缺少设置值的足够权限。我们通过让用户使用Bucardo将数据库中的一个成员连接到" rds_superuser"作用。

例如,如果您的Bucardo用户名为" bucardo",您可以通过运行来设置:

GRANT rds_superuser TO bucardo;

您需要以" CREATEROLE"作为用户进行连接。特权。