2017-09-26 208 views

回答

1

我做到这一点使用Bucardo这。 退房这样的:https://bucardo.org/Bucardo/

随着Bucardo这是可以复制的Postgres RDS实例与Postgres的奴隶某处存在,只有配置的奴隶,所以没有需要配置RDS的东西。 您也可以在零宕机时间内完成此操作。

无论如何,我不确定这将使用不同版本的Postgresql。如果可能,你应该使用相同的版本。我用9.4.x测试过,它正在工作。

UPDATE

我可以证实,这是工作也使用不同版本的Postgres的,比如我能与这些版本进行复制:

  • AWS RDS的PostgreSQL 9.4.x
  • 内部部署postgresql 9.6.x
+0

hi @diego:我已经使用bucardo设置了复制。但有时会卡住。当我检查bucardo状态时,它会显示** Good **,但数据不会被复制。你对这个问题有什么想法吗? – WannaBeSQLExpert

+0

嗨@WannaBeSQLExpert,使用bucardo进行复制的主要问题是,如果主数据库的模式发生更改,则同步会卡住,您必须手动重新创建它。这是一个痛苦,对我们来说是导致同步失败的唯一原因。 关于bucardo状态命令,请始终检查* Last good *列,以查看它是否显示几乎等于实际/当前时间的时间戳。如果是,那么复制应该工作。 –

0

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication

在PostgreSQL版本9.4开始,PostgreSQL支持使用逻辑复制槽 流WAL的变化。 Amazon RDS 支持PostgreSQL数据库实例版本 9.4.9及更高版本和9.5.4及更高版本的逻辑复制。使用逻辑复制,您可以在您的实例上设置逻辑复制插槽,并通过这些插槽将数据库更改流传输到像pg_recvlogical这样的客户端。 逻辑插槽在数据库级别创建并支持到单个数据库的复制连接。

心中可能存在的问题https://dba.stackexchange.com/questions/173267/aws-rds-postgres-logical-replication