postgres将压缩选项转储到AWS RDS

时间:2015-07-16 17:33:21

标签: postgresql amazon-web-services rds

我目前正在将本地数据推送到AWS RDS数据库 - 但由于数据大小,这需要很长时间。希望有人能够建议一种方法来在发送之前压缩转储文件(然后在另一端读取它)

目前正在编写转储文件:

pg_dump -t properties_staging --data-only project_development > data/properties_staging.dump

以这种方式向AWS推送:

psql -a -h blahblahblah.blahblahblah.eu-west-1.rds.amazonaws.com -U master -d ebdb -p 5432 < data/properties_staging.dump

有什么最好的选项可以减少这个转储文件,同时仍然可以将其升级到RDS?

非常感谢所有建议。

由于

1 个答案:

答案 0 :(得分:1)

pg_dump支持几种可能更快和/或导致更小文件的选项。从文档中,可以尝试一些选项。请注意,这非常依赖于您的数据,有些选择需要您使用pg_restore代替psql

pg_dump选项

  • --format=custom使用二进制格式,默认压缩。
  • --format=directory在转储中创建多个文件。默认压缩。允许并行转储。
  • --jobs=N使用N个线程进行转储和压缩。可以加快运作。
  • --compress=N从0到9的数字。零是没有压缩,一个是低CPU压缩,9是高CPU压缩。 Here's a quick summary of what this means

同样,最快的是什么?我不知道。根据您的具体情况进行测试和测试。如果将pg_dump的输出复制到同一AZ中的EC2实例(具有相当快的CPU,而不是微型或t2)并从中运行pg_restorepsql,则可能会更快那里。

注意pg_restore也有一个--jobs=N标记。此设置不需要匹配pg_dump中的设置。