Postgres流式备份(1)Barman概述

Barman是一款用Python编写的开源工具,专为PostgreSQL提供全面的备份和恢复解决方案。它支持多种备份方式,包括全量备份、基于WAL的增量备份、rsync备份等,适用于不同版本的PostgreSQL服务器。Barman还提供了流备份技术和工具,如pg_basebackup、pg_receivewal等,以及网络压缩和带宽控制功能。

参考文档:http://docs.pgbarman.org/release/2.5/index.html

概述

Barman是使用Python编写的PostgreSQL开源备份和恢复管理器

功能

  • 多种备份方式集成
  • 备份文件的管理

流备份技术和工具

  1. pg_basebackup:用于数据库全量备份
  2. pg_receivewal/pg_receivexlog:用于基于全量对WAL增量备份,可实现很低的数据丢失时间
  3. archive_command:WAL文件切换(写满指定大小或到达指定切换周期)时传递归档日志到备份服务器,有一定的数据丢失时间
  4. rsync:基于块复制进行备份

Barman支持1+2或1+2+3多种备份方式

备份机制

流协议备份

支持PostgreSQL 9.4或更高版本,一般建议使用流协议备份
在这里插入图片描述也可以同时使用WAL流和归档进行备份
在这里插入图片描述

rsync/SSH备份

以下情况时只能使用rsync/SSH备份

  • PostgreSQL服务器版本8.3,8.4,9.0或9.1
  • 使用表空间的PostgreSQL服务器版本9.2或9.3
  • 增量备份,并行备份和重复数据删除
  • 备份期间的网络压缩
  • 更好地控制带宽使用,包括基于表空间
    在这里插入图片描述
    从PostgreSQL 9.2开始,您可以添加用于WAL流的流复制连接,并显着减少RPO,如下图
    在这里插入图片描述
### 配置PostgreSQL主从备份 #### 修改主服务器配置文件 为了实现PostgreSQL的主从备份,需先调整主服务器上的`postgresql.conf`文件设置。具体来说,在PG安装目录下的`postgresql.conf`文件中,应取消特定参数前的注释符号(即井号 `#`),并对这些参数进行适当设定[^3]。 例如: ```conf listen_addresses = '*' wal_level = replica max_wal_senders = 10 wal_keep_segments = 64 archive_mode = on hot_standby = on ``` 上述配置允许主节点监听所有地址,并保持足够的WAL日志供备节点追加同步;同时开启热备用功能以便于读取操作可以在副本上执行。 #### 设置主机信任关系 为了让备机能够顺利连接到主机获取数据流复制所需的信息,需要编辑位于`pg_hba.conf`中的访问控制列表,加入一条记录指定允许来自哪个IP范围内的客户端通过何种认证方式接入数据库服务。对于基于主机验证的方式而言,则可以采用如下形式来简化配置过程[^1]: ``` host replication postgres server.example.com/32 trust ``` 此行表示任何来自于`server.example.com`这台机器发起的数据复制请求都将被无条件接受而无需密码校验。 #### 初始化备库环境 完成以上准备工作之后,就可以利用`pg_basebackup`工具创建一个新的物理拷贝作为初始状态的基础了。命令格式通常如下所示[^4]: ```bash pg_basebackup -h 172.16.125.201 -U replica -D /var/lib/pgsql/9.4/data -X stream -P ``` 这条指令会从远程位置(`172.16.125.201`)拉取最新版本的数据集存放到本地路径(`/var/lib/pgsql/9.4/data`)内,并启用持续的日志传输模式(-X stream),从而确保两份实例之间的一致性和连续性。 #### 启动并监控进程 最后一步是在新建立好的次级站点启动PostgreSQL守护程序,使其进入待命状态准备接收更新通知以及处理查询请求。可以通过查看系统进程中是否存在名为`checkpointer`的服务项确认当前运行状况正常与否[^2]。 ```bash ps aux | grep postgres ``` 如果一切顺利的话,应该可以看到类似于下面这样的输出结果表明存在负责管理检查点机制的工作线程正在积极工作当中: ``` postgres 4809 0.0 0.0 4806 0 11:31 ? 00:00:00 postgres: checkpointer process ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值