postgres 将压缩选项转储到 AWS RDS

postgres dump compression options to AWS 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?

非常感谢收到所有建议。

谢谢

pg_dump 支持几个可能更快的选项 and/or 导致文件更小。从文档中,可以尝试一些选项。请注意,这非常依赖于您的数据,某些选择将要求您使用 pg_restore 而不是 psql

pg_dump 选项

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

同样,最快的是什么?我不知道。针对您的具体情况进行测试和基准测试。如果您将 pg_dump 的输出复制到同一 AZ 中的 EC2 实例(具有相当快的 CPU,而不是 micro 或 t2)并且 运行 pg_restorepsql 从那里开始。

注意 pg_restore 也有一个 --jobs=N 标志。此设置不需要与 pg_dump.

中的设置相匹配