Home OBCA基础知识
Post
Cancel

OBCA基础知识

OBCA

一、分布式数据库

传统数据库:高成本,难扩展

分布式数据库:数据高可靠、服务高可用、线性扩容、低成本、全局一致性、对业务透明

img-description object-database-example

二、OceanBase

img-description object-database-example

img-description

基本概念:

集群:Zone-1:n

Zone:OBServer-1:n,在每一个Zone选择一台Server部署总控服务(rootService)

img-description

OBServer包含多个租户,每个租户之间相互隔离(内存、CPU、数据)

每个租户拥有n个资源池

img-description

【注】:一台OBServer上只能放置一个租户的一个资源块,当一台OBServer宕机时,会迁移到同一个Zone下的其他Server上,同时,为保证租户资源的负载均衡,会在一个Zone内动态分配各Server中Unit的数量

OB集群部署:

在不少于三台机器上部署集群,首先部署OCP,然后登录OCP服务器,部署集群。每台OCP机器上有2个docker,分别运行OCP(Web服务)和OBServer(OB集群),OCP集群自带DNS服务器

img-description

创建租户:

  1. 创建资源单元规格(仅为规格定义)
  2. 创建资源池
  3. 创建租户

检查集群状态:服务器状态,资源分配情况、资源unit规格、资源unit使用情况

查看系统日志:observer、rootservice、obproxy

三、OceanBase集群技术架构

  1. 数据分区与分区副本

img-description

副本由事务日志、存储在内存的增量数据(MemTable)、磁盘上的静态数据(SSTable)三部分构成。同时,根据存储数据种类的不同,分为全能型、日志型、只读型,一个分区在一个zone中最多有一个全功能或日志型副本,只读型副本在同一个zone可以有多个

img-description

多副本一致性:以Zone为单位建立Paxos协议组;自主选举主副本

自动负载均衡:主副本均匀打散到各个服务器中

每台server相互独立,server会自动将请求路由至数据所在的机器上,对业务是透明的

img-description

  1. OBProxy
    • 对sql做基本解析,确定Leader机器,当Leader无法确定时,随机选择一台server。
    • 每个proxy是无状态的。
    • 不做数据持久化,不参与数据库引擎的计算任务,不参与事务。
    • proxy之间无关联,类似于网关转发,上层可搭载负载均衡统一转发到proxy

img-description

Primary Zone 有租户、数据库、表不同级别的设置,优先级中表>数据库>租户

img-description

Table Group:将多个表的相同分区id(分区类型、分区键个数、分区数量等)的主副本聚集在一个observer,以影响负载均衡

  • 可有效减少分布式事务导致的跨机访问延时
  • 可动态创建和删除,对上层应用透明
  • 若unit_num=1且primary_zone只有一个,则不需要tablegroup
    1. 数据高可用

高可用指标:灾难恢复能力等级

  • RTO(Recovery Time Objective)恢复时间目标:在故障或灾难发生之后,数据库停止工作的最高可承受时间,这是一个最大可容忍时限,必须在此时限内恢复数据-服务可用性
  • RPO(Recovery Point Object)恢复点目标:这是一个过去的时间点,当灾难或紧急事件发生时,数据可以恢复到的时间点,是业务系统所能容忍的数据丢失量-数据可靠性

img-description

高可用机制:

少数主副本故障时自动从从副本选出新的主副本,并接管业务,少数派不可当选主副本

img-description

  1. 分布式事务

保证ACID特性的机制:

  • OB两阶段提交保证事务的原子性,事务协调者和所有参与者均为主副本
  • 多版本并发控制(MVCC),解决读写互斥
  • 基于全局一致的数据版本号管理,实现不同的隔离级别,事务隔离级别:脏读、幻读、不可重复读

四、OB Server的SQL引擎和存储引擎

  1. SQL引擎:同时兼容Mysql和Oracle
  2. 存储引擎
    • 传统数据库存在随机写导致的写放大的问题。

img-description

  • OB通过准内存+LSMTree存储,避免随机写,LSMTree存储高数据压缩率

img-description

写数据:路径一:内存→硬盘中形成转储数据文件→通过定时或阈值启动与基线数据的合并;路径二:内存→Redo-Log实时数据落盘并同步给其他从副本

转储和合并的区别:

img-description

备份:通过常驻进程-备份恢复组件,每隔一段时间查询元数据库MetaDB有无备份任务,控制整个基线的备份任务状态。

img-description

五、OCP及ODC工具介绍

练习题

  1. 通过 OCP删除 OBServer后,系统 将会删除该 OBServer 的所有数据,且无法恢复,请谨慎操作。
  2. OceanBase服务器要求使用的磁盘类型是SSD固态盘
  3. 关于OCP上OBProxy管理功能,下面说法正确的是可以安装、下线、重启OBProxy
  4. OceanBase融合增量数据与基线数据,生成新的基线,这一过程称之为合并
  5. OceanBase可以支持在一个数据库中同时支持MySQL租户和Oracle租户。
  6. 普通租户可以更改自身的系统变量。
  7. Global级(租户级)变量修改后,对当前已经打开的session不生效。
This post is licensed under CC BY 4.0 by the author.