导出本地数据,再导入到rds for postgresql中,需要尽快完成。请问有什么方法吗?
如下的shell脚本(适用于PG 9.3以上版本),可以并行的导出导入,其中jobs指定了并发的连接数:
source_db_user=
source_db_ip=
source_db_port=
source_db_name=
source_db_password=
target_db_user=
target_db_ip=
target_db_port=
target_db_name=
target_db_password=
jobs=5
echo "begin dumping"
date
export PGPASSWORD=$source_db_password
pg_dump -U $source_db_user -h $source_db_ip -p $source_db_port $source_db_name -Fd -j $jobs -f dumpdir
echo "done dumping"
date
echo "begin restoring"
date
export PGPASSWORD=$target_db_password
pg_restore -U $target_db_user -h $target_db_ip -p $target_db_port -d $target_db_name -j $jobs dumpdir
echo "end restoring"
date
dump -> 管道 -> ssl 协议连接 rds(开启数据压缩) -> 导入
我们以前从香港导数据到国内,带宽只有10Mbit,用这种方法提速近10倍左右。
http://blog.163.com/digoal@126/blog/static/163877040201152753352356/
http://blog.163.com/digoal@126/blog/static/16387704020115294425540/
虽然RDS不提供服务器的权限,但是你选择了PostgreSQL,恭喜你,因为PostgreSQL直接支持SSL压缩。
最后,如果你不知道PostgreSQL SSL怎么使用的话,你可以借助ECS做一个中继,ECS和你的本地建立SSL隧道,并建立到RDS PG的端口转发,这样也可以做到不落地的WAN段压缩传输。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。