我目前正在将本地数据推送到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?
非常感谢所有建议。
由于
答案 0 :(得分:1)
pg_dump
支持几种可能更快和/或导致更小文件的选项。从文档中,可以尝试一些选项。请注意,这非常依赖于您的数据,有些选择需要您使用pg_restore
代替psql
。
--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_restore
或psql
,则可能会更快那里。
注意pg_restore
也有一个--jobs=N
标记。此设置不需要匹配pg_dump
中的设置。