PostgreSQL 14 pg_dumpall 完整备份指南

发布时间:2026/7/23 16:13:38
PostgreSQL 14 pg_dumpall 完整备份指南 pg_dumpall用于整实例备份所有数据库、全局对象角色、表空间、权限区别于pg_dump只备份单个库。⚠️ 必须使用postgres 超级用户执行一、基础语法pg_dumpall [选项] 备份文件.sql最简本地备份pg_dumpall -U postgres all_db_backup_$(date %Y%m%d).sql远程实例备份pg_dumpall -h 192.168.1.100 -p 5432 -U postgres all_backup.sql二、常用核心参数PG14 适用参数说明-U user指定数据库用户必须超级用户-h host数据库地址-p port端口-w不提示密码配合 .pgpass-W强制弹出密码输入-g / --globals-only只备份全局对象角色、表空间不含数据库数据-r / --roles-only仅备份角色-t / --tablespaces-only仅备份表空间-c / --clean备份中增加 DROP 语句恢复前先删除对象-s / --schema-only只导出结构不导出数据-f file指定输出文件替代重定向 示例带清理语句pg_dumpall -U postgres -c -f all_backup.sql三、密码免交互推荐生产使用编辑~/.pgpasslocalhost:5432:*:postgres:你的密码授权权限不对会失效chmod 600 ~/.pgpass之后执行不需要输密码。四、压缩备份生产标准写法# 备份同时gzip压缩 pg_dumpall -U postgres | gzip pg14_all_$(date %Y%m%d).sql.gz # 解压恢复 gunzip -c pg14_all.sql.gz | psql -U postgres五、恢复命令整实例恢复覆盖导入psql -U postgres -f all_backup.sql重要提醒恢复目标 PG 版本 ≥ 备份版本PG14 的 dumpall 可以恢复到 14/15/16不建议往更低版本恢复如果跨机器迁移目标库不存在同名角色会报错pg_dumpall 自带角色创建语句六、生产定时备份脚本示例可直接改造 crontab#!/bin/bash BACKUP_DIR/data/pgbackup DATE$(date %Y%m%d_%H%M%S) USERpostgres mkdir -p ${BACKUP_DIR} pg_dumpall -U ${USER} | gzip ${BACKUP_DIR}/pg14_all_${DATE}.sql.gz # 保留7天备份 find ${BACKUP_DIR} -name pg14_all_*.sql.gz -mtime 7 -delete七、常见坑 PG14pg_dumpall 不支持自定义格式只能纯 sql 文本如果你想要并行、压缩自定义格式只能单库使用pg_dump -Fd整实例只能 sql 脚本。大实例pg_dumpall单进程速度不如分库并行 pg_dump备份期间会获取共享快照长时间备份存在长事务风险逻辑备份≠物理备份超大库优先考虑pg_basebackup补充区分pg_dumpall整实例所有库 账号权限逻辑备份pg_dump单个数据库逻辑备份pg_basebackup物理文件级备份适合 TB 级大数据如果你需要我可以给你适配 Anolis OS 8 / CentOS7 的 crontab 定时任务完整配置。

相关新闻

最新新闻

日新闻

周新闻

月新闻