当前位置: 首页 > news >正文

PostgreSQL 大数据量(超过50GB)导出方案

1.正常导出

导出指定库

./pg_dump -d test_db  -p 2360 > /home/softwares/postgresql/test_db.sql

导出指定表

./pg_dump -p 2360 -U postgres -t test_schema.test_table test_db > /home/softwares/postgresql/m.sql

 -t参数说明,-t test_schema.test_table test_db 分别跟模式名.表名 库名,如果省略库名则默认从与用户名同名的库中导出表。

二、大文件导出

1. 使用pg_dump的自定义格式与并行导出

pg_dump -U username -d database_name -t large_table -Fc -v -j 4 -f large_table.backup
  • -Fc:使用自定义格式,支持压缩和选择性恢复
  • -j 4:启用4个并行工作线程(根据服务器CPU核心数调整)
  • -v:显示详细进度信息

2. 使用目录格式导出

pg_dump -U username -d dbname -t huge_table -Fd -v -j 8 -f /path/to/directory/pg_dump -U username -d dbname -t huge_table -Fd -j 16 -Z 5 -f /mnt/backup/huge_table_dir
  • -Fd:使用目录格式,每个表一个文件
  • -j 8:使用8个并行工作线程
  • 输出到指定目录而非单个文件
  • -Z 5:启用Zlib压缩(级别5,平衡压缩率和速度)

3. 使用COPY命令分批次导出

对于超大表,可以按条件分批次导出到多个CSV文件:

-- 在psql中执行
\copy (SELECT * FROM large_table WHERE id >= 1 AND id <= 10000000) TO '/path/to/part1.csv' WITH CSV HEADER;
\copy (SELECT * FROM large_table WHERE id >= 10000001 AND id <= 20000000) TO '/path/to/part2.csv' WITH CSV HEADER;

 

4. 使用pg_bulkload工具

pg_bulkload是专门为大数据量导入设计的工具,但也可以用于高效导出:

pg_bulkload -d database_name -U username -o "TYPE=CSV" -o "FILE=/path/to/output.csv" -t large_table
  • 特点 绕过SQL层,直接访问存储格式
  • 性能显著高于常规方法

5. 结合split命令分割输出文件

对于超大导出文件,可以使用Unix的split命令分割:

pg_dump -U username -d database_name -t large_table -F p | split -b 10G - large_table_part_
这将生成多个10GB的文件(large_table_part_aa, large_table_part_ab等

优化建议

  1. ​关闭索引和触发器​​:在导出前考虑禁用非关键索引和触发器,导出后再重建

  2. ​调整服务器参数​​:临时增加maintenance_work_mem等内存参数可提高导出性能

  3. ​网络优化​​:如果导出到远程,考虑使用压缩传输

    pg_dump -U username -d database_name -t large_table -Fc | gzip | ssh user@remote "cat > /path/to/backup.gz"
    


文章转载自:
http://bonds.wkuuf.cn
http://brolly.wkuuf.cn
http://cadreman.wkuuf.cn
http://biblicist.wkuuf.cn
http://alluvium.wkuuf.cn
http://chronicity.wkuuf.cn
http://bafflegab.wkuuf.cn
http://bedu.wkuuf.cn
http://anchovy.wkuuf.cn
http://accidently.wkuuf.cn
http://catacaustic.wkuuf.cn
http://ascorbate.wkuuf.cn
http://bename.wkuuf.cn
http://armenia.wkuuf.cn
http://catabatic.wkuuf.cn
http://bellhop.wkuuf.cn
http://aarp.wkuuf.cn
http://camion.wkuuf.cn
http://affrontive.wkuuf.cn
http://aeriality.wkuuf.cn
http://afterthought.wkuuf.cn
http://bukharan.wkuuf.cn
http://amphicrania.wkuuf.cn
http://aerator.wkuuf.cn
http://bonism.wkuuf.cn
http://bacterization.wkuuf.cn
http://binational.wkuuf.cn
http://anserine.wkuuf.cn
http://autointoxication.wkuuf.cn
http://castiron.wkuuf.cn
http://www.dtcms.com/a/281338.html

相关文章:

  • 国产化Excel处理组件Spire.XLS教程:在 C# 中生成 Excel文件
  • 关于LM74700-Q1低IQ理想二极管的应用与参数极限
  • saltstack安装部署
  • 对象数组列表转成树形结构--树形结构转成列表(处理菜单)
  • ORA-06413: 连接未打开
  • 设计网站集:经济信息数据 统计数据 + 农业 + 金属 + 药品 + 电子 + 加密货币 + 债券 + 期货 + 其他
  • 构建企业级项目管理全面数字化运营体系︱易趋(蓝云软件)总裁唐智勇
  • 东鹏饮料牵手盈飞无限质量管理系统(QMS)
  • 多方学习与安全多方计算
  • 电动汽车制动系统及其工作原理
  • 梁的振动特征函数分析
  • 算法学习笔记(1):组合数
  • 论文 视黄素与细胞修复
  • 可下载或通过爬虫获取疾病相关数据的网站及平台,涵盖临床数据、基因关联、药品信息等方向,并附注数据特点与获取方式:(不公开)
  • PHP安全漏洞深度解析:文件包含与SSRF攻击的攻防实战
  • keeplived双击热备配置
  • chrome浏览器(chrome138.0.0.0 )无法安装扩展程序,因为它使用了不受支持的清单版本解决方案
  • GAMES101 lec2-数学基础1(线性代数)
  • 03 51单片机之独立按键控制LED状态
  • HCIA第三次综合实验:VLAN
  • 连接new服务器注意事项
  • Java核心类库深度解析与实战:从字符串处理到计算器开发
  • 外网如何连接内网中的mysql数据库服务?跨网直接访问操作,不用公网IP
  • 人机协作系列(四)AI编程的下一个范式革命——看Factory AI如何重构软件工程?
  • 力扣——1071. 字符串的最大公因子
  • 解密AWS VPC路由表:显式关联与隐式关联,谁决定了网络出口?
  • 深入剖析Java并发基石:AQS原理与实战
  • java 并发面试题2
  • 【Java篇】IntelliJ IDEA 安装与基础配置指南
  • Linux操作系统从入门到实战(十)Linux开发工具(下)make/Makefile的推导过程与扩展语法