2. Goldendb 高可用/可用性设计

HA设计

即高可用设计(High Availability Design),是指在系统架构层面,通过一系列技术手段和架构模式,来最大限度地减少服务不可用的时间,确保系统在面临各种故障(硬件损坏、软件崩溃、网络中断、机房断电等)时,依然能够持续对外提供服务。

简单来说,HA设计的核心目标就是消除单点故障(SPOF),让系统具备自动恢复的能力。

HA设计的核心要素
一个完整的HA设计,通常包含以下几个关键维度:

维度 说明 典型手段
冗余 任何关键组件都部署多个实例,一个挂了,其他的能顶上。 多副本、主从架构、集群部署
故障检测 系统能够快速、准确地发现节点是否存活、服务是否正常。 心跳检测、健康检查接口、超时机制
自动切换 检测到故障后,无需人工介入,系统自动完成主备切换或流量重定向。 选主算法(Raft/Paxos)、VIP漂移、负载均衡摘除节点
数据持久化与备份 即使发生故障,已提交的数据也不能丢失。 数据多副本、WAL日志、定期备份、异地容灾
优雅降级 在部分组件不可用时,系统能牺牲部分非核心功能,保住核心业务。 熔断、限流、舱壁隔离、降级开关。

水位设计

GoldenDB的水位控制,本质上是让用户在C(一致性)A(可用性)之间进行可配置的权衡

具体来说,它通过调整“多少个备机必须同步成功”这个阈值,让系统在强一致性保障和高可用服务之间找到一个合适的平衡点。

CAP理论回顾

  • C (一致性):所有节点在同一时刻看到的数据是一致的。
  • A (可用性):系统在任何时刻都能响应请求(不保证数据是最新的)。
  • P (分区容错性):系统能在网络故障时继续工作。分布式系统中,P是必选的,所以通常是在C和A之间做权衡。

水位控制与C/A的对应关系

水位状态 对一致性的影响 对可用性的影响 本质倾向
高水位以上 强一致性保障 可能降低可用性 倾向C
高低水位之间 最终一致性 尽力保障 C与A的平衡
低水位以下 优先保证数据安全 写入可用性丧失 倾向C(数据安全优先)

水位如何影响C和A?

在一个DBGroup中,把主备DB划分成不同的Team,主备DB之间满足以下两个条件:

  1. Team内DB响应的个数达到配置阈值时,则认为该Team的同步关系正常。
  2. 同步关系正常的Team的个数需要达到配置的阈值,这个阈值就是高低水位线。

在一定时间内,如果不满足上述两个条件,则认为快同步超时。
在分布式数据库系统系统中,需要用户配置的相关配置项有:高水位、低水位、主是否计数、Team内回响应的DB数。
举个例子,
一个DBGroup一主三备,主机和备机1在team1,备机2和备机3在team2,配置的高水位为2,低水位为1,主机计数,Team内回响应的DB数为2。
对team1来说,由于配置了主机计数,那么该Team内已经默认有1个DB回响应了就是主机DB,如果备机1能正常同步主机数据,那么这个备机也是1个正常回响应的DB,该Team就满足配置项Team内回响应的DB数为2这个条件,team1有效。再看备机2和备机3,如果两台备机都能同步到主机数据,那么team2就有2个能正常回响应的DB,team2有效,如果只有一台备机或者两台备机都跟无法与主机同步,那么team2就无效。
当有效的team个数为2时,该DBGroup满足高水位运行条件,DBGroup运行在高水位之上。
当有效team个数为1时,该DBGroup满足低水位运行条件,DBGroup运行在高低水位之间,系统有告警。
当有效team个数小于1时,该DBGroup不满足低水位运行条件,DBGroup运行在低水位之下,系统有告警,DBGroup“只读”,写业务都不能成功。

1. 高水位以上:倾向强一致性

当系统处于高水位(即满足了设定的同步备机数量)时,主节点才会提交事务。

  • 对C的影响严格保障。这意味着一个事务必须被足够多的节点确认后,才算成功。即使主节点立刻宕机,数据也完好无损,保证了数据不丢失(RPO=0),这是强一致性的体现。
  • 对A的影响可能降低。如果网络抖动或某个备机响应慢,事务提交就会被阻塞,导致响应变慢,影响系统的可用性。

2. 高低水位之间:寻找平衡点

如果系统只达到了低水位要求,但未达到高水位,事务仍会提交,但会触发告警。

  • 对C与A的影响:这是一种折衷状态。系统认为数据“仍然安全”,但还没有达到用户设定的最严格标准。它通过接受短暂的、微小的不一致风险,来换取更高的系统响应速度和可用性。

3. 低水位以下:优先保证数据安全

当同步成功的备机数量低于低水位阈值时,系统会判断数据处于高风险状态,此时会自动切换为只读模式,拒绝写入请求。

  • 对C与A的影响:这是优先保证一致性的极端表现。宁可牺牲部分写入可用性,也绝不允许在数据不安全的状态下进行写入操作,防止发生数据错误或丢失。

总结

GoldenDB的水位控制是一个非常精巧的设计,它并没有死板地锁定在C或A上,而是通过灵活的配置,让你根据业务场景在CAP定理中自由选择:

  • 如果你追求金融级强一致性(如核心交易),可以将水位调高。
  • 如果你更看重系统性能和可用性(如日志记录),可以将水位调低。

一个关键点:CAP理论中的P(分区容错性)是分布式系统的“必修课”。GoldenDB的所有HA设计,包括水位控制,都是在确保P的前提下,为你提供了在C和A之间灵活切换的控制面板。

参考 Goldendb 特性

## F01 mysql 特性

## F02 oralce 兼容性

## F03 探活

## F04 分布式事务强一致分布式事务
分布式执行计划优化
数据分片策略
分布式MVCC
分布式死锁检测
GoldenDB XA事务
F分布式事务


## F05 高可扩展读写分离
数据重分布
数据分片扩容不影响业务
F跨集群访问数据
F单个分片下支持多个分片范围的range分片


## F06 高可靠组件高可靠DB节点高可靠
DN分片高可用策略
DN实时复制时延查看
GTM高可靠
Insight支持强制指定备机为主
prepare拼包保护
临时空间进行实例级监控限制
人工演练高并发切换,RTO<120s,RPO=0
典型外场问题
分片禁用切换、启用切换
管理节点高可靠
计算节点资源使用限制


同城灾备F 同城多机房(多于2个),支持按机房优先级进行切换
人工演练租户级同城切换
同城机房故障自动切换,RTO<120s,RPO=0
本地同城切换脚本


异地灾备F异地切换
人工演练租户级异地切换


高可靠部署架构
环境快速恢复
F 两套GoldenDB集群之间的数据同步
F-TEAM间切换
同城演练常见问题及规避方法--【同城演练】
切换原理简略版--【同城演练】
同城/异地演练切换步骤-61210
管理节点切换


异地演练切换原理简略版--【异地演练】
常见问题及规避方法--【异地演练】
异地演练切换-61210


租户级同城演练切换原理--【租户级同城演练】
常见问题及规避方法--【租户级同城演练】


租户级异地演练切换原理--【租户级异地演练切换】2024-06-03 21:52:09.399
常见问题及规避方法--【租户级异地演练】


本地机房故障切同城切换原理--【同城故障切换】
常见问题及规避方法--【同城故障切换】


本地城市故障切异地切换原理--【异地故障切换】
常见问题及规避方法--【异地故障切换】


孤岛演练中信孤岛
异地孤岛演练&恢复
任意机房孤岛演练


机房切换脚本FAQ


## F07 备份恢复系统备份
节点恢复
一键恢复
SQL误操作恢复
备份文件定期清理
备份恢复支持共享存储接口
全局共享备份恢复目录权限调整为770
云对象存储备份恢复
备份任务支持查询进度,终止任务
备份结果记录
binlog备份
生产环境演练环境快速恢复
备份任务id在定时和实时保持一致
备份任务可调整
快照管理快照库支持不停服创建


旧备份结构转为新备份结构
INSIGHT展示恢复进度
F 备份文件清理优化
insight支持批量停止备份任务
备份前检查备份空间是否足够


## F08 运维监控F0801安装DN并行安装
F080101 一键安装(脚本方式)
F080102 开机自启动脚本部署
F080103 混合安装
F服务端口可配置
Insight增量安装
LDS 独立安装
安装用户的用户组统一
部署时候支持文件系统已经创建好
默认低权运维用户
系统加固后gdb能正常安装
支持Docker容器部署
F 在线安装、扩容管理节点
界面白屏安装
不同操作系统版本合并构建
insight新增租户可以指定team数量


F0802升级不停机滚动升级
升级脚本
界面化升级
自动化升级


数据集群管理
用户管理数据库用户密码修改


配置管理动态修改DBProxy连接数
提供组件的配置参数修改接口
参数优化参数定制化


拓扑配置信息导出


告警管理F告警以ActiveMQ消息接口方式上报
GTID长时间不释放的优化处理
告警项:Proxy线程积压告警
告警邮件支持SMTPS
特性:告警数据转发到kafka
告警归并特性
F:进程异常告警
调用行方接口,告警对接到行方平台
告警聚合
使用原生驱动告警


统计监控DN慢SQL分析V613
F CN可观测性
F统计监控结果导出
GTM活跃GTID状态统计
TOP SQL
报表框架优化
长事务与长SQL
分布式事务冲突次数统计
计算节点统计
监控趋势图时间粒度优化
热点表监控
锁等待监控
通用监控采集
统计数据存储到es
未提交事务
在线事务监控和管理
组件资源统一监控
监控网络
SQL执行时间趋势


问题诊断CPU冲高记录相关的SQL语句
GTID冲突显示与这个事件相关的SQL
GoldenDB数据库引擎(DB)支持慢SQL内核治理
dbtool工具
事务中的SQL语句下发给DB时以注释方式添加“业务流水号”
问题诊断工具
阻塞语句支持终止


日志CN日志CN DDL日志
CN General日志
Proxy SQL统计日志
Proxy 分布式写事务日志
Proxy 跨分片SQL日志
CN慢SQL日志
gtid和交易流水号对应关系日志
proxy运行日志-dbproxy.log
proxy结果集行数超限日志
CN 事务日志
CN 异常SQL日志(dbproxy_terminate_sql.log)


F:insight采集组件日志
业务流水号
日志存储设置
日志归档与清理
日志跟踪
日志输出格式、级别
高可用事件日志


租户管理新增租户放开本地机房限制


资源管理
巡检工具
资源耗尽自我保护
修改GoldenDB IP工具
一键启停GoldenDB工具
主机管理
资源规格管理
资源隔离
启停服务F-Proxy优雅方式停用


AWRAWR特性


限流
Insight-服务端口的管理
拓扑图
DN死锁监控
大数据组件监控
强制删除未管理组件
系统租户系统租户-全量sql


cpu绑核


## F09 数据处理Proxy导入
Proxy导出
卸数
导入导出
支持单库、多库、单库多表导出的工具
数据压缩


## F10 数据同步DRSP
drsp 1.0 交付版本管理DRSP-HA
DRSP-MULTI
DRSP-SINGLE
已发布版本DRSP回归测试


drsp灾备专题需求2024-07-16 17:44:30.407DRSP问题跟踪
drsp相关:业务集群参数导出与比对
灾备集群切换耗时优化
GDB-618135 元数据同步DROP操作2024-06-03 21:52:09.399
GDB-767538 drsp新增切换后检查脚本
DRSP切换前环境检查


drsp方案及功能详解drsp1.0
drsp2 系列


灾备库FAQ链接
灾备库切换变更:check条目
drsp技术文档
drsp商用化改造
模块流程详解MDS模块
CM和DBAgent模块


drsp使用局点汇总
DRSP/GDB-不同版本兼容性评估DRSP兼容性评估--生产V613.03 vs 灾备V613.09


DRSP-REST接口汇总(李泽)/drsp_api/switch/onekeySwitch




G2O
O2G迁移全流程自动化


业务迁移工具Oracle表结构迁移
Oracle到GoldenDB全量数据迁移
Oracle到GoldenDB增量数据迁移
Oracle兼容性分析
mysql系列(包括GDB)迁移到mysql系列(包括GDB)
离线Oracle DDL采集
在线Oracle SQL采集
增量模式迁移回流黑白名单支持正则表达式


异构数据库同步特性
数据比对工具
静态库


F11 数据一致分片间数据
主备间数据主备复制半同步插件功能内置到DB




水位控制
分片间表结构是否一致检测
F回滚
CDC G2O 时序一致性回流


F12 可服务性license控制 导入License
License制作工具(内部)
F:license支持按照节点(Node)进行license控制
F:license增加有效期及超限使用控制


Information
标准版&企业版
IPV6支持
DBGroup主备切换前提示备机落后时延
慢SQL优化FAQ
GoldenDB一键安装
全链路跟踪
kafka集群鉴权可配置
数据库系统信息维护和查询


## F13 安全数据安全密码加密存储
备份数据加密
数据库数据加密
下线节点数据清理
防止SQL注入
支持非对称加密算法
F闪回
漏洞安全扫描
秘钥和加密算法


传输加密OMM界面支持https访问
SSL加密访问
支持TLCP


权限控制F用户管理和权限管理
用户字典权限隔离
管理门户提供权限级别控制
系统license控制


密码控制策略F口令安全(待定)
口令国密加密特性
F密钥管理
命令行工具不显示明文密码
一键安装默认密码采用强密码
通过命令访问CN创建、修改用户密码时支持复杂度校验


访问控制用户密码管理
接入白名单
防暴力攻击
黑名单、SQL拦截
一键转生产


审计SQL审计功能
审计数据来源
SQL审计


安全防护产品安全资产信息采集
安全加固工具
posted @ 2026-03-22 00:00  静水深耕,云停风驻  阅读(83)  评论(0)    收藏  举报