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_restore
或 psql
从那里开始。
注意 pg_restore
也有一个 --jobs=N
标志。此设置不需要与 pg_dump
.
中的设置相匹配
我目前正在将本地数据推送到 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_restore
或 psql
从那里开始。
注意 pg_restore
也有一个 --jobs=N
标志。此设置不需要与 pg_dump
.