纯个人向的学习笔记,可能会比较基础。大家的基础各不相同,所以不保证可读性,更不保证普适性。
欢迎大家批判性地进行阅读,鼓励大家交流和吐槽。
背景
我作为一个十分不称职的 OceanBase 技术支持同学,对于 OceanBase 中的很多和运维相关的基础概念还都是一知半解,实在惭愧。这次在学习 OBCP 4.x 版本的过程中,准备尽量把这些概念都捡起来,顺便做一些简单的记录。
租户资源分配
因为经常偷懒用白屏工具进行运维管理,所以好像并不需要手动执行 CREATE RESOURCE UNIT、CREATE RESOURCE POOL 之类的命令。
那不了解这些基础概念的锅,就暂且甩给 OCP 吧。
概念拾遗:
- UNIT:节点中物理资源的容器。
- RESOURCE POOL:集群中 UNIT 的容器。
如下图,有三个资源池。以所有黄色的 UNIT 构成的资源池为例,unit = U1,unit Num = 2,zone_list = zone1,zone2,zone3。
创建租户的前置条件就是先创建资源单元 UNIT 和创建资源池 RESOURCE POOL。
租户扩缩容也是通过调节资源池中资源单元的规格大小,或者资源单元的数量实现的。
从 OceanBase 数据库 4.0 开始,在租户管理上增加了限制,要求同一个租户所有 Zone 的 Unit 个数相同。
负载均衡
Zone 内的负载均衡,也分为两种:
-
Migrate:表示 OBServer 间的 Unit 均衡。
-
Transfer:表示同一租户内不同 Unit 间的数据均衡(或者说是分区和日志流均衡)。
Transfer 的官方概念是说:将 Tablet 从一个日志流转移到另一个端日志流的操作,我上面对这个动作的概念做了一些扩展,一切以官方为准。
将分区 Tablet 在不同的日志流之间迁移,目的是让租户内的分区更均衡。这个动作在 OBCP 4.x 中没找到图片,大家看着上面那张图片发挥下想象力吧,比如 p1 分区的数据太多,p3 和 p7 太小,p5 可能就会从 LS1 被自动 transfer 到 LS2 这个日志流里。
总结
这次只做概念拾遗,不讲运维。简单回顾了以下四个基础概念:
- UNIT
- RESOURCE POOL
- MIGRATE UNIT
- TRANSFER PARTITION
What’s more ?
OBCP 4.x 第一章有 170 页,内容远远不止我提到的这四个基础概念。还是开篇那句话,大家的基础各不相同,看完同样的教程,得到的收获估计也大不相同。
可能换个人读 OBCP 4.x 第一章,学到的就是下面几个他之前不了解的概念:
- PX COORDINATOR
- DFO(Data Flow Operation)
- Granule
- DAS(Data Access Service)
我的学习笔记只能记录我看完这章学到的东西,没办法照顾到所有人,还望大家见谅。