数据库在 IT 架构中承担数据存储和查询的功能,其正常运行对企业数据安全和业务连续性起着至关重要的作用。
- 传统数据库通常采用HA或RAC架构来实现高可用,这类架构是我们通常所说的“Share Everything",虽然能够通过冗余计算节点来规避计算资源的单点,但数据库只有一个,只能依赖底层存储的冗余来保证数据的安全。但存储本身也是一个集中式的设备,一旦出现问题对数据库来说是毁灭性的影响;
- 分布式数据库采用存储和计算节点分离的架构,通过多副本机制将数据分散在不同的节点,即使部分节点故障,仍然可以从其他节点获取到数据。相比传统集中式架构,分布式架构数据散落在多个存储节点上,因此这种架构也被称为“Share Nothing”。
OceanBase 是一款分布式架构的数据库,因此其设计理念也遵循上述的分布式架构特点,但是在技术实现上仍然有其特有之处。这篇文章就来说说,OceanBase 是如何实现高可用的。
物理架构和高可用
从物理上看,OceanBase 数据库集群由若干个可用区 (Zone) 组成,Zone 代表了一组服务器的物理位置分布。不同的 Zone 可以是异地或同城的数据中心,也可以是同一个数据中心不同的机架。Zone 由一到多台服务器 (OB Server) 构成,每个 Zone 都有一份且只有一份完整的数据副本,单个 Zone 出现故障时可能通过其他副本获取数据,为了避免集群分裂时出现对等数量的子集,Zone 通常建议配置为奇数数量。
OB Server 提供独立的计算和存储资源&#