OceanBase 分布式数据库的高可用和稳定性之挑战
发展历程与核心能力
OceanBase 自2010年立项以来,历经十年发展,已支持蚂蚁集团100%核心业务负载,并在2017年打破Oracle兼容TPC-C世界纪录(6100万tpmC),2021年实现独立商业化。其核心优势包括:
- 自主研发:完整知识产权,企业级能力,原生分布式关系数据库,兼容Oracle/MySQL。
- 高可用性:三副本架构,分布式事务强一致性,多地多活,支持三地五中心部署。
- 稳定性:通过Paxos/Raft共识机制、数据校验(微块/宏块校验和)、热备/冷备机制保障系统稳定。
全链路高可用架构
- 多副本只是基础:OceanBase强调全链路高可用,需解决非通断性故障(如软件升级、SQL资源挤占、数据错误)对业务的影响。
- 架构设计:采用无共享架构(每个节点具备SQL、存储、事务引擎),多Zone多活,通过OBProxy轻量客户端实现透明扩展。
- 容灾切换:Partition leader切换时,客户端location cache失效会触发远程执行,保证业务无感知。
SQL优化与资源管理
- SQL执行流程:通过schema解析、优化器选择计划、生成代码执行,重点优化计划缓存(PCV、PCVP、SP)和Outline Hint(流量控制、索引绑定)。
- 资源隔离:支持事务/RPC/链接超时限制,大查询队列,租户内存/线程池独立,保障SQL响应可控。
- 读写分离:通过读请求路由(优先只读Zone、非合并节点),降低磁盘/网络不可信时的业务影响。
数据可靠性保障
- 校验机制:微块校验和(读取)、宏块校验和(迁移/备份)、列校验和(索引与主表同步)。
- 异常处理:
right_to_die_or_duty_to_live函数保留现场,MVCC支持数据闪回。
- 备份恢复:提供主备库异步复制、物理/逻辑备份,支持恢复至特定时间点。
架构与部署优势
- 一体化架构:HTAP引擎(TP+AP)支持统一SQL界面,单机分布式兼顾性能与扩展性。
- 容灾模式:支持双机房主备、三地五中心,灵活适配云化/经典架构。
- 兼容性:兼容Oracle/MySQL,保证平滑迁移。
开源开放与未来展望
OceanBase开源内核,通过GitHub和社区(钉钉/微信)推动共建,提供工具配套与服务支撑体系。