【DB吐槽大】第72期 - PG wal 联网协议不够发达

简介: 大家好,这里是DB吐槽大会,第72期 - PG wal 联网协议不够发达

背景


1、产品的问题点

  • PG wal 联网协议不够发达

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

  • 一个PG 集群有主实例、通过wal流复制建立的一个或多个从实例、从实例还可以集联形成多级从库.
  • 集群拓扑是有根节点的树状数据流结构.
  • 从节点的需要用于replay的WAL数据可以从哪里索取呢?
  • 配置好的上游节点, 上游从pg_wal目录读出来, 发送给下游
  • 自己的pg_wal目录中查找
  • 使用restore_command获取已归档的文件, 这个命令配置在自己的节点中, 通过shell命令获取. 传入参数中最重要的是所需的wal文件名.
  • 在这个集群中, 不同的节点可能部署在不同的主机上, 用于存储WAL的归档的设备, 可能只能被某些节点访问(通常归档由主节点产生, 并copy到归档设备中).
  • 对于已归档的wal文件, 并且是最近一个已完成的检查点之前的, 并且不在wal_keep_size保护范围内, 这样的wal文件可能被删除. 然而下游节点可能因为各种原因还没有及时接收到这样的WAL文件. 那下游节点怎么办? 只能使用restore_command获取已归档的文件, 但是前面说了, 可能只有主节点有归档目录的权限, 怎么办? 重建从库?
  • 核心问题是什么? 上游节点不能代替下游节点使用restore_command, 然后再将wal发送给下游节点.

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

  • 主从、流复制从库通用问题

4、会导致什么问题?

  • 如果上游节点wal已被清楚, 而且下游节点没有权限获取归档目录中的wal文件, 那么将需要人工介入, 或者重建从库.

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

  • 人工介入, 拷贝已清理的wal文件
  • 共享wal归档, 使用restore_command从归档文件中获取已从pg_wal目录清理的wal文件.

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

  • 复杂度增加

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

  • 希望内核层面可以支持peer 节点之间、上游与下游之间能够通过流复制协议互相发送wal文件.
  • 上游可以通过restore_command获取已清理的wal文件并发送给下游.
  • 如果是集群拓扑的其他平级节点或分叉节点来发, 可以通过peer约束判定wal文件的正确性.
  • system_id 相同, 表示这是同一个集群
  • timeline + LSN 匹配, 表示这是我需要的wal内容.
  • 扩展诉求: 实际上集群拓扑的监控等信息都可以更强的联动. 实现更有集群意义的dashboard, 甚至与client driver进行联动, 实现更无缝的HA, 负载均衡等.



相关文章
|
运维 容灾 关系型数据库
【DB吐槽大会】第79期 - PG standby不支持配置多个上游节点
大家好,这里是DB吐槽大会,第79期 - PG standby不支持配置多个上游节点
|
关系型数据库 物联网 数据库连接
【DB吐槽大会】第22期 - PG 不支持libpq协议层压缩
大家好,这里是DB吐槽大会,第22期 - PG 不支持libpq协议层压缩
|
存储 SQL Oracle
【DB吐槽大会】第66期 - PG 缺乏更简单的数据热插拔能力
大家好,这里是DB吐槽大会,第66期 - PG 缺乏更简单的数据热插拔能力
|
关系型数据库 分布式数据库 数据库
【DB吐槽大会】第44期 - PG 同步复制不支持自动升降级
大家好,这里是DB吐槽大会,第44期 - PG 同步复制不支持自动升降级
|
存储 监控 Oracle
【DB吐槽大会】第29期 - PG 表空间容易达到文件系统天花板
大家好,这里是DB吐槽大会,第29期 - PG 表空间容易达到文件系统天花板
|
容灾 关系型数据库 数据库
【DB吐槽大会】第37期 - PG 没有block级增量备份恢复
大家好,这里是DB吐槽大会,第37期 - PG 没有block级增量备份恢复
|
SQL 关系型数据库 Java
【DB吐槽大会】第16期 - PG Standby不支持解析逻辑日志
大家好,这里是DB吐槽大会,第16期 - PG Standby不支持解析逻辑日志
|
存储 固态存储 关系型数据库
【DB吐槽大会】第47期 - PG 崩溃恢复能快点吗
大家好,这里是DB吐槽大会,第47期 - PG 崩溃恢复能快点吗
|
关系型数据库 数据库
【DB吐槽大会】第25期 - PG 不支持物理Partial Standby
大家好,这里是DB吐槽大会,第25期 - PG 不支持物理Partial Standby
|
关系型数据库 Java 分布式数据库
【DB吐槽大会】第9期 - PG 大量连接写小事务性能差
大家好,这里是DB吐槽大会,第9期 - PG 大量连接写小事务性能差

热门文章

最新文章