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

PostgreSQL的备份方式

PostgreSQL 提供多种方式进行备份,适用于不同需求的场景。常用的备份方法如下:


1. 逻辑备份(pg_dump 和 pg_dumpall)

1.1 使用 pg_dump 备份单个数据库

pg_dump是 PostgreSQL 内置的逻辑备份工具,可以将数据库导出为 SQL 脚本或二进制文件。

备份命令
  • 备份为 SQL 文件

    pg_dump -U username -d database_name -F p -f /path/to/backup.sql

    参数说明:

    • -U: 用户名。
    • -d: 数据库名称。
    • -F p: 输出为纯文本格式(Plain text)。
    • -f: 指定备份文件路径。
  • 备份为压缩文件

    pg_dump -U username -d database_name -F c -f /path/to/backup.dump

    参数说明:

    • -F c: 压缩格式(Custom format)。
    • 压缩格式可以使用pg_restore还原。
还原命令
  • 对于 SQL 文件:

    psql -U username -d new_database_name -f /path/to/backup.sql
  • 对于压缩文件:

    pg_restore -U username -d new_database_name /path/to/backup.dump

1.2 使用 pg_dumpall 备份所有数据库

pg_dumpall用于备份整个 PostgreSQL 实例(包括所有数据库和全局对象,如角色、权限等)。

备份命令
pg_dumpall -U username -f /path/to/backup_all.sql
还原命令
psql -U username -f /path/to/backup_all.sql

2. 物理备份(pg_basebackup)

2.1 使用 pg_basebackup

pg_basebackup是 PostgreSQL 提供的物理备份工具,适合对数据库进行完整二进制备份。

备份命令
pg_basebackup -U replication_user -D /path/to/backup_directory -Fp -Xs -P

参数说明:

  • -U: 备份用户(需要配置replication权限)。
  • -D: 目标备份目录。
  • -Fp: 文件模式(Plain format)。
  • -Xs: 包含 WAL 日志。
  • -P: 显示进度。
还原步骤
  1. 停止 PostgreSQL 服务:

    systemctl stop postgresql
  2. 将备份数据复制到 PostgreSQL 数据目录:

    cp -r /path/to/backup_directory/* /var/lib/pgsql/data/
  3. 启动 PostgreSQL 服务:

    systemctl start postgresql

3. 归档日志备份(WAL 日志)

归档日志备份适用于需要时间点恢复 (Point-in-Time Recovery, PITR) 的场景。

步骤
  1. 配置归档模式
    编辑postgresql.conf

    archive_mode = on archive_command = 'cp %p /path/to/archive/%f'
  2. 重启 PostgreSQL

    systemctl restart postgresql
  3. 定期备份归档日志
    配置脚本定期复制/path/to/archive/目录。

  4. 使用日志和备份恢复
    在需要恢复时,结合初始物理备份和归档日志文件执行恢复。


4. 其他备份工具

4.1 Barman

Barman 是社区维护的 PostgreSQL 专用备份工具,支持物理备份和时间点恢复。

备份命令
barman backup server_name
恢复命令
barman recover server_name backup_id /path/to/restore_directory

4.2 WAL-G

WAL-G 是 PostgreSQL 的现代备份工具,支持增量备份和快速恢复,常用于云环境。


最佳实践

  1. 定期备份

    • 每天/每周使用pg_dumppg_basebackup
    • 实现自动化备份脚本。
  2. 启用归档日志

    • 保证 WAL 日志可用于时间点恢复。
  3. 多地存储备份

    • 本地存储 + 云存储(如 S3、Google Cloud Storage)。
  4. 测试还原流程

    • 定期验证备份文件的完整性。
    • 演练灾难恢复。
  5. 监控备份

    • 结合监控工具(如 Zabbix、Prometheus)监控备份进度和状态。

按照这些方式定期备份 PostgreSQL 数据库,可以最大程度地保障数据的安全和可恢复性。

http://www.jsqmd.com/news/451707/

相关文章:

  • 如何突破网盘下载限制?全平台支持的直链解析解决方案
  • 制作PPT的图标icon网站
  • 外勤轨迹软件哪个好,选型建议及指南 - 数智AI前沿
  • ExifToolGui高效管理指南:从入门到精通的完整方案
  • 华为OD机考双机位C卷 - 优雅数组 (Java Python JS GO C++ C)
  • HeyGem数字人视频生成实战:用同一段音频批量生成多个视频
  • 利用快马AI快速构建深圳企业网络自动化运维(NAP)脚本原型
  • 通用日志组件:mzt-biz-log
  • 教学环境优化与学习效率工具:JiYuTrainer技术指南
  • 符号执行虚假控制流去混淆
  • 高效下载多平台整合:开源工具网盘直链下载助手全面指南
  • 照片元数据管理与整理完全指南:使用ExifToolGui提升工作效率
  • 3步打造无Steam局域网游戏环境:SteamEmulator完全指南
  • CSDN博客内容本地化工具:知识留存与管理完整指南
  • 解锁全速下载体验:Online-disk-direct-link-download-assistant重构网盘资源获取方式
  • Qwen-Image-2512-Pixel-Art-LoRA企业应用案例:中小游戏工作室像素资产管线搭建实录
  • 融合语言与智能:天津外国语大学与文心大模型的务实探索
  • YOLOv11模块拆解:从C2PSA注意力机制到深度可分离卷积的优化奥秘
  • 如何突破网盘限速?3步实现全速下载的秘密武器
  • 解锁3大学习自由:极域环境高效学习环境优化指南
  • CSDN博客下载器使用指南
  • BGE-Large-Zh部署教程:Docker镜像一键拉取+本地Web界面快速访问
  • QT5实战:手把手教你用MQTT实现嵌入式设备远程通信(附完整代码)
  • ollama运行QwQ-32B保姆级教学:模型量化精度与速度平衡策略
  • GLM-OCR在运维自动化中的应用:日志截图与配置文件的智能解析
  • 双目立体视觉在自动驾驶中的应用:如何通过视差图实现精准测距
  • 通义千问1.5-1.8B-Chat-GPTQ-Int4微信小程序开发集成:打造个人智能助理
  • 春联生成模型-中文-base入门指南:如何选择关键词让AI对联更出彩
  • Qwen3-ASR-0.6B真实案例:河南话农业技术广播→农技知识库构建
  • 技术文档神器!用Nano-Banana快速制作产品安装与维护示意图