【DB吐槽大会】第79期 - PG standby不支持配置多个上游节点

简介: 大家好,这里是DB吐槽大会,第79期 - PG standby不支持配置多个上游节点

背景


1、产品的问题点

  • PG standby不支持配置多个上游节点

2、问题点背后涉及的技术原理

  • PG 物理流复制协议支持将wal数据发送给下游节点, 实现物理的增量同步.
  • 每个下游节点只能配置一个上游节点.
  • PG 的一个上游节点可以配置多个下游节点, 下游节点还可以配置集联的下游节点.
  • 在一个WAL复制的集群拓扑中, 每个节点的WAL文件内容是一样的, 所以理论上可以相互补位复制.

3、这个问题将影响哪些行业以及业务场景

  • 通用(使用了物理流复制的场景: 高可用、只读实例、容灾等)

4、会导致什么问题?

  • 如果上游节点挂了, 下游节点就接收不到wal日志, 需要及时改流复制的连接配置, 连接到活着的节点. 如果改配置不及时可能导致新的上游节点WAL已清理, 需要重建或rewind修复下游.
  • 如果上游节点是HA架构, 一旦发生主从切换, 下游节点可能和上游节点的WAL发生分叉, 导致下游节点需要重建或rewind修复.

5、业务上应该如何避免这个坑

  • 及时发现, 人工处理. 或者有自动化运维工具进行发行和处理.

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 门槛高

7、数据库未来产品迭代如何修复这个坑

  • standby 支持多上游节点, 优先从从库接收wal, 主从切换不影响下游的只读实例. (开源版本有一部分概率上游节点发生HA切换后可能需要重新搭建只读库)
  • 拓扑感知, 可以在多个从库之间自动转发wal, 确保wal平衡后再切换. 可以确保整个集群在发生故障时可以应用更多的wal、避免出现分叉. 《DB吐槽大会,第72期 - PG wal 联网协议不够发达》
相关文章
|
1月前
|
运维 监控 Java
从单体地狱到微服务天堂:架构演进与拆分的核心原则+全链路实战落地
本文系统阐述微服务本质与渐进式演进路径:破除“盲目拆分”误区,强调业务驱动;详解单体→模块化→垂直拆库→非核心服务→核心服务的五步安全演进;提炼高内聚低耦合、数据自治、业务域对齐等七大落地原则;辅以电商实战代码与避坑指南。
420 6
|
1月前
|
SQL Java 测试技术
告别 CRUD 泥沼!DDD 领域驱动设计:从底层原理到生产级全链路落地实战
DDD是应对复杂业务的架构思想,核心是“领域优先、边界隔离”:通过战略设计(统一语言、限界上下文、上下文映射)划清业务边界;通过战术设计(实体/值对象、聚合根、领域服务等)落地高内聚、低耦合的代码。非银弹,适用于规则多、迭代快、协作难的场景。
1067 1
|
关系型数据库 MySQL 分布式数据库
你常听说的WAL到底是什么
你常听说的WAL到底是什么
952 2
|
存储 JavaScript 前端开发
js实现灵活下载和预览网络链接pdf文件
js实现灵活下载和预览网络链接pdf文件
1506 0
|
算法 安全 数据安全/隐私保护
Crypto++库支持多种加密算法
【10月更文挑战第29天】Crypto++库支持多种加密算法
708 4
|
人工智能 API
MMedAgent:专为医疗领域设计的多模态 AI 智能体,支持医学影像处理、报告生成等多种医疗任务
MMedAgent 是专为医疗领域设计的多模态AI智能体,支持多种医疗任务,包括医学影像处理、报告生成等,性能优于现有开源方法。
845 19
MMedAgent:专为医疗领域设计的多模态 AI 智能体,支持医学影像处理、报告生成等多种医疗任务
|
存储 自然语言处理 监控
FunAudioLLM大模型SenseVoice和CosyVoice测评
FunAudioLLM大模型SenseVoice和CosyVoice测评
|
安全 Shell PHP
pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40
pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40
910 0
|
Ubuntu Unix Linux
如何使用 Supervisor 管理你的进程
**Supervisor** 是一款Python编写的进程管理工具,用于类Unix系统,确保应用服务持续运行。常用命令包括:`reload`(重新加载配置)、`status`(查看进程状态)、`shutdown`(关闭所有进程)、`start`和`stop`(控制单个进程)。在CentOS上安装Supervisor用`yum install -y supervisor`,配置文件通常在`/etc/supervisord.conf`。
627 0
如何用牛顿法求一个数的平方根
(一)导数与导函数 导数 设函数y=f(x)在点x0的某个邻域内有定义,当自变量x在x0处有增量Δx,(x0+Δx)也在该邻域内时,相应地函数取得增量Δy=f(x0+Δx)-f(x0);如果Δy与Δx之比当Δx→0时极限存在,则称函数y=f(x)在点x0处可导,并称这个极限为函数y=f(x)在点x0处的导数记作①f'(x0) ;②y'│x=x0 ;③ │x=x0, 即 导函数 如果函数y=f(x)在开区间内每一点都可导,就称函数f(x)在区间内可导。
5203 1

热门文章

最新文章