PostgreSQL 的流复制(Streaming Replication)是 PostgreSQL 原生提供的一种物理复制技术。它是目前 PostgreSQL 实现高可用性(HA)、读写分离和灾难恢复的最核心、最常用的手段。 自 PostgreSQL 9.0 引入以来,流复制经过不断完善,已经非常稳定和高效。 以下是关于 PostgreSQL 流复制的全面解析: --- 1. 流复制的核心原理 流复制是基于 WAL(Write-Ahead Log,预写式日志) 实现的。它的本质是把主库(Primary)上产生的底层物理数据变更日志(WAL),源源不断地“流”向备库(Standby),备库接收到后重放(Replay)这些日志,从而保证主备数据一致。 工作流程及核心进程: 1. 主库(Primary): 产生 WAL 日志。主库上会启动一个 进程。 2. 备库(Standby): 启动一个 进程。它连接到主库的 ,请求获取 WAL 日志。 3. 网络传输: 通过 TCP 连接将 WAL 数据流式传输给 。 4. 备库落盘与重放: 将接收到的 WAL 写入备库的磁盘,然后备库的 (启...