2016-05-31 67 views
6

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

备份宝石运行pg_dump的命令,但AWS不允许同一版本的Postgres将在两个EC2和RDS安装,从而导致出现以下错误:

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升级到匹配的版本。

这里是我的备用宝石机型的配置,如果有帮助:https://gist.github.com/anonymous/35f6f9e81846f53693fb03662c2192ad

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

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

回答