web-dev-qa-db-ja.com

PostgreSQL-レプリカのWALから論理レプリケーションを使用できますか?

論理複製を使用したいと思います。ただし、PostgreSQLは現在動作しているため、ディスク全体を使い果たし、データベースをブロックする可能性があります。特にアマゾンウェブサービスRDSでは、RDSがSUPERUSERの役割を提供しないため、スロットを接続してオフにすることができるため、これは問題です。

そこで、RDSレプリカをセットアップし、rds.logical_replication1に設定しました。しかし、RDSレプリカはそれに反応しないようです-SHOW ALLwal_level = hot_standbyであるのに対し、logicalである必要があります。

これは私が達成したいことです:

RDS master
    WAL --> RDS replica
                logical replication ON
                WAL + wal2json  ---->    pg_recvlogical on remote client

これは可能ですか?

リファレンス: wal_level

スロットを作成しようとすると、次のようになります。

致命的:ホスト "..."からのレプリケーション接続用のpg_hba.confエントリがありません、ユーザー "postgres"、SSLオフ

これは、AWSがpg_hba.confに正しいエントリを配置していないようです。つまり、postgresユーザーがレプリケーションスロットを作成することを許可していません。

私の仮定は正しいですか?それを回避する方法はありますか?

2
Ondra Žižka

rds_superuserおよびrds_replicationロールをユーザーに割り当てる必要があります。

ここを参照してください: https://aws.Amazon.com/blogs/aws/Amazon-rds-for-postgresql-new-minor-versions-logical-replication-dms-and-more/

2
Bhuvanesh