我正在使用 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 拒绝了 session 复制
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
最佳答案
RDS 不会拒绝 session 复制(至少现在是这样)。您的 bucardo 用户只是缺乏足够的权限来设置该值。我们通过让 Bucardo 用来连接数据库的用户成为“rds_superuser”角色的成员来实现这一点。
例如,如果您的 Bucardo 用户名为“bucardo”,您可以通过运行以下命令进行设置:
GRANT rds_superuser TO bucardo;
您需要以具有“CREATEROLE”权限的用户身份连接。
关于postgresql - postgres master master delta 通过 bucardo 复制到 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641992/