您能否使用 AWS DMS 将 Aurora DB 从一个账户移动到另一个账户?

Can you use AWS DMS to move Aurora DB from one account to another?

我正在尝试将 Aurora 集群从我们的一个帐户迁移到另一个帐户。我们实际上没有很多写请求,数据库本身也很小,但不知何故我们决定尽量减少停机时间。

我研究了几个选项

  1. 使用快照:切断源数据库中的突变,拍摄快照,在另一个帐户中共享和恢复。这肯定会带来一些停机时间
  2. 使用Aurora克隆:切断源数据库的突变,克隆目标帐户中的集群并切换到目标数据库。据 AWS 称,克隆比拍摄和恢复快照快得多,因此停机时间应该更短。
  3. 我不确定我是否可以使用 DMS 来执行此操作,因为我发现 doc/tutorials 对于跨帐户移动 Aurora 没有用处。另外,我不确定 DMS 是否会在迁移过程中将任何写入请求同步到目标数据库。
  4. 如果DMS不能live sync,那我可能应该用Bucardo来live migrate

查看文档,允许将具有 PostgreSQL 兼容性的 AWS Aurora 作为 source & target 端点。所以,回答你的问题,是的这是可能的。 显然,您的源 Aurora 数据库应该可以从目标账户访问。检查 DB 端点是 public 并且流量不受 ACL 规则或 SG 规则限制。 此外,如果要启用持续复制,则需要向源数据库用户授予 rds_replication(或 rds_superuser)角色。 Link 到 docs.

我们实际上最终使用 DMS 进行了这次迁移。我们所做的是:

  1. 对原账户中的目标数据库进行快照。
  2. 分享快照到目标账户,并在那边恢复。 (您必须使用快照来迁移触发器、自定义类型、序列等内容)
  3. 在两个账户之间设置连接(如 VPC 对等或安全组)。
  4. 在源帐户中设置 DMS(端点、复制实例、任务)
  5. 写入SQL临时disable/delete约束、触发器等,加载源数据时可能会导致错误。
  6. 使用 DMS 加载源数据并启用持续复制。
  7. Enable/add 约束、触发器等返回。
  8. Post迁移测试