OceanBase安装部署

AI 摘要 / TL;DR

OceanBase安装部署 来源: https://www.ucloud.cn/yun/129970.html 作者: IT那活儿 发布日期: 发布于2023 01 11 13:20 OceanBase安装部署 近些年国产数据库迎来了跨越式发展,大家对国产数据库的关注度也越来越高。笔者近期正好研究阿里oceanbase

来源: https://www.ucloud.cn/yun/129970.html 作者: IT那活儿 发布日期: 发布于2023-01-11 13:20

OceanBase安装部署

近些年国产数据库迎来了跨越式发展,大家对国产数据库的关注度也越来越高。笔者近期正好研究阿里oceanbase数据库,整理ob的安装部署操作步骤,分享给大家。

一、准备服务器

服务器类型数量功能最低配置
OCP管控服务器1台32C,128G,1.5TB 存储
OceanBase计算服务器3台32C,128G,1.2TB 存储

二、准备安装包

文件名说明
t-oceanbase-antman-1.3.6-1919351.alios7.x86_64.rpmOTA(OceanBase自动化步骤工具)
OBP173_20200603_1923.tar.gzOBProxy镜像文件,只给OCP用,放在/root/t-oceanbase-antman下
OB2251_x86_20200827_2038.tarOB数据库镜像文件,只给OCP做元数据用,放在/root/t-oceanbase-antman/下
oceanbase-2.2.73-20201117154111.el7.x86_64.rpmOceanBase 软件RPM包文件
obproxy-1.7.6.2-1903614.el7.x86_64.rpmOBProxy 软件RPM包文件
obclient-1.1.8-20200408152115.el7.alios7.x86_64.rpmOceanBase客户端RPM包
dbcat-1.1.6-SNAPSHOT (1).tar.gz用于异构数据库表结构转换
2.4.3-1905047.tar.gzOCP2.4.3版本的docker镜像放在/root/t-oceanbase-antman/下
oceanbase-client-1.1.1.jarOceanBase Java连接驱动,支持Oracle和MySQL实例

实验架构

三、安装规划

主机主机名IP****地址
OCPocpserver192.168.3.2
observer1ob4192.168.3.3
observer2ob5192.168.3.4
observer3ob6192.168.3.5

OCP主机磁盘分配方案建议

载点大小(GB用途磁盘格式
/home100各组件运行日志盘建议ext4
/data/log1200 (内存大小的3倍)OCP元数据库OB日志盘建议ext4
/data/1100(取决于所需存储的数据大小)OCP元数据库OB数据盘建议ext4
/docker200docker根目录建议ext4
总计600+其它系统空间,总数650+G

Observer主机磁盘分配方案建议

载点大小(GB用途磁盘格式
/home100建议ext4
/data/log1500G(无刚性需求,看保留日志要求)OCP元数据库OB日志盘建议ext4
/data/11TB(取决于存储的数据大小,现阶段在安装过程中有一个检查要求/data/1必须大于100G,并且必须是一个独立的挂载点)OCP元数据库OB数据盘建议ext4
总计1.6 TB+其它系统空间,总数 约2TB

四、前期配置

4.1 所有主机配置主机名及/etc/hosts

hostnamectl set-hostname ocpserver hostnamectl set-hostname ob4 hostnamectl set-hostname ob5 hostnamectl set-hostname ob6 配置/etc/hosts文件 ocpserver        192.168.3.2 ob4        192.168.3.3 ob5        192.168.3.4 ob6        192.168.3.5

4.2 所有主机关闭防火墙与selinux

1) 关闭防火墙,并开机禁用 systemctl stop firewalld.service systemctl disable firewalld.service systemctl status firewalld.service 2) 禁用selinux sed -i s@SELINUX=enforcing@SELINUX=disabled@g /etc/selinux/config grep "^SELINUX=" /etc/selinux/config 3) 重启 reboot 4) 检查 systemctl status firewalld.service iptables -L getenforce

4.3 所有主机配置NTP

vi /etc/ntp.conf 注释文件中的以下4行 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst 在末行添加NTP服务器IP地址,我这里是本地NTP服务器,就使用OCP主机最为时钟源 server 192.168.3.2 重启NTP服务,预计5~10分钟就会同步,可手动拉同步 systemctl restart ntpd.service ntpq -p --检查时间误差 clockdiff 192.168.3.3 clockdiff 192.168.3.4 clockdiff 192.168.3.5

4.4 允许root SSH

vi /etc/ssh/sshd_config 注释 #PermitRootLogin no systemctl restart sshd.service

4.5 关闭numa

判断系统是否开启了numa 功能 grep -i numa /var/log/dmesg 如果出现了: "No NUMA configuration found" ,则证明是关闭了numa 功能,如果是其他内容,则为开启了numa --关闭numa vi /etc/default/grub 在 GRUB_CMDLINE_LINUX 参数的末尾增加 :numa=off [root@ob6 clonescripts]# vi /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed s, release .*$,,g /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg0/lv_root rd.lvm.lv=vg0/lv_swap rhgb quiet numa=off elevator=deadline numa=off" GRUB_DISABLE_RECOVERY="true" --重建grub 配置文件 grub2-mkconfig -o /boot/grub2/grub.cfg --重启操作系统 reboot

五、服务器环境配置

5.1 所有节点部署自动化部署工具OTA

所有节点需要部署OTA

rpm –ivht-oceanbase-antman-1.3.6-1919351.alios7.x86_64.rpm

安装完成后会在/root下创建一个t-oceanbase-antman目录

把安装包移动到/root/t-oceanbase-antman目录下

--只在OCP节点执行

mvOB2251_x86_20200827_2038.tarOBP173_20200603_1923.tar.gz 2.4.3-1905047.tar.gz/root/t-oceanbase-antman/

5.2  为每台主机都添加admin用户

cd/root/t-oceanbase-antman/clonescripts

./clone.sh–h  获取帮助

各个选项后面都有自己的解释

./clone.sh–u 添加admin用户

默认密码是**admin, 建议立刻修改

5.3  修改目录属主属组

chownadmin:admin –R /data/1

chownadmin:admin –R /data/log1

5.4 对每台服务器的操作系统内核进行设置

--OCP主机,注意-r指定角色

cd/root/t-oceanbase-antman/clonescripts

./clone.sh-r ocp –c

其实也可以直接修改该目录下的clone.conf文件里面的角色定义machineRole=ocp选项。

--OB主机

cd/root/t-oceanbase-antman/clonescripts

./clone.sh-r ob -c

5.5 安装依赖包

提前配置好yum或者epel源

--OCP主机,注意-r指定角色

cd/root/t-oceanbase-antman/clonescripts

./clone.sh-r ocp –m

--OB主机

cd/root/t-oceanbase-antman/clonescripts

./clone.sh-r ob –m

5.6 在OCP服务器安装docker

cd/root/t-oceanbase-antman/clonescripts

./clone.sh–i

5.7 部署前环境检查

统一检查脚本

cd/root/t-oceanbase-antman/clonescripts

./clone.sh–t

也可以使用如下检查方法:

shprecheck.sh -m ocp      ocp主机使用

shprecheck.sh –m ob      ob主机使用

关注failed项,处理好后继续检查,直到所有的检查项都通过。

六、部署OCP

OCP有单节点和三节点两种部署模式,这里的环境使用单节点模式。

6.1 生成OCP配置文件

cd/root/t-oceanbase-antman

bashinit_obcluster_conf.sh

填写正确OCP服务器的ip、root和admin用户的密码。单节点的负载均衡模式是 none

其实就是在/root/t-oceanbase-antman目录下生成了一个obcluster.conf文件。

说明:

也可以直接去拷贝obcluster.conf的配置模板文件

cd/root/t-oceanbase-antman

cp/root/t-oceanbase-antman/config/obcluster.conf.template.

mvobcluster.conf.template obcluster.conf

编辑好如下标红需要填写的选项:

## obcluster.conf ## SINGLE_OCP_MODE=TRUE ################################   根据环境必须修改 / MUST CHANGE ACCORDING ENVIRONMENT   ################################ ############  填写机器IP和root/admin密码 / Edit Machine IP and Password Of root/admin  ############ ZONE1_RS_IP=192.168.3.2 OBSERVER01_ROOTPASS=root_password OBSERVER01_ADMINPASS=admin_password SSH_PORT=22 ############  填写负载均衡配置 / Edit Configuration of Load Balance  ############ # lb_mode: dns/f5/none, default: dns for 3 ocp, none for 1 ocp lb_mode=none ###### 选择dns模式,请填写DNS基本配置 / Edit Configuration of DNS When Using DNS LB ###### DNS_ZONE_NAME=oceanbase.com OCP_DNS_VPORT=80 ob_dns_docker_image_package=ob_dns.tar.gz ob_dns_image_REPO=reg.docker.alibaba-inc.com/antman/ob_dns ob_dns_image_TAG=OBDNS_x86_20200927_1617 ###### 选择f5模式,请填写F5等外部负载均衡配置 / Edit Configuration of F5 When Using External LB ###### OBPROXY_F5_VIP=xxx.xxx.xxx.xxx OBPROXY_F5_VPORT=3306 OCP_F5_VIP=xxx.xxx.xxx.xxx OCP_F5_VPORT=80 ############  根据服务器CPU、内存设置容器资源编排 / Allocate Container Resources According To Server  ############ OB_docker_cpus=32 OB_docker_memory=128G OCP_docker_cpus=16 OCP_docker_memory=32G OBProxy_docker_cpus=8 OBProxy_docker_memory=10G ############  填写OCP各组件容器的版本信息 / Edit Docker Image, Repo And Tag of OCP Components  ############ # OB docker docker_image_package=OB2251_x86_20200827_2038.tar OB_image_REPO=reg.docker.alibaba-inc.com/antman/ob-docker OB_image_TAG=OB2251_x86_20200827_2038 # OCP docker ocp_docker_image_package=2.4.3-1905047.tar.gz OCP_image_REPO=reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one OCP_image_TAG=2.4.3-1905047 # OBPROXY docker obproxy_docker_image_package=OBP173_20200603_1923.tar.gz obproxy_image_REPO=reg.docker.alibaba-inc.com/antman/obproxy obproxy_image_TAG=OBP173_20200603_1923 ############  如果准备部署OMS,请填写OMS基本配置 / Edit Configuration Of OMS When Deploying OMS  ############ OMS_IP=xxx.xxx.xxx.xxx oms_docker_image_package=oms.feature_1.3.2.202005152240.tar.gz oms_image_REPO=acs-reg.alipay.com/oceanbase/oms-all-in-one oms_image_TAG=feature_1.3.2 ############  如果准备部署ODC,请填写ODC基本配置 / Edit Configuration Of ODC When Deploying ODC  ############ odc_docker_image_package=odc220.tar.gz ODC_image_REPO=acs-reg.alipay.com/oceanbase/obodc ODC_image_TAG=2.2.0 ######################################################################################################################## ################################   ADVANCED SETTINGS / 基本不用修改  ################################ ############  OB、OBPROXY、OCP 高级配置,基本不用修改 / OB, OBPROXY, OCP ADVANCED SETTINGS  ############ ######  自动配置,无需修改 / AUTO-CONFIGURATION ###### OBPROXY_VIP=xxx.xxx.xxx.xxx OBPROXY_VPORT=3306 OCP_VIP=xxx.xxx.xxx.xxx OCP_VPORT=80 ######  自动配置,无需修改 / AUTO-CONFIGURATION ###### OBSERVER01_HOSTNAME=OCP_META_SERVER_1 ZONE1_NAME=META_OB_ZONE_1 ##there must be more than half zone within same region ZONE1_REGION=OCP_META_REGION MYSQL_PORT=2881 RPC_PORT=2882 OCP_VERSION=xxx # for observer docker ###### TODO 是否去掉 ###### physical_data_dir=/data/1 physical_log_dir=/data/log1 docker_data_dir=/data/1 docker_log_dir=/data/log1 # for install observer rpm and start observer process obcluster_name=obcluster cluster_id=100000 datafile_disk_percentage=90 # for backup nfs info BACKUP_ENABLE=FALSE physical_backup_dir=/obbackup docker_backup_dir=/obbackup # for ocp docker OCP_PORT=8080 OCP_container_name=ocp OCP_METADB_USERNAME=root@ocp_meta OCP_MONITORDB_USERNAME=root@ocp_monitor OCP_OBPROXYDB_USERNAME=root@obproxy OCP_METADB_DBNAME=ocp OCP_MONITOR_DBNAME=ocp_monitor IDC_ROOM=am171 DEFAULT_REGION=HANGZHOU # for ob dns & nginx OCP_OBPROXY_DNS_NAME=ocp-obproxy OCP_DNS_NAME=ocp ob_dns_container_name=ob_dns DNS_MASTER_IP=$ZONE1_RS_IP DNS_THIRD_IP=$ZONE3_RS_IP NGINX_MASTER_IP=$ZONE1_RS_IP NGINX_PORT=85 # obproxy and paramters OBPROXY_PORT=2883 obproxy_container_name=obproxy OBPROXY_APP_NAME_ARG=AntObproxy OBPROXY_CONFIG_SERVER_URL="http://${OCP_VIP}:${OCP_VPORT}/services?Action=GetObProxyConfig&User_ID=admin&UID=alibaba" ############  OMS 高级配置,基本不用修改 / OMS ADVANCED SETTINGS ############ OMS_PORT=8088 OMS_METADB_USER=root OMS_METADB_TENANT=oms_tenant OMS_METADB_DBNAME=oms_meta oms_container_name=oms oms_docker_cpus=12 oms_docker_memory=24G ############  ODC 高级配置,基本不用修改 / ODC ADVANCED SETTINGS ############ ODC_PORT=8989 ODC_METADB_USER=root ODC_METADB_TENANT=odc_meta ODC_METADB_DBNAME=odc odc_container_name=odc odc_docker_cpus=4 odc_docker_memory=8G ########################################################################################################################

主要是OCPIP地址,root密码**,admin用户的密码,还有OB****、OCPOBProxy对应的docker文件已经dockerTAG(如果不知道TAG,可以使用dockerload –i xxx.tar)查看**

6.2  开始安装OCP

先获取一下帮助

/root/t-oceanbase-antman

./install.sh–h

可以看到OCP 的安装需要8 steps 。

下面执行OCP 安装

#./install.sh -i 1-8     <-------执行1-8 步

如果中间失败,可以根据提示解决问题,然后再次从失败的step再次执行。

(如果要回退或卸载OCP**,使用****./install.sh -c 1-X )**

建议一步一步来

./install.sh-i 1

./install.sh-i 2

./install.sh-i 3 (这一步需要点时间)

..........

./install.sh-i 8

安装过程中要注意日志是否有报错,看到最后如下信息,说明整个过程安装成功

6.3 部署后检查

OCP的访问地址:http:// :8080

admin用户初始化密码root

打开 ocp的web 管理页面后,就有一个集群和 3个租户存在。

七、在OCP上部署OceanBase集群

7.1  添加主机

首先添加主机,将 3台 oceanbase服务器主机添加进来。

这里可以设置服务器型号,机型—>新增机型(observer)所在机房—>新增机房(hankou)和区域(wuhan)等。

这里是不支持中文的。

注意:

这里的admin的初始密码是在各observer配置文件

/root/t-oceanbase-antman/clonescripts/clone.conf****里面的。

将三个observer服务器全部加进来,直到状态变为空闲。可以点击任务按钮,观看进度。

7.2  创建OceanBase集群

创建 OB集群,按照要求的填写好相应信息。

密码需要设置复杂一点,或者使用随机生成,密码需要记住,后面登录维护会使用到该密码。

OB版本上传完成。

创建集群的时候设置primary zone的优先级,这里设置的是zone1:zone2:zone3

确认好之后点击页面的提交按钮

等待状态变为空闲状态。

新建集群,这里OB的版本是要上传的。

手动填写集群名称,随机生成密码(要记住),和选择OB版本

点击提交

可以看到有个任务进度和查看任务详情,点击查看任务详情

子任务失败了,可以点击重试按钮。

每一步都可以查看其安装日志

集群初始化

等待任务完成之后,查看主机状态,为在线

搭建完成。

八、创建租户

8.1  定义资源规格

选择集群,租户名称要自定义,新增Unit规格,范围上下给一样的。

管理员密码选择随机生成,租户这里是Oracle租户,字符编码是GBK,点击提交

8.2 选择租户类型

点击提交

租户创建完成。

九、连接连接

9.1  ODC连接测试

已有数据,可以使用!

9.2  obclient连接测试

租户创建完成。

END