本文整理自 IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛的演讲分享,演讲嘉宾:孟飞龙,瀚高股份研发工程师。
本文主要从以下 4 个方面进行分享:
- 前言
- 故障检测与转移
- 问题探讨
- 结语
前言
前言部分主要介绍一些 PostgreSQL 高可用相关的概念,让大家对高可用有一个大概的了解。
PostgreSQL 高可用简述
-
高可用的作用
在数据库宕机的危机时刻,PostgreSQL 高可用架构会通过一系列精密设计的机制,悄然接管服务并保障业务连续性。 -
高可用的基础
流复制,主库将预写日志(WAL)实时发送至备库,备库通过应用日志实现数据同步。同步复制模式下牺牲部分性能换取零数据丢失。

上图为流复制示意图。左侧为主库,当用户写入数据,数据库不会直接把数据写入磁盘,而是先把 WAL 写到磁盘,然后通过 walsenders 进程将 WAL 发送到备库。右侧的备库,通过 walreceiver 进程接收 WAL 日志,然后通过 startup 进程将日志进行重做,使数据落盘,从而实现主备之间的数据同步。为了实现数据的零丢失,一般会将流复制模式设置为同步模式。
-
高可用的动作
提升备库为新主库,通常通过设置 vip 使应用无感知地连接主库。 -
高可用的难题
脑裂防护,如因网络分区造成的多主问题。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



