开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2740人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7群均已爆满+,开8群 9群)
一直提到框架学习法,其中主体的思想就是如何快速的学习某项数据库产品的知识。其中框架学习法里面有一条系统学习,系统学习是在给学习的知识搭建“骨架”,所以从这期起,开始搭建OceanBase学习的骨架。今年要和“申公豹”一样修炼岂可怠慢。

这里先解释一下什么是6大学习法,怎么将知识变成一种理念的过程,首先知识的学习是要以兴趣为动力的,没有兴趣去学习是无法提高学习的效率和成效的,在有了兴趣去学习后,那么上来就要上逻辑法,将学习的知识分成小块,也就是我们习以为常的总分总的分,在学习中不断的通过重复记忆,提炼的方法加深记忆,在理解了知识后, 使用庞统法,来将知识和周边的常识进行关联,最后通过费曼学习法将知识铁桶话,最后一步就是将学到的知识进行知行合一,这就是将知识转变为自己常识的知识学习6大法。学习OB的兴趣和动力我有了,下面首先就要上的是逻辑法,和重复记忆法。
此篇为OceanBase 视频学习总结的第二篇:这篇主要是围绕OBCA 4.0课程中的第二章中的三个小结进行学习
1 集群基本概念 2 路由与负载均衡 3 高可用部署架构

OceanBase 集群的基本概念、路由与负载均衡以及高可用部署架构总结如下: 集群基本概念
1整体架构
从业务流的视角来看,OceanBase 分布式数据库的访问可以分成四个层级:
1 应用层
2 负载均衡层
3 数据库代理层
4 后端的存储层
从 OceanBase 内部架构来看,它是一个多节点、多副本并且读写分离的架构。
从租户的角度,或者从多租户架构的角度来看:
一个数据库集群内可以划分多个业务租户,不同的租户之间资源与数据是隔离的。租户资源是以资源池的形式进行分配,对应用来说就相当于是一个个独立的数据库实例.
从用户的角度看: 系统分为系统组合和用户租户,系统租户在集群创建时默认创建,主要用来管理整个集群和所有租户。
用户租户由用户主动创建的业务租户,由用户负责租户内数据库对象的管理和访问,承载用户的业务数据。从 V4.0.0 版本开始,引入了 Meta 租户概念。
因此,当前版本对用户可见的租户有三种类型:系统租户、用户租户以及 Meta 租户。
从OB数据库的类型看,分为商业版本和开源版本,从数据库的兼容性看,分为 ORACLE 和 MySQL。


OceanBase 的基本概念: 基本概念关键词
1 多租户架构:OceanBase 采用多租户架构,允许在一个数据库集群内划分多个业务租户,以此实现资源和数据的隔离. 每个租户的资源以资源池的形式进行分配,对于应用程序来说,这就像是独立的数据库实例。
2 集群: 在物理层面上,OceanBase 集群分布在一个或多个数据中心的多台 observer 服务器上,这些服务器负责数据库的存储和计算服务。
3 可用区: 可用区是一个逻辑概念,每个可用区包含一份完整的数据副本. 例如,一个 OceanBase 数据库集群可能包含三个可用区,每个可用区由两台 observer 承载一份完整的数据副本。
4 Observer: Observer 是集群中承载数据、负责存储并提供计算服务的服务器. Observer 可以是物理服务器、ECS 或 Docker 容器。在 OceanBase 集群中,每个 observer 都可以同时提供存储和计算服务
5 数据副本:为了保证数据与服务的高可用性,OceanBase 数据库会将同一份数据拷贝到多个可用区,每一份拷贝被称为一个副本. 在多个副本中,只有一个可以执行写操作,这个副本被称为主副本(Leader),其余的则为从副本(Follower). 从副本可以提供对数据一致性要求较低的读操作。
6 日志流: OceanBase 集群的多个副本之间通过同步事务日志来完成数据同步,这些在多个副本之间同步的事务日志被称为日志流。
7 paxos 协议: 多副本之间日志流的同步依赖 Paxos 分布式一致性协议. 在更新数据时,对应的事务日志需要在多数派的副本同步成功才算提交完成. 副本的 leader 选举也依赖 Paxos 协议。
8 Root Service: Root Service 是 OceanBase 的核心模块,提供资源管理、容灾、负载均衡和 DDL 管理等功能. RS 负责租户的资源分配与管理,集群与租户的扩缩容,以及将租户的资源单元和 leader 节点合理地分布在不同的 observer 节点上,以达到负载均衡的目的。

OceanBase集群涉及租户和集群的扩缩容,并通过修改租户的资源单元个数来改变可用区下服务于该租户的observer个数。
OceanBase通过Root Service(RS)实现自动负载均衡能力,从而在数据库水平扩缩容与创建分区等场景下,达到各个服务节点上分区数与存储容量的均衡以及不同中间分区数量的均衡。
以下是关于OceanBase集群扩缩容的一些关键点:
资源管理:Root Service(RS)负责租户的资源分配与管理,集群与租户的扩缩容等.
负载均衡:RS将租户的资源单元以及leader节点合理地分布在不同的observer节点上,以达到负载均衡的目的。
水平扩缩容:通过修改租户的资源单元个数来改变每一个可用区下服务于该租户的observer个数。
自动负载均衡:在数据库水平扩缩容与创建分区的场景下,可以达到各个服务节点上分区数与存储容量的均衡,以及不同中间分区数量的均衡。
仲裁服务:在3D5中心的部署架构里,可以使用仲裁服务来降低第三个城市的数据中心的建设成本, 仲裁服务是 OceanBase V4 版本引入的一种新的高可用机制. 仲裁服务作为中立的第三方,只参与副本 leader 选举相关的投票,不同步事务日志和数据。
·
数据副本与高可用 数据可以跨越多个数据中心,集群中的数据可以有多个副本。当集群有多个副本时,这是一个分布式集群,数据副本是一个完整的数据集合。OceanBase 通过日志流来实现多个副本的协同。当一个副本出现故障,其他副本可以继续提供数据的读写服务,以此实现数据库的高可用。
可用区和租户的知识详解:
定义:可用区(Zone)是一个逻辑概念,代表数据副本的集合. 每一个可用区都包含一份完整的数据副本。
多副本集群:在 OceanBase 数据库集群中,一个典型的配置是包含三个可用区,例如 Z1、Z2 和 Z3,这构成一个三副本集群。
Observer 节点:每个可用区下通常有多台 Observer 服务器,用于承载完整的数据副本. 例如,一个可用区下可能有两台 Observer 节点来承载数据副本。
Paxos 协议:OceanBase 分布式数据库使用 Paxos 多数派协议来保证多个副本之间数据的一致性. 这意味着数据的更新必须在多数派的副本中完成同步. 对于三副本集群,多数派副本数是2。
Primary Zone 设置:OceanBase 允许设置租户级别的 Primary Zone,将租户的 Leader 副本分配到指定的可用区内,从而影响业务流量的分布. 例如,将 Primary Zone 设置为 ZONE1,则该租户所有表或分区的 Leader 副本均在 ZONE1,数据访问均在 ZONE1 内完成.
优先级设置:Primary Zone 可以设置优先级,使用分号分隔表示不同的优先级,逗号分隔表示相同的优先级. 例如,"ZONE1; ZONE2; ZONE3" 表示 ZONE1 > ZONE2 > ZONE3 的优先级,而 "ZONE1, ZONE2; ZONE3" 表示 ZONE1 等于 ZONE2 且都高于 ZONE3 的优先级。
数据分布和流量控制:通过合理设置 Primary Zone,可以控制数据分布和业务流量,在多地