(三)产品部署与基础概念:
<第一部分>
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)整体部署流程:
- 安装OceanBaseAdmin ToolKit(OAT)
- 安装OceanBaseCloud Platform(OCP)
- 安装OceanBase集群
- 安装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:创建用户及管理用户权限
- 创建用户:
create user ‘username’identified by ‘password’;
- 默认用户:
alter user ‘root’identified by ‘password’;
- 管理用户权限:
a) grant on,
OBServer日志(/home/admin/oceanbase/log目录)
Observer.log:obs运行时的日志文件 Rootservice.log:obs上rootserver日志文件 Election.log:obs上选举模块的日志文件
- 开启日志循环:(控制OBServer日志文件个数)
Enable_syslog_recyle = True; //开启日志循环
Max_syslog_file_cout = ; //设定存储日志最大数量 - 日志级别:(默认级别:INFO)
Syslog_level = [DEBUG,TRACE,INFO,WARN,USER,ERROR]; - 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信息。