我如何将数据从一个AWS账户的RDS移至另一个账户

问题描述 投票:3回答:1

我们早在AWS上就已经建立了Web服务和数据库,并且应用程序现已投入生产。由于某些原因,我们需要终止旧的AWS并将所有内容移至新创建的AWS账户下。应用程序和所有基础结构都非常简单。但是,这对于数据来说比较棘手。当前的数据库每天仍在接收大量数据。因此,最好在关闭旧应用程序并打开新平台后迁移数据。

源RDS和目标RDS均为Postgres。我们有大约40GB的数据要传输。我可以想到三种方法,它们都有缺点。

  1. 拍摄第一个RDS的快照,然后在第二个RDS中恢复它。问题是我不需要将所有数据从源传输到目标。大概10/01之后的记录就足够了。另外,快照最好以刚创建的空rds恢复。对于我们的情况,新的RDS将在中断后开始接收数据。只有这样,数据才会从旧帐户转移到新帐户,否则我们将丢失数据。
  2. 从旧RDS中的表中转储数据,并在新RDS中进行备份。这将具有与#1相同的问题。另外,如果我将数据转储到本地计算机,然后从本地备份,则网络速度将成为瓶颈。
  3. 将表数据导出到csv文件并导入到新的RDS。优点是此方法还允许选择和清除某些数据。但是,将大型事实表导出到本地csv文件需要花费很多时间。另一个问题是,对于某些表,我具有serial(自动递增)的替代行ID。导出的csv的行ID可能与新RDS表中的现有数据冲突。

我想知道是否有更好的方法。也许AWS拥有一些ETL工具,它确实实现了点对点直接传输,而无需使用本地计算机作为中间点。

postgresql amazon-web-services etl amazon-rds data-migration
1个回答
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之后,我们就可以开始使用触发器同步数据了,更新目标数据库中的数据,然后新数据进入源数据库。

© www.soinside.com 2019 - 2024. All rights reserved.