天天看点

学习笔记(二) | OceanBase

(三)产品部署与基础概念:

<第一部分>

1.OceanBase数据库产品家族主要产品:

a) OceanBase数据库内核:通过Paxos协议保证了高可用性,可以兼容MySQL和Oracle,同时兼容HTAP,即它既可以用于OLTP业务,也可以用于OLAP业务。

b) OceanBase给运维者提供OCP工具平台,图形化的界面,帮助管理员更好的完成日常的集群管理、租户管理、监控警告、性能诊断等任务。

c) OceanBase给开发者提供ODC工具平台,图形化的界面,帮助开发者更好的完成数据库连接管理、数据库对象管理、存储过程开发测试、导入导出等任务。

d) OceanBase提供了OMS数据库迁移平台,既可以从数据库订阅数据,也可以从异构的数据库中(如DB2、Oracle、MySQL)进行数据迁移,回滚等。

2.OceanBase支持多种部署形式:

(1)OceanBase已经部署到AliCould公有云上,而且采用两地三中心的高可用形式部署,用户/企业可以按需购买。

(2)OceanBase已经包含在AliCould专有云3.5以上版本

(3)企业可以在自建基础设施上部署OceanBase

3.安装配置:(OceanBase采用独立部署模式、采用3台以上服务器)

(1)最低性能要求:32C,128G,1.2TB存储

(2)最佳性能要求:32C,256G,2TB存储

(3)实验环境(试用版):2C,8G

4.OCP服务器是管理服务器,可1台单机部署,也可以3台部署

5.OceanBase支持如下CPU及操作系统:

CPU:Intel X86系列CPU、海光(Hygon7185)、海斯(鲲鹏920)、飞腾(FT1500a、FT2000)

操作系统:CentOS、RedHat、SUSE、Debian/Ubuntu、AliOS、NeoKylin、Kylin

6.OceanBase部署流程:

部署环境配置-->部署环境检查-->部署OCP-->部署OceanBase集群-->部署OBProxy-->创建租户-->部署备份/恢复服务-->部署OMS/ODC

7.OceanBase用于连接数据库、对数据库进行日常管理的两种客户端工具:

(1)黑屏工具:MySQL客户端和OceanBase专有的客户端。OceanBase转专有的客户端工具可以同时访问MySQL租户和Oracle租户

(2)白屏工具:包含OceanBase云平台OCP,OceanBase开发者中心ODC

<第二部分>

基础概念:

①集群、Zone、OB Server

(1)一个集群有多个Zone组成,每一份数据在各个Zone上都仅有一个副本。

物理上讲:不同的Zone可以对应不同的城市;

逻辑上讲:Zone就是给集群内的一批机器打上同一个tag,具有同样Tag的服务器则属于同一Zone;

(2)由于OceanBase采用Paxos协议,多数派要达到一致,Zone的个数一般大于3台;

当1个Zone故障后,其余两个Zone内的副本仍可构成多数派,不影响业务。Zone个数>=3,最好为奇数,决定了OBserver的个数。

(3)OB Server相对独立,自身具备计算引擎和存储引擎。

②RootService总控服务(RS)

(1)OceanBase的核心模块,管理整个集群。

(2)集群内置服务,无需额外软硬件部署。

(3)自带高可用能力,无单点故障风险

(4)部署:在Zone中选择一台OBserver作为RootServer,以此降低成本。

(5)核心功能:

a)  系统初始化(BootStrap);系统元数据管理。
b)  资源分配及调度:分区及副本管理、动态负载均衡、扩容\缩容。
c)  全局DDL;集群数据合并。
           

③多租户机制、资源隔离、数据隔离

(1) 租户介绍:

a) 将数据库集群按指定规格(CPU、内存、存储、TPS、QPS)划分成多个资源池,分配给不同租户;

b) 租户资源隔离策略:内存物理隔离、CPU逻辑隔离、数据隔离;

c) 通常一个应用占一个用户;

(2) 租户特性:

a) 可创建自己的用户;

b) 可以创建数据库、表、等实体对象;

c) 有自己独立的系统数据库;

d) 有自己独立的系统变量;

(3) Unit & 租户资源池:

a) 每个Unit描述了位于一个OBserver上的一组计算和存储资源;每个Unit只属于一个租户。

b) 每个Unit可以成为一个轻量级虚拟机,包括若干CPU资源、内存资源、磁盘资源等。

c) 一个租户拥有若干资源池,资源池的集合描述了这个租户所可用的全部资源;

d) 一个租户在同一个Server上最多只有一个UNIT

<副本存放在UNIT中,UNIT是副本的容器>

<第三部分>

实验1:部署OceanBase集群(商用环境)

(1)整体部署流程:

  1. 安装OceanBaseAdmin ToolKit(OAT)
  2. 安装OceanBaseCloud Platform(OCP)
  3. 安装OceanBase集群
  4. 安装OB Proxy

(2)部署OAT 流程:

Ⅰ. 登录每台服务器,安装OAT,使用root账户执行命令:

rpm -ivht-oceanbase-antman-1.3.3-1896174.alios7.x86_64.rpm

Ⅱ. 登录每台服务器,添加Admin用户,设置操作系统内核、安装依赖包;配置时钟源(NTP & chromy),确保全部节点的时钟偏差在100ms以内。

Ⅲ. 部署前环境检查:

cd /root/t-oceanbase-antman

sh pre_check.sh -m ocp

(3)部署OCP(OceanBase Cloud Platform)流程

Ⅰ. 以root账户登录OCP服务器执行命令:

Init_obcluster_conf.sh

Ⅱ. 在显示的模式选择中,选择1-单点部署,选择3-3节点部署

Ⅲ. 系统生成配置模式

Ⅳ. 根据注释信息,修改配置模板后开始部署。

(4)部署流程

OCP -> 运维 -> OB Proxy -> 安装OB Proxy

实验2:创建租户

(1)创建租户过程(命令行方式)

Ⅰ.创建“资源单元规格”,Create resource unit //指定资源单元规格

Ⅱ.创建“资源池”,Create resource pool //根据Ⅰ定义创建资源单元并赋予一个新资源池

Ⅲ.创建租户,Create tenant //将资源池赋给一个新的租户

(2)创建资源单元:

CREATERESOURCE UNIT 资源规格名称 //创建资源规格

Max_cpu= 4, //4核CPU

Max_memory= 10737418240 (10G) //最大内存

Min_memory= 10737418240 (10G) //最小内存

Max_iops= 1000 //磁盘最大性能指标

Min_iops= 128 //磁盘最小性能指标

Max_session_num= 300 //最大连接数

Max_disk_size= 21474836480 (20G) //磁盘最大限制

(3)创建资源池(实际创建unit,按规格定义分配资源)

CREATERESOURCE POOL 资源池名称 //创建资源池

UNIT= ‘unit1’, //使用的资源规格

UNIT_NUM = 1, //选择Zone内的OBServer的数量放置Unit

ZONE_List= (‘zone1’,‘zone2’,‘zone3’) //指定Zone

(4)创建租户(将资源池分配给对应租户)

CREATETENANT 租户名称

RESOURCE_POOL_LIST= (‘资源池名称’) //指定使用的资源池

PrimaryZone = ‘Zone1,Zone2,Zone3’ //指定副主副本分配到Zone内的优先级

Setob_tcp_invited_nodes = ‘%’,ob_compatibility_mode = ‘mysql

Recyclebin= off , ob_timestamp_service = ‘GTS’

(5)以上步骤即可用白屏工具/黑屏工具连接OceanBase

(6)检查集群状态:

Select* from 表名 all_server //检查所有服务器的状态

_all_virtual_server_stat //查看集群中的整体资源分配情况

Select* from 表名 all_unit_config //查看系统中定义的resource unit规格

Select* from 表名 all_unit //查看系统中已经分配的resource unit

__all_resource_pool,__all_unit,__all_unit_config //将所有内容关联起来

Select* from 表名 all_resource_pool //将以分配的resourceunit与租户对应起来

实验3:创建用户及管理用户权限

  1. 创建用户:

create user ‘username’identified by ‘password’;

  1. 默认用户:

alter user ‘root’identified by ‘password’;

  1. 管理用户权限:

a) grant on,

to‘user’;

b) revoke on,

from ‘’;

实验4:查看系统日志

  1. OBServer日志(/home/admin/oceanbase/log目录)
    Observer.log:obs运行时的日志文件
    
    Rootservice.log:obs上rootserver日志文件
    
    Election.log:obs上选举模块的日志文件
               
  2. 开启日志循环:(控制OBServer日志文件个数)

    Enable_syslog_recyle = True; //开启日志循环

    Max_syslog_file_cout = ; //设定存储日志最大数量

  3. 日志级别:(默认级别:INFO)

    Syslog_level = [DEBUG,TRACE,INFO,WARN,USER,ERROR];

  4. OB Proxy日志(部署后才会产生)(/opt/taobao/install/obproxy-/log目录)

    Obproxy..log :每次OB Proxy重启都会产生新的文件名

    部分解释:

1.OAT是自动化部署工具,物理机器环境检查及初始化(装机模板程序),需要在所有服务器上安装OAT的RPM包。

2.OCP:OCP可以执行安装OceanBase集群、创建OceanBase集群用户、安装Proxy,也可执行集群运维及集群监控任务;

OCP自带高可用DNS服务器,可提供域名解析服务,提供config url服务,保证OceanBase集群的关键信息;

OCP底层有OceanBase元数据集群,提供元数据和监控数据的持久化存储

每台OCP有2个Docker,分别运行OCP(Web服务)、OBServer(OceanBase元数据集群)

3..集群部署时默认不安装OBProxy,通常会在每个Zone上选择一台OBServer部署OBProxy

4.当UNIT_NUM = 1时,从每个Zone中找一台OBServer放置UNIT;

当UNIT_NUM>1时,从每个Zone中找等同于UNIT_NUM个数的OBServer放置UNIT

5.指定租户类型为MySQL还是Oracle,来决定使用那种数据库模型语法

6.服务器的全部状态:

服务器创建时间;
上次修改时间;
服务器归属于那个Zone;
服务器当前状态;
上次停机/开机/下线时间;           

7.resource unit

可以看到集群中Zone的数量,每个Zone中的OBServer数量,每个Zone的各种资源分配情况8.OBServer进程指定正确的参数:

网卡名称、对内/外服务端口、集群名称、集群ID、磁盘目录、当前OBServer所属的zone、rslist信息。