【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 联网协议不够发达》
相关文章
|
5月前
|
运维 监控 Java
从单体地狱到微服务天堂:架构演进与拆分的核心原则+全链路实战落地
本文系统阐述微服务本质与渐进式演进路径:破除“盲目拆分”误区,强调业务驱动;详解单体→模块化→垂直拆库→非核心服务→核心服务的五步安全演进;提炼高内聚低耦合、数据自治、业务域对齐等七大落地原则;辅以电商实战代码与避坑指南。
760 6
|
5月前
|
SQL Java 测试技术
告别 CRUD 泥沼!DDD 领域驱动设计:从底层原理到生产级全链路落地实战
DDD是应对复杂业务的架构思想,核心是“领域优先、边界隔离”:通过战略设计(统一语言、限界上下文、上下文映射)划清业务边界;通过战术设计(实体/值对象、聚合根、领域服务等)落地高内聚、低耦合的代码。非银弹,适用于规则多、迭代快、协作难的场景。
1652 1
|
JavaScript 前端开发
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
|
NoSQL
mongodb每天上亿数据量定期清理
背景:mongodb(应用运营数据分析与自动自助化支持平台)每分钟有30w~40w的insert,20w~30w的update。数据保留一天,一天之前的数据可以清理。一天的数据量大概1亿左右。由于数据量较大,清理数据对系统造成了较大影响,入库会出现堵塞。
4416 0
|
存储 关系型数据库 MySQL
MySQL删除数据 文件大小不变的原因以及处理空洞问题
总之,MySQL中删除数据后文件大小不变的现象是由于InnoDB存储引擎的设计决策,旨在优化性能和空间的重用。处理这一问题需要综合考量数据库的使用场景以及可能的性能影响,选择合适的策略
1783 6
|
人工智能 测试技术 API
[译][AI OpenAI-doc] 速率限制
速率限制是我们的API对用户或客户在指定时间段内访问我们服务的次数施加的限制。速率限制是API的一种常见做法,有助于防止对API的滥用或误用,并确保每个人都能公平地访问API。本文介绍了速率限制的原因、工作方式以及如何处理速率限制错误。
|
Web App开发 负载均衡 API
ZLMediakit-集群部署
ZLMediakit-集群部署
2109 0
|
数据采集 分布式计算 Oracle
数据仓库的分层架构与演进
分层架构很容易在各种书籍和文档中去理解,但是把建模方法和分层架构放在一起就会出现很多困惑了。接下来,我会从数据研发与建模的角度,演进一下分层架构的设计原因与层次的意义。
16941 3
数据仓库的分层架构与演进