PostgreSQL - 我可以使用副本 WAL 的逻辑复制吗?

Ond*_*žka 5 postgresql replication aws postgresql-9.5 amazon-rds

我想使用逻辑复制。然而,由于 PostgreSQL 现在的工作方式,它可以吃掉整个磁盘,然后阻塞数据库。特别是在 Amazon Web Services RDS 中,这是一个问题,因为 RDS 不会为您提供SUPERUSER角色,以便您可以连接和关闭插槽。

所以我设置了一个 RDS 副本并设置rds.logical_replication1. 但 RDS 副本似乎没有对此做出反应 -SHOW ALL虽然wal_level = hot_standby它应该如此logical

这就是我想要实现的目标:

RDS master
    WAL --> RDS replica
                logical replication ON
                WAL + wal2json  ---->    pg_recvlogical on remote client
Run Code Online (Sandbox Code Playgroud)

这可能吗?

参考:wal_level

当我尝试创建插槽时,我得到:

致命:没有来自主机“...”、用户“postgres”的复制连接的 pg_hba.conf 条目,SSL 关闭

这看起来 AWS 没有放置正确的条目pg_hba.conf- 即不允许 postgres 用户创建复制槽。

我的假设正确吗?有什么办法解决这个问题吗?

The*_*Guy 4

您需要为用户分配rds_superuserrds_replication角色。

请参阅此处: https: //aws.amazon.com/blogs/aws/amazon-rds-for-postgresql-new-minor-versions-logic-replication-dms-and-more/