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 的物理备份主要通过 pg_basebackup 工具完成,它是官方提供的用于创建数据库集群基础备份的工具。该方式属于物理级别的一致性快照备份,适用于主从搭建、灾难恢复等场景。
一、pg_basebackup 简介
pg_basebackup 是 PostgreSQL 自带的逻辑流复制客户端工具,它连接到运行中的 PostgreSQL 实例,利用复制协议获取数据库文件的二进制副本,同时保证数据一致性(不需要停机)。
特点包括:
支持全量物理备份可配合 WAL 归档实现时间点恢复(PITR)可用于搭建流复制备库备份过程不影响数据库正常运行
二、使用 pg_basebackup 前的准备
要成功执行物理备份,需提前配置以下内容:
1. 配置 postgresql.conf
wal_level = replica 或 higher(如 logical)max_wal_senders:设置足够数量,建议 ≥2archive_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多商户开源商城源码是一个以thinkPHP为框架进行开发的多用户商城系统源码。网站功能包含:网站设置、帐号同步、上传设置、权限设置、地区管理、数据备份、操作日志、分类管理、品牌管理、店铺等级、店铺分类、店铺帮助、会员管理、会员级别、积分管理、预存款、实物订单、虚拟订单、退货管理、咨询管理、评价管理、文章分类、文章管理、抢购管理、限时折扣、满即送、优惠套餐、推荐展位、活动管理、兑换礼
491 查看详情
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操作的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1049093.html
微信扫一扫
支付宝扫一扫