EC2和RDS之间的备份gem pg_dump版本不匹配



我正在配置备份gem(http://backup.github.io/backup/v4/)要在我的EC2实例上运行,请在RDS中复制PostgreSQL数据库,并将备份存储在新的S3存储桶中。

备份gem运行pg_dump命令,但是AWS不允许在EC2和RDS上安装相同版本的Postgres,导致以下错误:

pg_dump: server version: 9.4.7; pg_dump version: 9.2.13
pg_dump: aborting because of server version mismatch

这是因为EC2实例的版本为:

$ pg_dump --version                                                                                                                                                                                                                                                                         
pg_dump (PostgreSQL) 9.2.13

RDS实例有版本:

9.4.7-R1(具有9.5.2-R1的唯一其他版本选项)

在EC2上,运行yum-list-postgres*只提供PostgreSQL 9.3以下的可用软件包。

所以我似乎无法将RDS降级或将EC2升级到匹配的版本。

如果有帮助的话,下面是我的Backup gem模型配置:https://gist.github.com/anonymous/35f6f9e81846f53693fb03662c2192ad

在太多人开始提醒我RDS有内置备份之前,我就知道了。我的用例:我不希望只有完整的数据库回滚,我还希望能够将单个用户的数据回滚到不同的时间段,而不会影响整个数据库。我计划保留这些手动备份,并最终编写一个脚本,从中提取以前特定于用户的数据。

我的朋友推荐了另一个选项:如果用户想回滚,我可以从自动快照中创建一个新的RDS,克隆我的EC2实例,将它们相互连接,从该快照中收集用户特定的数据,然后将这些更改合并回主EC2实例。

在EC2实例上设置PostgreSQL的YUM存储库:

https://yum.postgresql.org/

并安装更新的PostgreSQL客户端版本。

最新更新