PostgreSQL常用的备份方式总结

 更新时间:2025年02月13日 09:51:44   作者:weixin_44594317  
这篇文章主要介绍了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: 显示进度。

还原步骤

  • 停止 PostgreSQL 服务:
    systemctl stop postgresql
    
  • 将备份数据复制到 PostgreSQL 数据目录:
    cp -r /path/to/backup_directory/* /var/lib/pgsql/data/
    
  • 启动 PostgreSQL 服务:
    systemctl start postgresql
    

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

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

步骤

  • 配置归档模式
    编辑 postgresql.conf

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

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

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

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 的现代备份工具,支持增量备份和快速恢复,常用于云环境。

最佳实践

  • 定期备份

    • 每天/每周使用 pg_dump 或 pg_basebackup
    • 实现自动化备份脚本。
  • 启用归档日志

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

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

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

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

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

总结

到此这篇关于PostgreSQL常用备份方式总结的文章就介绍到这了,更多相关PostgreSQL备份方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PostgreSQL的整型、浮点型、固定精度数值和序列等数字类型

    PostgreSQL的整型、浮点型、固定精度数值和序列等数字类型

    PostgreSQL(简称PGSQL)是一种开源关系型数据库管理系统,广泛应用于企业级应用,文章详细介绍了PostgreSQL的数字类型,包括整型、浮点型、固定精度数值型和序列类型,强调了选择合适的数字类型对于数据库的存储效率、查询性能和数据准确性的重要性
    2024-09-09
  • PostgreSQL 查找当前数据库的所有表操作

    PostgreSQL 查找当前数据库的所有表操作

    这篇文章主要介绍了PostgreSQL 查找当前数据库的所有表操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL表膨胀监控案例(精确计算)

    PostgreSQL表膨胀监控案例(精确计算)

    这篇文章主要介绍了PostgreSQL表膨胀监控案例(精确计算),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 解决postgresql表中的字段名称包含特殊符号的问题

    解决postgresql表中的字段名称包含特殊符号的问题

    这篇文章主要介绍了解决postgresql表中的字段名称包含特殊符号的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 如何使用Dockerfile创建PostgreSQL数据库

    如何使用Dockerfile创建PostgreSQL数据库

    这篇文章主要介绍了如何使用Dockerfile创建PostgreSQL数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-02-02
  • windows PostgreSQL 9.1 安装详细步骤

    windows PostgreSQL 9.1 安装详细步骤

    这篇文章主要介绍了windows PostgreSQL 9.1 安装详细步骤,需要的朋友可以参考下
    2016-11-11
  • PostgreSQL数据库命令行执行SQL脚本的三种方式

    PostgreSQL数据库命令行执行SQL脚本的三种方式

    生成环境中,出于安全性等原因,往往不提供数据库连接工具,所以对数据库的更新和升级就得通过命令行来实现,本文总结了三种命令行执行sql脚本的方式,需要的朋友可以参考下
    2024-02-02
  • PostgreSQL如何修改默认端口号

    PostgreSQL如何修改默认端口号

    文章主要内容是关于在升级PostgreSQL过程中遇到的问题,以及解决这些问题的方法,升级过程中,由于端口号设置不正确,导致psql连接到旧版本的服务器,从而引发语法错误,解决方法是在连接数据库时指定正确的端口号,或者修改默认端口号
    2024-12-12
  • PostgreSQL 查看服务器版本的三种方法

    PostgreSQL 查看服务器版本的三种方法

    这篇文章主要介绍了PostgreSQL 查看服务器版本的几种方法,本文给大家分享三种方法,结合实例代码给大家讲解的非常详细,需要的朋友可以参考下
    2023-03-03
  • postgresql 索引之 hash的使用详解

    postgresql 索引之 hash的使用详解

    这篇文章主要介绍了postgresql 索引之 hash的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论