1 集中式数据库与分布式数据库
1.1 集中式数据库缺点
- 成本高
- 有性能上线
- 无法横向扩展
- 横向扩展:变成多个,即加服务器
- 纵向扩展:单个变大,即加cpu、硬盘
1.2 分库分表缺点
- 应用侵入性
- 某些SQL不支持
- 无法保证数据一致性
1.3 OceanBase优点
- 高可用+数据一致
- 依赖工业级Paxos协议实现
- PRO=0:Recovery Point Objective,可靠性的指标,不丢失数据,
- RTO<30:Recovery Time Objective,可用性的指标,30s内恢复
- 便于横向扩容
- 成本低
- 支持复杂SQL
- 部署灵活
- 无应用侵入,即对业务透明
2 简介
- 自助研发,不需求助开源社区
- 高性能
- LSM Tree
- 高透明
- 高兼容:支持Oracle租户和Mysql租户
- 通过了TPC-C
- 在阿里的系统中得到广泛应用
3 相关产品
- OCP:OceanBase Cloud platform
- 图形化界面
- 集群管理、租户管理、集群监控、性能监控
- ODC:Oceanbase Developer Center
- 相当于plsql devloper
- 可以清晰直观查看修改当前数据库支持的变量
- OceanBase数据库内核
- 兼容Mysql+Oracle
- 支持OLTP+OLAP,即支持HTAP
- T:Transactional
- A:Analytical
- HTAP:Hybrid Transactional/Analytical Processing
- 需要三台服务器
- OMS:数据库迁移平台
- 可以将数据从OceanBase导出到Kafka、大数据
- 可以将数据从Oracle、Mysql、DB2导入
- 支持国产CPU和操作系统
4 客户端支持
- OBClient:OceanBase自带黑屏客户端。支持租户Oracle+Mysql
- Mysql客户端:支持租户Mysql
- ODC、OCP:支持租户Mysql+Oracle
5 基本概念
-
ZONE
- 对集群内一批机器打同一个tag,则属于同一个Zone
- 一个Zone包含多个OBServer
- 一个集群Zone个数一般>=3,建议奇数个(Paxos 协议)
- 一般一个城市或一个机房对应一个Zone,单个Zone坏不影响业务
- 每一份数据在各个 Zone 上有且只有一份副本
-
RootService
- 也称RS,总控服务,用于处理OBServer上下线和Zone上下线、管理如何分区、控制合并MemTable和SS Table之前先将本zone全部分区的Leader切到其它zone,等到合并完成后再切回来、执行DDL操作
- 每个Zone中有一个,可以和某个OBServer在同一台机器,某个Zone中RootService宕了,另一个Zone中的接管
-
资源池
- 集群多个服务器组成了一个大的资源池,包括指定规格的 CPU、内存、存 储、TPS、QPS 等
-
Unit
- 表示某一个OBServer上的一部分资源
- U1=2C8G:表示Unit1有2cpu和8g内存,还有一部分硬盘,最终数据的副本就存放在Unit中
-
租户
-
类似数据库实例
-
创建租户时,需指定Mysql模式还是Oracle模式
-
创建租户时,需要指定分配资源池中多少资源(Unit)给该租户
- 一个租户,在同一个Zone的同一个OBServer上,最多有一个Unit
- Unite=U1,Unite Num=2,表示分配给租户2个Unit,即同一个Zone中,有两个OBServer中的一部分资源给这个租户
-
创建租户语句
--创建Unit CREATE RESOURCE U
-