点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


OceanBase 数据库体系架构高可用概述

如图所示,数据服务层表示一个 OceanBase 数据库集群。该集群由三个子集群(Zone)组成,一个 Zone 由多台物理机器组成,每台物理机器称之为数据节点(OBServer)。OceanBase 数据库采用 Shared-Nothing 的分布式架构,每个数据节点都是对等的。
OceanBase 数据库中存储的数据分布在一个 Zone 的多个数据节点上,其它 Zone 存放多个数据副本。如图所示的 OceanBase 数据库集群中的数据有三个副本,每个 Zone 存放一份。这三个 Zone 构成一个整体的数据库集群,为用户提供服务。
根据部署方式的不同,OceanBase 数据库可以实现各种级别容灾能力:
服务器(Server)级无损容灾:能够容忍单台服务器不可用,自动无损切换。 机房(Zone)级无损容灾:能够容忍单个机房不可用,自动无损切换。 地区(Region)级无损容灾:能够容忍某个城市整体不可用,自动无损切换。
当数据库集群部署在一个机房的多台服务器时,实现服务器级别容灾。当集群的服务器在一个地区的多个机房中时,能够实现机房级别容灾。当集群的服务器在多个地区的多个机房中时,能够实现地区级别容灾。
OceanBase 数据库的容灾能力可以达到 RPO=0,RTO=30 秒的国标最高的 6 级标准。
代理高可用
OceanBase 数据库代理 ODP(OceanBase Database Proxy,又称 OBProxy)是 OceanBase 专用的代理服务。
ODP 自身就有高可用设计:
定时任务,刷新 OBServer、Zone、主备集群状态。 方案限制:依赖 OBServer 的状态更新。可能存在 OBServer 出问题(如:磁盘 hang 住),但是没有 inactive 或者 stop server,这个时候状态不会变化。 Server 连接保持 与 KeepAlive 探活机制,探测 OBProxy 与 后端 OBServer 的连接状况,如果空闲连接异常断开,OBProxy 可以及时发现,剔除并新建。 Client KeepAlive 探活机制,探测 OBProxy 与 Client 的连接状况,同时可以避免 SLB 等负载均衡的空闲超时。
组件高可用
3.1 OCP
OCP 支持通过三节点部署来实现高可用。
三节点部署可以选择 DNS 负载均衡或者其他外部负载均衡设备,例如 F5 等。
3.2 OMS
由于越来越多的用户使用 OMS 进行数据迁移,OMS 需要实现的用户场景也越来越多。除目前广泛使用的单地域数据迁移、大数据同步场景外,OMS 还支持多个地域之间进行数据同步、异地城市之间进行数据迁移或双活同步。
多地域场景下,每个地域都可以部署一个或者多个节点。如果在某一地域部署了多个 OMS 节点,它们会构成一个高可用环境。OMS 会根据具体任务场景,在合适的节点上启动相应的功能组件。
例如,您需要同步杭州的数据至黑龙江。此时,OMS 会在杭州的某节点上启动增量日志抓取功能组件 Store,在黑龙江的某节点上启动增量同步组件 Incr-Sync。
多节点部署的说明如下:
为了实现多节点部署,您可以先进行单节点部署,然后再扩容至多节点; 详情请参见 扩容部署: https://www.oceanbase.com/docs/enterprise-oms-doc-cn-1000000000000121 在多地域多节点部署环境中,您需要在每个地域都申请一个 VIP 作为 OMS 管理控制台的挂载点。同时,您需要在 VIP 网络策略上配置 8088 和 8089 端口的映射规则。
申请 VIP 后,即使有 OMS 节点故障,您依然可以通过 VIP 访问 OMS 的管理控制台。
高可用验证
4.1 OceanBase数据库高可用验证
场景一:服务器级别

登录OB集群验证:

场景二:zone级别

登录OB集群验证:

4.2 OCP高可用验证
OCP部署为三节点高可以用,停止其中一个一节点,OCP仍可用:

4.3 代理高可用验证

代理本身为无状态,进程意外终止后会自动重新拉起。
其他:
在高可用验证过程中,存在副本切换过程,短时间内资源消耗较大,出现短时间副本不可用情况。

本文作者:薛 颂(上海新炬中北团队)
本文来源:“IT那活儿”公众号
