我有一个正在本地运行的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