技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页PostgreSQL>正文
PostgreSQL使用pg_dump+pg_restore多线程导出导入数据
2023年12月06日 PostgreSQL 暂无评论 ⁄ 被围观 762次+

1、在数据量小(1-2GB大小)的情况下可以直接使用pg_dump导出数据,psql导入数据,如下:

#导出数据

nohup /data/server/pgsql/bin/pg_dump -h 127.0.0.1 -U dbuser -p 5432 database --column-inserts | gzip > /tmp/database_back.sql.gz &

#导入数据

nohup gunzip -c /tmp/database_back.sql.gz | psql -h 127.0.0.1 -U dbuser -d database &

如果数据量比较大(10GB以上),导出数据至少需要2个小时以上,导入数据需要15个小时以上。

2、使用多线程并行导出导入数据

#多线程导出数据 -j 16 16可以等于cpu核数,只有在使用目录格式 (directory format) 进行备份时才支持并行备份

nohup /data/server/pgsql/bin/pg_dump -h 127.0.0.1 -U dbuser -p 5432 database --column-inserts -F d -j 16 -f /tmp/database_back &

#多线程导入数据

nohup /data/server/pgsql/bin/pg_restore --clean -h 127.0.0.1 -U dbuser -p 5432 -d database -j 16 -F d /tmp/database_back &

#实时查看进程,进程运行结束之后数据库也就导入完成了

ps aux | grep pgsql

ps aux | grep pg_dump

ps aux | grep pg_restore

ps -p 13989

top -p 13989

#实时查看目录大小变化

watch -n 1 du -sm /data/server/pgsql/data

#使用多线程可以明显提示数据库的导出导入速度

至此,PostgreSQL使用pg_dump+pg_restore多线程导出导入数据完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2024 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3