如何将集群 rds(postgres) 迁移到不同的帐户?

how to migrate clustered rds(postgres) to different account?

我正在从同一区域的 AccountA(源)迁移到 AccountB(目标)。 我 运行 模板,所以 AccountB 已经有一个 RDS 集群但没有数据。数据库实例 ID 与我在采购帐户上的完全相同。

**我的目标是拥有与以前相同的端点,因为我们将完全停用 AccountA,并且我不想更改更新端点的代码端。 **

我拍摄了集群(写入器实例)的快照,然后使用 KMS 密钥复制快照,并与 AccountB 共享。都好。现在,从 AccountB(目标)复制快照并尝试恢复。我以为我可以直接恢复到 RDS 集群,但我发现使用 restore 是行不通的,因为它总是创建一个新实例。

然后,我将现有的空 RDS 集群重命名为其他名称以释放数据库实例 ID,然后将临时集群重命名为相同名称。它有效,但这似乎效率不高。

RDS 数据迁移的最佳实践是什么?

您的经验是正确的——RDS 快照被恢复作为一个新的 RDS 实例(而不是将数据加载到一个现有的实例中) .

对于“端点”,如果您指的是用于连接数据库的 DNS 名称,那么新数据库将不会 具有相同的端点。如果您想保留一个端点,那么您可以创建一个 DNS 名称,其中的 CNAME 记录解析为数据库的 DNS 名称。这样,您可以更改 CNAME 记录以指向不同的端点,而无需更改代码。 (但是,您可能还没有这样做,所以无论如何您都需要更改代码以指向新的 DNS 名称,因此工作量相同。)

您说得对,您不需要 snapshot/copy 读者 -- 您可以简单地从新数据库创建它们。还原后,您将需要 'create' 新数据库上的读取器,因为快照只包含主数据库的数据。