PostgreSQL 复制与高可用系列(一):从单点到集群,构建生产级数据基石
Clyde Jin
04-24
DBA
40

PostgreSQL 复制与高可用系列(一):从单点到集群,构建生产级数据基石

PostgreSQL 已成为无数企业核心系统的首选数据库,但单机部署始终是一个绕不开的问题:单点就是风险。当硬件故障、网络波动或人为误操作不期而至时,缺乏高可用架构的应用将面临不可预测的停机时间,甚至数据丢失。

本系列旨在系统梳理 PostgreSQL 复制与高可用技术,从原理到实践,从基础到进阶。作为开篇,本文将聚焦于核心概念、技术演进与关键原理,帮助读者建立完整的知识框架,为后续的动手实践打下坚实基础。

一、为什么要谈复制与高可用?

1.1 核心驱动力

在生产环境中建设高可用体系,根本目的是满足两个关键指标:

  • RPO(Recovery Point Objective):能容忍的最大数据丢失量,即灾难发生后,最多能接受丢失多长时间的数据。
  • RTO(Recovery Time Objective):能容忍的最大恢复时间,即从故障发生到服务恢复,允许经过多长时间。

这两个指标直接决定了架构设计的走向。追求 RPO=0(零数据丢失)往往意味着采用同步复制,而这可能牺牲写入性能;追求极低 RTO 则需要自动化故障切换能力,但又可能引入脑裂等风险。

1.2 复制的三大价值

复制不仅仅是高可用的技术手段,它带来的核心价值体现在三个层面:

价值维度 说明
高可用与容灾 主库故障时,备库可在秒级内接管服务,将停机时间从小时级压缩到秒级
读负载扩展 将读查询分发到只读备库,大幅提升系统整体吞吐能力
零停机运维 通过主从切换实现版本升级、硬件更换、系统维护,业务无感知

一个简单的论断值得记住:备份给你的是恢复能力,复制给你的是连续性

二、技术演进与应用场景

PostgreSQL 的高可用与复制能力并非一蹴而就,其演进大致可划分为三个阶段:

时期 定位 关键成果
2000–2010 单机深耕 WAL 机制奠基,ACID 与 SQL 标准为核心,追求强一致性
2010–2020 复制时代 流复制(9.0)、热备(9.0)、逻辑复制(10.0)相继落地,读写分离成为标准能力
2020至今 云原生智能 Patroni、Kubernetes Operator、声明式运维、自愈系统成为主流

不同场景对复制技术有着不同的诉求。例如,金融交易系统需要同步复制来保证零数据丢失(RPO=0),而报表分析场景可能只需异步复制的读扩展能力即可满足要求。理解这一演进脉络,有助于我们在选型时做出符合自身业务阶段的决策。

三、数据同步的基石:WAL

在深入具体的复制方案之前,需要先认识 PostgreSQL 的核心机制——预写日志(Write-Ahead Log,WAL)

3.1 WAL 的工作原理

WAL 记录了对数据库数据文件所做的所有更改。其核心原则是:在数据变更写入数据文件之前,先将变更记录写入日志。当系统崩溃时,PostgreSQL 可以通过“重放”自上次检查点以来的 WAL 记录,将数据库恢复到一致状态。

这个机制有两个关键意义:

  1. 崩溃恢复:无需依赖日志文件系统即可保证数据完整性。
  2. 复制的基础:WAL 记录正是数据同步的核心传输单位——无论是物理复制还是逻辑复制,数据变更的源头都来自 WAL。

3.2 持续归档与 PITR

除了用于崩溃恢复,WAL 还支撑着持续归档(Continuous Archiving)与时间点恢复(Point-in-Time Recovery,PITR)。这一能力的实现方式是:周期性执行文件系统级别的全量备份,同时持续归档此后生成的 WAL 文件。当需要恢复时,先还原全量备份,再按顺序重放归档的 WAL 文件,即可将数据库恢复到任意指定的时间点。

PITR 是应对数据误删除等人为错误的重要手段,属于备份恢复体系的利器,它与复制(维持在线备库)各司其职、互为补充。

四、物理复制 vs 逻辑复制:殊途同归的两种模型

PostgreSQL 提供两种核心复制技术——物理流复制和逻辑复制。理解两者的区别,是设计高可用架构的第一步。

4.1 物理流复制

原理:主节点将 WAL 日志(块级别的 REDO 记录)实时传输给从节点,从节点以相同顺序重放这些日志,从而在主从间建立起一份字节级别完全相同的副本。

从架构上看,主库通过 wal_sender 进程将 WAL 记录实时发送给备库,备库的 wal_receiver 进程接收并应用这些记录。配置层面的关键参数包括:wal_level = replicamax_wal_senders 用于控制并发发送进程数量,备库启用 hot_standby = on 以支持只读查询。

特点与适用

维度 说明
粒度 整个数据库集群级别,不支持选择性复制
延迟 极低,可用于高可用和实时灾备
备库可读写 备库默认只读
跨版本 通常要求主备版本一致,升级时需要停机
典型场景 主从高可用、读写分离、灾难恢复

一句话总结:物理流复制是 PostgreSQL 高可用的主力方案,简单、可靠、高效。

4.2 逻辑复制

原理:基于发布/订阅(Publication/Subscription)模型,主节点将指定表的 WAL 日志解析为逻辑变更(如 INSERT/UPDATE/DELETE),订阅节点接收并应用。

逻辑复制的架构与物理流复制类似,同样通过 walsenderapply 进程实现,但工作在不同层次。其关键配置要求为 wal_level = logical,同时需要提前创建发布和订阅对象。

特点与适用

维度 说明
粒度 表级选择性复制,可按需同步
灵活性 订阅端可写入其他数据,甚至可与其他版本 PG 同步
限制 需手动处理 DDL 变更,不支持 DDL 自动同步
典型场景 数据集成、跨版本迁移(如 12→15)、微服务数据分片

值得注意的是,物理复制与逻辑复制并非互斥——在实际生产中,经常将两者结合使用,例如通过物理复制构建高可用集群,同时在从库上配置逻辑复制将特定表数据同步至分析型数据库。

4.3 选型决策:一张表快速判断

如果您的需求是… 推荐方案
整个集群的高可用容灾 物理流复制
读写分离、读负载扩展 物理流复制
跨 PostgreSQL 大版本升级 逻辑复制
仅同步部分表到另一个库 逻辑复制
接收端也需要写入 逻辑复制(需处理冲突)
零数据丢失(RPO=0) 物理同步复制 + 多数派确认

五、同步 vs 异步:性能与安全之间的权衡

在物理流复制的基础之上,还有一个至关重要的配置选项:同步模式

5.1 异步复制

主库提交事务后无需等待备库接收确认,直接返回客户端成功。这是 PostgreSQL 流复制的默认模式。

优势:对主库性能影响最小,备库不可用时不影响主库服务。 风险:主库宕机时,可能丢失尚未传输到备库的 WAL 数据,RPO > 0。

5.2 同步复制

主库提交事务时,必须等待至少一个备库确认收到并持久化 WAL 后,才向客户端返回提交成功。

优势:主库故障时备库拥有完整的最新数据,RPO = 0。 代价:增加写入延迟;若备库故障,主库写入可能阻塞(除非配置降级策略)。

5.3 半同步(Quorum-based)

PostgreSQL 提供灵活的配置方式,例如 synchronous_standby_names = 'ANY 1 (standby1, standby2)' 表示等待 standby1 和 standby2 中的任意 1 个确认即可。这种多数派确认机制允许在数据安全与可用性之间寻找平衡点。

5.4 选型建议

同步复制适合金融、支付等对数据零丢失有强要求的业务,但必须配合高可靠的网络环境和充足硬件资源;异步复制则适用于可接受少量数据丢失、追求高性能的场景。在实际生产中,亦可采用“混合策略”——跨 IDC 的灾备链路采用异步,同机房备库配置为同步。

选型原则清晰明了:同步保数据,异步保性能,多数派求平衡

六、进阶模型阅读(简要介绍)

在掌握了物理与逻辑复制、同步与异步等核心概念后,还有几个进阶技术值得了解,本系列后续将深入讲解,此处先作简要介绍:

6.1 级联复制(Cascading Replication)

在级联复制架构中,一台备库不仅可以接收来自上游的 WAL 流,还可以将其转发给下游的其他备库,充当“中继站”角色。这有助于减少主库的连接压力、优化跨地区部署的带宽使用——例如,主库在北京,级联备库在上海,杭州、深圳再通过上海同步数据。

6.2 延迟复制(Delayed Replication)

延迟复制是通过人为控制备库延迟应用 WAL 的技术。其核心价值在于应对人为误操作:当主库上发生误删数据时,延迟备库仍保留着正确状态,为数据恢复争取宝贵时间窗口。

6.3 复制槽(Replication Slot)

复制槽用于防止主库在备库尚未接收的情况下回收 WAL 日志,避免备库因日志丢失而需要重建。主要适用于带宽有限或备库可能短暂落后的场景,但也需注意监控其使用情况,避免因备库长期离线导致 WAL 无限堆积、磁盘空间耗尽。

七、从复制到高可用:自动化与连接管理

仅仅建立主备复制关系,距离真正的生产级高可用还有一段距离。以下工具构成了高可用集群的拼图:

7.1 自动化故障切换

  • Patroni:目前社区最流行的高可用管理工具,基于 Python 开发,结合 DCS(如 Etcd、Consul、ZooKeeper)实现集群状态管理和自动故障切换。Patroni 负责 PostgreSQL 进程的启动、关闭、故障检测和自动主从切换。
  • repmgr:另一款成熟的 PostgreSQL 集群管理工具,同样支持自动故障转移。
  • pg_auto_failover:Microsoft 开源的简化版高可用方案,降低配置复杂度。
  • Stolon:云原生场景下的高可用方案,通过 Keeper、Sentinel、Proxy 三大组件配合 etcd 实现自动故障检测与切换。

7.2 连接管理

  • HAProxy:高性能 TCP 层负载均衡器,可根据健康检查将读写流量分发到不同节点。
  • PgBouncer:轻量级 PostgreSQL 连接池,减少频繁创建连接的开销,通常与 HAProxy 搭配使用。
  • Keepalived + VIP:通过虚拟 IP 实现主备切换时应用入口的自动漂移。

八、一个典型的完整容灾体系结构

现代企业的 PostgreSQL 高可用体系往往不是单一方案,而是多个技术层次共同构成的容灾矩阵。一个高可用的完整部署方案通常包括以下结构:

  • 主节点:处理全部写请求(1 台)
  • 从节点:承载读请求 + 热备容灾(2–3 台)
  • 独立监控节点:负责心跳检测、故障判断、自动切换选举
  • 备份系统:定期全量备份 + WAL 持续归档+PITR时间点恢复

这种分层设计的好处在于:复制保障连续性,备份兜底数据安全,二者协同实现真正的“高可用”。

九、系列预告:后续内容规划

第一期以宏观视角搭建了知识框架,后续将逐步深入每个技术细节:

期数 主题 亮点
第二期 物理流复制深度实战 从零搭建流复制集群,全配置参数解读
第三期 同步与异步复制工程实践 RPO/RTO 量化分析,性能压测对比
第四期 逻辑复制从入门到精通 发布/订阅详解,跨版本迁移实战
第五期 WAL 与 PITR 备份恢复 持续归档与实践演练
第六期 Patroni 高可用集群部署 自动化容灾落地,K8s 集成
第七期 水平扩展与混合架构 级联复制、读写分离、分区表与高可用

十、推荐资源

写在最后

PostgreSQL 的复制与高可用是一套庞大而精妙的技术体系:WAL 机制是它的心脏,流复制是它的血脉,而各类工具构成了它的神经网络。

理解 PostgreSQL 高可用技术的演进路径和核心取舍,是构建健壮数据基础设施的起点。本系列以第一期为起点,将逐一深入各个技术层次。正如在技术社区中反复被验证的一个判断:“最好的架构不是最复杂的,而是最适合业务场景的”

第二期将从物理流复制的部署配置开始,带领读者亲手搭建第一个主从集群。欢迎持续关注。

Star
Donate
PostgreSQL 存储与索引系列(四):高级调优与内核机制——并发、日志、内存与分区
Previous
PostgreSQL 复制与高可用系列(二):物理流复制实战——从零搭建主从集群
Next

Leave a comment

Registration is not required

Clyde Jin
302 Articles
0 Comments
0 Like
Recent Posts

HiddenMerit Daily · Issue 59

📊 HiddenMerit Daily · Issue 59 Focus on Database Frontiers, Practical Insights for DBAs July 21, 2026 | 5 Selected Global Breaking News 01|Oracle Issues Urgent Warning: July 21 Release Update to Fix Large Number of High‑Risk Vulnerabilities, Immediate Deployment Recommended On July 13, Oracle issued an urgent security warning, strongly recommending that all customers running supported Oracle Database versions (including Oracle Database 19c and Oracle AI Database 26ai) immediately test and deploy the Release Update (RU) after its release on July 21. Background: New frontier AI models are significantly lowering the barrier to discovering and exploiting software vulnerabilities – these models can identify weaknesses, analyse software changes, reverse‑engineer security patches, and develop potential attack paths at unprecedented speed and scale. AI models are also becoming increasingly adept at combining multiple weaknesses across the application and data stack into complex attacks, even when individual weaknesses do not themselves pose a serious risk. As a result, protecting systems solely at the network or application layer is no longer sufficient; enterprises must protect the entire technology stack. Fixes Included in This RU: Oracle has collaborated with state‑of‑the‑art models from Anthropic and OpenAI to proactively identify and fix potential security vulnerabilities. The upcoming […]

HiddenMerit Daily · Issue 58

📊 HiddenMerit Daily · Issue 58 Focus on Database Frontiers, Practical Insights for DBAs July 20, 2026 | 5 Selected Global Breaking News 01|CAICT: Domestic Databases Enter Core System “Deep Water,” AI‑Native Leads New Industry Landscape On July 9, at the 2026 Trustworthy Database Development Conference, CAICT released the “Database Development Research Report (2026).” The report notes that domestic databases have basically completed peripheral system replacement and have officially entered the critical business system breakthrough phase. Key Data: The global database market reached $131.6 billion in 2025 (approximately RMB 894.09 billion). The Chinese database market reached $9.49 billion in 2025 (approximately RMB 64.48 billion), and is expected to reach RMB 97.974 billion by 2028, with a CAGR of 13.06%. The number of domestic database vendors has shrunk from a peak of 167 to 94, with a clear head‑concentration effect and an intensifying “Matthew effect.” AI‑Native Becomes the Main Theme: The report points out that database technology is accelerating its evolution toward the AI‑native direction, and the global database industry is entering a new phase of landscape restructuring. The role of databases is upgrading from “underlying support systems” to “core engines enabling intelligent decision‑making and business innovation.” AI agents are becoming […]

HiddenMerit Daily · Issue 56

📊 HiddenMerit Daily · Issue 56 Focus on Database Frontiers, Practical Insights for DBAs July 6, 2026 | 5 Selected Global Breaking News 01|Kingware Releases Manufacturing Scenario Database Evolution White Paper: SQL Server Replacement Enters “Deep Water” On July 5, CETC Kingware published a technical article titled “Database Evolution in Manufacturing Scenarios: How Kingware Replaces SQL Server,” pointing out that the data surge on industrial shop floors has exceeded the processing capacity of single‑node systems. Traditional database architectures that rely on vertical scaling are facing unprecedented performance challenges. Over the next 1‑3 years, manufacturing enterprises will no longer face only the “choice of replacement,” but must answer the strategic question: “How do we build an autonomous data foundation in the context of de‑IOE?” Three Paradigm Shifts: Hybrid Workloads Become the Norm: The IT architecture of modern factories is shifting from separated OLTP and OLAP to HTAP mode. The same data system must simultaneously handle tens of thousands of device instruction writes per second and minute‑level production report analysis. Distributed Architecture Becomes a Hard Requirement: When a single table exceeds 100 million rows with daily increments exceeding 1 million rows, the index maintenance cost of traditional single‑node databases rises exponentially. Autonomous […]

HiddenMerit Daily · Issue 57

📊 HiddenMerit Daily · Issue 57 Focus on Database Frontiers, Practical Insights for DBAs July 17, 2026 | 5 Selected Global Breaking News 01|CAICT Releases “Database Development Research Report (2026)”: China Market to Reach RMB 98 Billion by 2028, AI‑Native Becomes the Main Theme On July 9, at the 2026 Trustworthy Database Development Conference, the China Academy of Information and Communications Technology (CAICT) officially released the “Database Development Research Report (2026),” comprehensively revealing the latest landscape and evolution directions of the global and Chinese database markets. Key Data: Global Market: The global database market reached $131.6 billion in 2025 (approximately RMB 894.09 billion). Chinese Market: The Chinese database market reached $9.49 billion in 2025 (approximately RMB 64.48 billion), accounting for 7.2% of the global market. By 2028, the total Chinese database market is expected to reach RMB 97.974 billion, with a compound annual growth rate of 13.06% . Industry Landscape: There are 394 database product providers globally, with China and the US leading in vendor count. The number of global open‑source and closed‑source products is roughly balanced. Commercial databases account for over 70% in China, while the proportion of open‑source databases is increasing. After rapid growth from 2022 to 2024, […]
生成中...
扫描二维码
扫描二维码