主从复制架构:如何配置 PostgreSQL 实现流式数据备份

舞姬之光

舞姬之光

2026-06-28

330人浏览

原创

postgresql流式数据备份本质是流复制,依赖wal日志实时传输与回放,需主库启用wal_level=replica、max_wal_senders≥从库数、listen_addresses设为'*'或指定ip、hot_standby=on,并在pg_hba.conf中配置replication权限及创建repl_user角色;从库用pg_basebackup初始化并自动生成standby.signal和postgresql.auto.conf;验证时主库查pg_stat_replication状态为streaming,从库查pg_is_in_recovery()为t且wal接收与回放lsn接近,延迟超30秒需排查。

主从复制架构:如何配置 postgresql 实现流式数据备份

PostgreSQL 流式数据备份本质就是流复制(Streaming Replication),它不依赖外部工具或脚本,而是靠 WAL 日志实时传输与回放实现。配置关键在于主库能正确生成、发送日志,从库能可靠接收、应用日志——不是“备份”动作,而是持续同步状态。

主库必须启用的参数

这些是流复制启动的硬性前提,缺一不可:

  • wal_level = replica:不能是 minimal,否则不记录足够事务信息;logical 也可用,但 replica 已满足物理复制需求
  • max_wal_senders ≥ 从库数量:每个从库需占用一个 sender 连接,设为 5 比设为 1 更稳妥,避免扩容时反复改配
  • listen_addresses = '*' 或指定 IP:确保从库能通过网络连上主库,本地回环(localhost)不够用
  • hot_standby = on:让从库在恢复中也能接受只读查询,否则只能“等同步完才可用”

主库认证与权限控制

即使参数全对,没授权也连不上。重点在 pg_hba.conf 中明确声明复制连接:

Flowstep
Flowstep

AI界面设计工具,通过对话几秒内创建UI设计图、线框图和流程图

下载
  • 添加一行:host replication repl_user 192.168.10.20/32 md5(IP 换成真实从库地址)
  • 该行必须放在所有 host all all ... 宽泛规则之前,否则会被拦截
  • 复制用户需显式创建:CREATE ROLE repl_user LOGIN REPLICATION ENCRYPTED PASSWORD 'xxx';
  • 改完执行 SELECT pg_reload_conf(); 生效,无需重启

从库初始化:用 pg_basebackup 一步到位

不要手动拷 data 目录,也不用再写 recovery.conf(v12+ 已废弃)。推荐命令:

pg_basebackup -h 192.168.10.10 -U repl_user -D /var/lib/pgsql/14/data \
  -P -v -X stream -C -S standby1 -R

其中:

  • -R:自动生成 standby.signalpostgresql.auto.conf(含 primary_conninfo)
  • -C:自动在主库创建同名复制槽(standby1),防止 WAL 被过早清理
  • -S:槽名必须唯一,一从一槽,后续可查 pg_replication_slots
  • 执行前确保从库 data 目录为空,且属主为 postgres 用户

验证与日常观察

启动从库后,用以下查询确认状态是否正常:

  • 查主库是否收到连接:SELECT * FROM pg_stat_replication; —— 看 state = 'streaming'sent_lsnwrite_lsn 接近
  • 查从库是否在回放:SELECT pg_is_in_recovery(), pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn(); —— 前者为 t,后两者有值且差值小即健康
  • 延迟监控:SELECT now() - pg_last_xact_replay_timestamp() AS replay_delay; —— 返回秒级延迟,>30s 需排查网络或磁盘 IO

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

主从复制

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

355

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

617

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

1216

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

428

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

324

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

190

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1031

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

1848

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

322

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
mysql8主从复制原理底层详解
mysql8主从复制原理底层详解

共1课时 | 659人学习

SQL优化与排查(MySQL版)
SQL优化与排查(MySQL版)

共26课时 | 2.9万人学习

Redis6入门到精通超详细教程
Redis6入门到精通超详细教程

共47课时 | 6.7万人学习