我正在使用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
答案 0 :(得分:0)
bucardo用于从RDS导出,londiste用于导入RDS。 This link可能有助于配置londiste。
答案 1 :(得分:0)
RDS不会拒绝会话复制(至少现在)。您的bucardo用户只是缺少设置值的足够权限。我们通过让用户使用Bucardo将数据库中的一个成员连接到" rds_superuser"作用。
例如,如果您的Bucardo用户名为" bucardo",您可以通过运行来设置:
GRANT rds_superuser TO bucardo;
您需要以" CREATEROLE"作为用户进行连接。特权。