【发布时间】:2019-08-24 08:32:21
【问题描述】:
我有一个本地运行的 postgres 数据库,我想迁移到 AWS Aurora(或 AWS postgres)。
我已经pg_dump'd 我想要的数据库,它压缩了大约 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 Database Migration Service - 看起来这将是最便宜的(因为它是免费的?)但它只能通过连接到本地数据库来工作。未压缩的数据大约是 200gb,我不确定使用 DMS 进行一对一复制是否有意义
我已阅读 this article,但我仍不清楚进行迁移的最佳方式。
我们可以接受这需要一段时间,我们只是希望尽可能便宜。
提前致谢!
【问题讨论】:
-
AFAIK,传入的数据无论如何都是免费的,所以一个简单的
pg_restore(如果可能的话允许多线程使用--format=directory --jobs=<num>)就可以完成这项工作。在任何情况下,您都需要为 I/O 和存储付费。为了减少 I/O 的数量,您可以例如在创建转储 (ALTER TABLE xyz SET UNLOGGED;) 之前关闭日志记录,并在还原后重新打开。
标签: postgresql amazon-web-services amazon-rds amazon-aurora