首页 > 数据库 > SQL > 正文

postgresql物理备份如何进行_postgresqlpgbasebackup操作

冰川箭仙
发布: 2025-11-26 19:35:08
原创
737人浏览过
PostgreSQL物理备份通过pg_basebackup实现,该工具利用复制协议创建一致性快照,支持全量备份、WAL归档与流复制备库搭建;使用前需配置wal_level、max_wal_senders及pg_hba.conf,创建REPLICATION权限用户;备份命令如pg_basebackup -h -U -D -Ft -z -P -R可生成压缩tar包并自动生成备库启动文件;恢复时需停止服务、清空数据目录、解压备份并正确配置恢复参数;结合WAL归档可实现时间点恢复,建议定期测试恢复流程、监控磁盘空间,并在低峰期执行备份以保障数据安全。

postgresql物理备份如何进行_postgresqlpgbasebackup操作

PostgreSQL 的物理备份主要通过 pg_basebackup 工具完成,它是官方提供的用于创建数据库集群基础备份的工具。该方式属于物理级别的一致性快照备份,适用于主从搭建、灾难恢复等场景。

一、pg_basebackup 简介

pg_basebackup 是 PostgreSQL 自带的逻辑流复制客户端工具,它连接到运行中的 PostgreSQL 实例,利用复制协议获取数据库文件的二进制副本,同时保证数据一致性(不需要停机)。

特点包括:

  • 支持全量物理备份
  • 可配合 WAL 归档实现时间点恢复(PITR)
  • 可用于搭建流复制备库
  • 备份过程不影响数据库正常运行

二、使用 pg_basebackup 前的准备

要成功执行物理备份,需提前配置以下内容:

1. 配置 postgresql.conf

  • wal_level = replica 或 higher(如 logical)
  • max_wal_senders:设置足够数量,建议 ≥2
  • archive_mode(可选但推荐):开启归档更利于恢复

2. 配置 pg_hba.conf

添加一条允许复制连接的规则:

host    replication     backup_user     192.168.1.0/24     md5
登录后复制

示例中 backup_user 是专门用于备份的用户,需具有 REPLICATION 权限。

3. 创建专用备份用户(推荐)

登录数据库执行:

CREATE USER backup_user WITH REPLICATION ENCRYPTED PASSWORD 'your_password';
登录后复制

三、执行 pg_basebackup 备份操作

基本语法格式如下:

DSMall多商户开源商城源码
DSMall多商户开源商城源码

DSMall多商户开源商城源码是一个以thinkPHP为框架进行开发的多用户商城系统源码。 网站功能包含:网站设置、帐号同步、上传设置、权限设置、地区管理、数据备份、操作日志、分类管理、品牌管理、店铺等级、店铺分类、店铺帮助、会员管理、会员级别、积分管理、预存款、实物订单、虚拟订单、退货管理、咨询管理、评价管理、文章分类、文章管理、抢购管理、限时折扣、满即送、优惠套餐、推荐展位、活动管理、兑换礼

DSMall多商户开源商城源码 491
查看详情 DSMall多商户开源商城源码
pg_basebackup [选项]
登录后复制

常用命令示例:

数据库备份到本地目录 /data/backup/base_20250405:

pg_basebackup -h 127.0.0.1 -p 5432 -U backup_user -D /data/backup/base_20250405 -Ft -z -P
登录后复制

参数说明:

  • -h:主机地址
  • -p端口
  • -U:连接用户(需有复制权限)
  • -D:目标目录或压缩包路径
  • -Ft:输出为 tar 格式(默认是 plain 目录结构)
  • -z:启用 gzip 压缩(仅对 tar 有效)
  • -Z:指定压缩级别(1-9)
  • -P:显示进度信息
  • -R:在备份完成后自动生成 standby.signal 文件和 postgresql.auto.conf,便于直接作为备库启动
  • --checkpoint=fast|spread:控制检查点行为,默认 spread 更温和

保存为压缩 tar 包示例:

pg_basebackup -h localhost -U backup_user -D /backup/base.tar.gz -Ft -z -P -R
登录后复制

此命令生成一个压缩的完整备份包,适合远程传输或长期归档。

四、恢复与使用备份

物理备份不能像逻辑导出那样选择性恢复表,必须整体还原整个实例。

恢复步骤:

  • 停止当前数据库服务
  • 清空数据目录($PGDATA)
  • 解压备份文件到 $PGDATA(如果是 tar 格式)
  • 若开启了归档,确保 recovery.conf 或相关恢复设置正确(PostgreSQL 12+ 使用 postgresql.auto.conf 和 standby.signal)
  • 启动数据库实例

示例(tar 格式恢复):

rm -rf /var/lib/postgresql/15/main/*
tar -zxvf base.tar.gz -C /var/lib/postgresql/15/main
# 如果包含 standby.signal,则自动以备库模式启动
pg_ctl start -D /var/lib/postgresql/15/main
登录后复制

五、注意事项与最佳实践

  • 定期测试备份恢复流程,确保有效性
  • 结合 WAL 归档(archive_command)才能实现 PITR
  • 备份期间网络中断会导致失败,建议在低峰期执行
  • 避免频繁全量备份,可配合增量策略(如基于 LSN 的差异备份工具 pg_probackup)
  • 监控磁盘空间,尤其是 WAL 日志增长情况

基本上就这些。pg_basebackup 操作简单且稳定,是 PostgreSQL 物理备份的基础手段,合理配置后能有效保障数据安全。

以上就是postgresql物理备份如何进行_postgresqlpgbasebackup操作的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号