OceanBase 数据库集群由一个或多个 Region 组成,Region 由一个或多个 Zone 组成,Zone 由一台或多台服务器组成。Region 对应物理上的一个城市或地域,当 OceanBase 数据库集群由多个 Region 组成时,数据库的数据和服务能力就拥有地域级容灾能力,当集群只有一个 Region 时,如果出现整个城市级别的故障,则会影响数据库的数据和服务能力。Zone 对应一个有独立网络和供电容灾能力的数据中心,在一个 Region 内的多个 Zone 间 OceanBase 数据库集群拥有 Zone 故障时的容灾能力。通常情况下,OceanBase 数据库集群的一个 Zone 内只会有数据的一份拷贝,如果整个集群只有一个 Zone,则集群没有容灾能力。如果实际的运行环境只有一个数据中心的若干台机器,则可以将若干台机器划分成虚拟的 Zone,OceanBase 数据库会在这些虚拟的 Zone 之间具备容灾能力。
OceanBase 数据库创新的容灾能力有三地五中心可以无损容忍城市级灾难,以及同城三中心可以无损容忍数据中心级故障。OceanBase 数据库通过将数据在多个 Region 或者多个 Zone 内保留数据拷贝,并使用 Paxos 一致性协议保证副本之间的强一致,在城市级灾难或者数据中心故障时既保证数据的可靠性,又能保证数据库服务的可用性,达到可靠性与可用性的平衡。
多 Region 集群:
多 Zone 集群:
OceanBase 数据库的无损容灾能力还可以方便集群的运维操作,当数据中心或者服务器需要替换和维修时,可以直接下线对应的数据中心或服务器进行替换和维修,并补充进新的数据中心或服务器,OceanBase 数据库系统会自动进行数据的复制和均衡,整个过程可以保证数据库服务的使用不受影响。
OceanBase 数据库集群的每台服务器上会运行 observer 进程,observer 进程负责整个数据库服务的各项功能,包括资源管理与租户创建,数据分布的管理,数据副本之间的 Paxos 协议,单机或分布式的数据查询与修改等。