如何配置从 PostgreSQL (RDS) 到 vanilla PostgreSQL 的复制?

Eva*_*van 6 postgresql replication aws amazon-ec2

我有一个 Amazon RDS Postgres 数据库,我创建了一个“复制器”用户并授予它“复制”权限。

db=> create role replicator login password 'something';
CREATE ROLE
db=> alter role replicator replication;
ALTER ROLE
db=>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试pg_basebackup从目标主机运行以创建副本时,出现 pg_hba.conf 错误:

# pg_basebackup -D /data/from-master -U replicator -h db-master.example.com -v
pg_basebackup: could not connect to server: FATAL:  no pg_hba.conf entry for replication connection from host "10.1.20.19", user "replicator", SSL on
FATAL:  no pg_hba.conf entry for replication connection from host "10.1.20.19", user "replicator", SSL off
Run Code Online (Sandbox Code Playgroud)

问题是,这是 RDS,我根本无法访问 pg_hba.conf。有任何想法吗?

Eva*_*van 0

经过更多思考后,这可能是不可能的,因为 Postgres 在集群级别进行二进制复制,这意味着您复制实例中的所有数据库。我假设 RDS 是多租户 Postgres 安装,所以他们不能让你这样做(除非他们大量修改 postgres 本身)。

  • RDS 在专用于您的 EC2 实例上运行。因此,实际的PG实例是你自己的,没有多租户(除非你算上服务器虚拟化)。 (2认同)