OceanBase 分布式存储管理
分布式存储管理
分区表管理
定义
- 把普通的表的数据按照一定的规则划分到不同的区块内,同一区块的数据物理上存储在一起。
- 每个分区还能按照一定的规则再拆分成多个分区,这种分区表叫做二级分区表。
分区分类
- range分区,最常见是按日/周/月分区
- list
- hash
- key
- 组合
创建分区表
创建分区表索引
副本管理
概述
- OceanBase 数据库是以表分区( Partition )为原子粒度进行管理的。
为了数据安全和提供高可用的数据服务,每个分区数据在物理上存储多份,每一份叫做分区的一个副本。
每个副本,包括存储在磁盘上的静态数据( SSTable )、存储在内存的增量数据( MemTable )以及记录事务的日志三类主要的数据。
根据存储数据种类的不同,副本有几种不同的类型,以支持不同业务在在数据安全,性能伸缩性,可用性,成本等之间的选择。
基础信息
- Log
本文中主要指与事务相关的 Clog 日志。
- MEMTable
表示目前内存中已经被读写更改过的数据,也可称之为内存表。
- SSTable
表示存储在磁盘中的基线数据。
当数据被事务读取或修改时,会暂存在 MEMTable 中。
合并发生时 MEMTable 中的数据会和 SSTable 中的数据进行合并形成更新版本的 SSTable。
副本类型
- 全能型
目前支持的普通副本,拥有事务日志、MEMTable 和 SSTable 等全部完整的数据和功能。
- 日志性副本
只包含日志的副本。
- 只读型
可以在业务对读取数据的一致性要求不高的时候提供只读服务。
新增副本
- 参考链接:新增副本
Locality管理
-
Locality 描述了表或租户下副本的分布情况。
-
查看
SELECT tenant_name,locality FROM oceanbase.gv$tenant;
-
修改表的 Locality
-
修改租户的 Locality
分区副本均衡
本文作者:武平宁
本文链接:https://www.cnblogs.com/dewan/p/16349053.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步