OceanBase迷你版集群安装记录

环境简介

学院资源给了很大力的支持,在内存方面直接每台虚拟机直接可以达到64GB!具体环境资源信息如下所示:

序号虚拟机名称CPU内存存储
1BigDataMag264100
2node2264100
3node3264100

虚拟机的模板镜像均为:ubuntu16.04-hadoop

搭建准备

在具体开始搭建OB集群之前,首先进行必要的资源文件下载,资料搜集。同时对整体安装进行规划。

资源文件与参考资料

OB迷你版安装地址
下载完成后使用文件上传,上传到虚拟机。

OBCA认证实验

总体规划

目标基于3台虚拟机搭建OceanBase集群

OCP(OceanBase Cloud Platform)企业级数据库管理平台,支持自动部署OB集群。因其占用资源较大,在此处选择绕过OCP进行手动部署。OCP是可选组件,可以不装。使用两个黑屏工具ob client和mysql客户端来替代管理。
官网下载的ob2.2迷你试用版只需2c8g即可安装,在这里选择使用其部署一个1-1-1架构的集群。可以做功能性测试,性能性测试暂且还不行。

节点ip信息:

序号虚拟机名称IP内存zone名称
1BigDataMag192.168.110.19264zone1
2node2192.168.110.19964zone2
3node3192.168.110.1864zone3

端口:
ob集群内RPC服务端口 2882
observer客户端端口 2881
obproxy客户端端口 2883

用户管理

创建一个安装用户 admin
$ sudo adduser admin
切换用户为admin
$ su admin
使admin具有管理员权限
$ sudo adduser admin sudo
安装目录 /home/admin/oceanbase
集群名称 obdemo

磁盘规划

(1)、数据盘 /data/1
数据盘承载了基线数据,物理上只有一个基线数据文件block_file,在安装目录 store/sstable 下。
通过 OBServer 进程启动时一次性创建,大小根据启动参数 datafile_disk_percentage 采用磁盘预分配策略,默认值为 95%,创建后无法调整大小。

(2)、事务日志盘 /data/log1
事务日志盘包含多个固定大小的小文件,位于安装目录 store/{clog,ilog,slog},按需自动创建和清除,磁盘写到 80% 会触发自清除逻辑。
大小要求:内存大小3-4倍

(3)、OceanBase软件安装盘: /home
大小建议100G+
OceanBase 的 rpm 包安装目录在/home/admin/oceanbase 下,其中基线数据文件和事务日志文件会通过软连接指向上述的两个独立磁盘,
还有另外一个不断增长的文件是 OB 运行日志,在安装目录 log下。
OB 进程本身无法自删除运行日志,需要定时任务或运维脚本完成删除逻辑。

$ df -h |egrep home\|data

环境检查

操作系统

虚拟机操作系统为ubuntu,查看具体版本可以使用指令
$ cat /proc/version

软件环境:
Java环境:JDK 1.8
Python环境:2.7.12
MySQL客户端:14.14

CPU

$ lscpu

内存

详细:$ dmidecode -t memory
内存数量:$ dmidecode -t memory |grep -A16 "Memory Device$" |grep 'Size:.*MB' |wc -l
每个内存大小:$ dmidecode -t memory |grep -A16 "Memory Device$" |grep "Size:"

硬盘

硬盘数量、大小:$ fdisk -l |grep "Disk /dev/sd"

关闭防火墙
$ sudo ufw disable(默认已经关闭)

配置时钟同步

OceanBase是个分布式数据库,要求各个observer节点的时间保持同步,时间误差控制在100ms以内。
节点时间误差偏大时,后面初始化OceanBase集群会失败,或者现有的OceanBase集群会出现异常。
节点间的时间同步要靠Linux的NTP同步来保证。
检查时间误差使用clockdiff命令。
clockdiff 192.168.110.192
clockdiff 192.168.110.199
clockdiff 192.168.110.18

注:因虚拟机位于同一主机,故检测时间误差delta均不超过100ms,不再配置时间同步

依赖软件安装

tree:$ sudo apt install tree
clockdiff:$ sudo apt install iputils-clockdiff

默认限制修改(此步未实际改动)

使用命令ulimit可以查看用户会话的默认限制(在本机中无)
ubuntu下可以修改/etc/security/limits.conf文件实现对于限制的修改永久生效。

部分可能需要的修改内容:
$ vi /etc/security/limits.conf

* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft stack unlimited
* hard stack unlimited

开始手动安装OceanBase迷你版集群

解压软件,并修改目录权限

$ tar -xvf mini-ob-deploy.tar -C /home/admin/
$ cd /home/admin
$ ls -l查看解压后效果

总用量8
drwxr-xr-x. 11 121066 users 4096 Aug 20 11:39 mini-ob-deploy

可以修改目录权限
chown -R admin:admin /home/admin/mini-ob-deploy

drwxr-xr-x. 11 admin admin 4096 Aug 20 11:39 mini-ob-deploy

初始化目录

首先确保admin用户已经创建,相应的文件系统目录{/home/admin/ , /data/1 , /data/log1 }都存在,并且空间大小符合要求。
在ubuntu下,新建/data根目录为root权限,可以将其更改为admin权限。

mkdir -p /data/1/obdemo/{etc3,sort_dir,sstable}
mkdir -p /data/log1/obdemo/{clog,etc2,ilog,slog,oob_clog}
mkdir -p ~/oceanbase/{admin,bin,etc,store}
mkdir -p ~/oceanbase/store/obdemo
cp ~/mini-ob-deploy/bin/observer ~/oceanbase/bin/
for t in {etc3,sort_dir,sstable};do ln -s /data/1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
for t in {clog,etc2,ilog,slog,oob_clog};do ln -s /data/log1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done

注:可以编写shell脚本文件方便部署其他服务器,多条命令同时执行,在每条命令之后添加&&

检查目录:

tree检查目录

启动OBSever进程

到每个节点的admin用户下,启动observer进程,注意修改 zone, IP, 网卡名字。

参数含义
-i后接网卡名称。如果有2个网卡,要指定业务IP所在的网卡名称。
-PRPC端口
-p客户端连接断口
-z后接Zone名称,可以自定义。Zone是逻辑机房概念,三台机器分属于不同机房,不能重复。
-d后跟集群主目录,除集群名字obdemo外,其他不要变动。
-r后跟一组服务器信息,格式是ip:RPC端口:客户端连接端口,如ip:2882:2881,分号分割,表示rootservice list信息。三台机器参数一致。
-c后跟集群ID,一组数字,可以自定义。同一个集群,ID必须相同,不同集群不要重复即可。
-n后跟集群名称,可以自定义,不同集群名称不要重复即可。
-o后跟集群参数,需要根据实际情况设置。system_memory 指定OB内部保留内存,默认是30G,机器内存比较少的情况下把这个调小,影响就是可能在性能测试时有内存不足问题。
datafile_size指定OceanBase数据文件sstable的大小(一次性初始化),根据/data/1/ 可用空间评估,建议不少于100G,同时又保留一些剩余空间.如果/data/1跟/data/log1本身就是一个文件系统(共用一个盘),那么务必保证留给/data/log1的空间大小是内存的2-4倍。config_additional_dir指定参数文件的冗余目录。

注意这里的参数设置,由于迷你版2c8g资源较少,因此需要特殊设置部分内存参数。参数里指定数据文件的大小、内存的大小,以方便个别环境资源不足想精确控制observer对资源的占用。

# su - admin
$ cd /home/admin/oceanbase 

zone1 201节点:
$ bin/observer -i eth0 -P 2882 -p 2881 -z zone1 -d /home/admin/oceanbase/store/obdemo -r '192.168.110.192:2882:2881;192.168.110.199:2882:2881;192.168.110.18:2882:2881' -c 20201109 -n obdemo -o "memory_limit=24G,cpu_count=2,datafile_size=40G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
$ 
$ ps -ef|grep observer
$ netstat -ntlp |grep observer
$ df -h |egrep home\|data
$


zone2 202节点:
$ bin/observer -i eth0 -P 2882 -p 2881 -z zone2 -d /home/admin/oceanbase/store/obdemo -r '192.168.0.220:2882:2881;192.168.0.213:2882:2881;192.168.0.162:2882:2881' -c 20201013 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,row_purge_thread_count=1,net_thread_count=1,enable_syslog_recycle=True,enable_merge_by_turn=FALSE,cpu_count=16,location_refresh_thread_count=2,max_syslog_file_count=3,major_freeze_duty_time=Disable,__easy_memory_limit=1G,schema_history_expire_time=1d,merge_thread_count=1,writing_throttling_trigger_percentage=70,_max_trx_size=2M,workers_per_cpu_quota=2,enable_separate_sys_clog=0,datafile_disk_percentage=90,__min_full_resource_pool_memory=536870912,system_memory=5G,memory_chunk_cache_size=128M,trace_log_slow_query_watermark=10s,writing_throttling_maximum_duration=1m,switchover_process_thread_count=1,datafile_size=40G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
$ ps -ef|grep observer
$ netstat -ntlp |grep observer
$ df -h |egrep home\|data
$ cat log/observer.log

zone3 203节点:
$ bin/observer -i eth0 -P 2882 -p 2881 -z zone3 -d /home/admin/oceanbase/store/obdemo -r '192.168.0.220:2882:2881;192.168.0.213:2882:2881;192.168.0.162:2882:2881' -c 20201013 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,row_purge_thread_count=1,net_thread_count=1,enable_syslog_recycle=True,enable_merge_by_turn=FALSE,cpu_count=16,location_refresh_thread_count=2,max_syslog_file_count=3,major_freeze_duty_time=Disable,__easy_memory_limit=1G,schema_history_expire_time=1d,merge_thread_count=1,writing_throttling_trigger_percentage=70,_max_trx_size=2M,workers_per_cpu_quota=2,enable_separate_sys_clog=0,datafile_disk_percentage=90,__min_full_resource_pool_memory=536870912,system_memory=5G,memory_chunk_cache_size=128M,trace_log_slow_query_watermark=10s,writing_throttling_maximum_duration=1m,switchover_process_thread_count=1,datafile_size=40G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
$ ps -ef|grep observer
$ netstat -ntlp |grep observer
$ df -h |egrep home\|data
$ cat log/observer.log

备份:
‘192.168.110.192:2882:2881;192.168.110.199:2882:2881;192.168.110.18:2882:2881’ -c 20201109 -n obdemo -o “memory_limit=24G,cache_wash_threshold=1G,row_purge_thread_count=1,net_thread_count=1,enable_syslog_recycle=True,enable_merge_by_turn=FALSE,cpu_count=16,location_refresh_thread_count=2,max_syslog_file_count=3,major_freeze_duty_time=Disable,__easy_memory_limit=1G,schema_history_expire_time=1d,merge_thread_count=1,writing_throttling_trigger_percentage=70,_max_trx_size=2M,workers_per_cpu_quota=2,enable_separate_sys_clog=0,datafile_disk_percentage=90,__min_full_resource_pool_memory=536870912,system_memory=5G,memory_chunk_cache_size=128M,trace_log_slow_query_watermark=10s,writing_throttling_maximum_duration=1m,switchover_process_thread_count=1,datafile_size=40G,minor_freeze_times=500,stack_size=1536K,disk_io_thread_coun=1,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2”

报错:

  1. error while loading shared libraries:libssl.so.10:cannot open shared object file:No such file or directory
    解答:修复一下软链接
    cd /lib/x86_64-linux-gnu/
    sudo ln -s libssl.so.1.0.0 libssl.so.10
    sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值