迁移本地数据库到AWS Aurora

3

我有一个正在本地运行的Postgres数据库,我想将其迁移到AWS Aurora(或AWS Postgres)。

我已经使用pg_dump备份了所需的数据库,压缩后大约30GB。

我该如何上传此文件并让AWS RDS实例从中进行pg_restore

要求:

没有其他人在使用该数据库,因此我们可以接受很长时间的停机和对数据库的独占锁定。我们希望以尽可能便宜的方式进行迁移。

到目前为止,我尝试/查看过的内容:

  • 使用远程目标在本地文件上运行pg_restore - 未知的总价格

我还希望以尽可能便宜的方式进行操作,但我不确定我是否理解了他们的定价策略。

他们的定价说明如下:

Storage Rate            $0.10 per GB-month
I/O Rate                $0.20 per 1 million requests
Replicated Write I/Os   $0.20 per million replicated write I/Os

“pg_restore”算作一个请求吗?该数据库约有22亿条目,如果每个条目都是1个请求,那么仅重建数据库就需要440美元吗?

  • AWS数据库迁移服务-看起来这是最便宜的选择(因为它是免费的?),但它只能通过连接到本地数据库来工作。未压缩的数据约为200GB,我不确定使用DMS进行一对一复制是否合理。

  • 我阅读了this article,但我仍然不清楚最佳迁移方式。

我们可以接受这需要一段时间,我们只想尽可能便宜地完成它。

提前感谢!


据我所知,传入的数据无论如何都是免费的,所以一个简单的 pg_restore(如果可能的话,可以使用多线程选项 --format=directory --jobs=<num>)就足够完成工作了。无论如何,您将为I/O和存储付费。为了减少I/O的数量,您可以在创建转储之前关闭日志记录(ALTER TABLE xyz SET UNLOGGED;),然后在恢复之后重新打开它。 - Ancoron
1个回答

1

在迁移时,有一些需要注意的事项。

AWS数据库迁移服务 - 看起来这将是最便宜的选择(因为它是免费的?)

他们提供的免费服务是一个虚拟机(包含软件),提供计算能力和功能,以将数据库移动到其中一些RDS服务。

即使该服务是免费的,您也将为任何RDS使用收取正常费用。

他们提供的数字与EBS(底层磁盘)大致相关,用于提供数据服务。一个非常大而复杂的查询可能需要一些I/O,两者不相等。 EBS使用量的估计可以在此处看到。

例如,一个中等大小的网站数据库可能有100GB的大小,并且预计平均每秒100个I/O,在一个月的时间内。这将转化为存储成本每月10美元(100 GB x $0.10/月),并且请求成本每月约为26美元(~2.6百万秒/月x每秒100个I/O *每百万次I/O 0.10美元)。

我的个人建议:使用部分数据集制作数据库克隆(可能是5%),并在该部分上使用DMS。您可以在几分钟内查看账单的情况。然后,您可以估算完整数据库迁移的价格。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接