我们已经在AWS上建立了Web服务和数据库,并且应用程序现已投入生产。由于某些原因,我们需要终止旧的AWS并将所有内容移至新创建的AWS账户下。应用程序和所有基础结构都非常简单。但是,这对于数据来说比较棘手。当前的数据库每天仍在接收大量数据。因此,最好在关闭旧应用程序并打开新平台后迁移数据。
源RDS和目标RDS均为Postgres。我们有大约40GB的数据要传输。我可以想到三种方法,它们都有缺点。
serial
(自动递增)。导出的csv的行ID可能与新RDS表中的现有数据冲突。 我想知道是否有更好的方法。也许AWS拥有一些ETL工具,它确实实现了点对点直接传输,而无需使用本地计算机作为中间点。
答案 0 :(得分:0)
我最近已使用Bucardo(https://bucardo.org/)将RDS的数据从一个帐户转移到另一个帐户。请参考以下博客
https://www.compose.com/articles/using-bucardo-5-3-to-migrate-a-live-postgresql-database/
https://bucardo.org/pipermail/bucardo-general/2017-February/002875.html
尽管这里没有完全提到两个RDS帐户之间的迁移,但这可以帮助您进行设置。我们仍然需要一些中间点,例如EC2实例,我们需要在其中配置此Bucardo并在帐户之间迁移数据。如果您正在寻找更多信息,我们很乐意为您提供帮助。
简而言之,我们需要对源数据库进行手动快照,并将其还原到另一个帐户(https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)中,并且在EC2实例中设置了Bucardo之后,我们就可以开始使用触发器来同步数据了然后将更新目标数据库中的数据,然后新数据进入源数据库。