論理複製を使用したいと思います。ただし、PostgreSQLは現在動作しているため、ディスク全体を使い果たし、データベースをブロックする可能性があります。特にアマゾンウェブサービスRDSでは、RDSがSUPERUSER
の役割を提供しないため、スロットを接続してオフにすることができるため、これは問題です。
そこで、RDSレプリカをセットアップし、rds.logical_replication
を1
に設定しました。しかし、RDSレプリカはそれに反応しないようです-SHOW ALL
はwal_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ユーザーがレプリケーションスロットを作成することを許可していません。
私の仮定は正しいですか?それを回避する方法はありますか?
rds_superuserおよびrds_replicationロールをユーザーに割り当てる必要があります。
ここを参照してください: https://aws.Amazon.com/blogs/aws/Amazon-rds-for-postgresql-new-minor-versions-logical-replication-dms-and-more/