# OceanBase安装部署

> 作者/来源: UCloud 运营管理员
> 发布时间: 2023-01-11T05:20:00.000Z
> 分类: 云主机
> 标签: AI, 数据库, Docker
> 原文链接: http://117.50.162.249:3000/yun/articles/912

---

# 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.rpm | OTA（OceanBase自动化步骤工具） |
| OBP173\_20200603\_1923.tar.gz | OBProxy镜像文件，只给OCP用，放在/root/t-oceanbase-antman下 |
| OB2251\_x86\_20200827\_2038.tar | OB数据库镜像文件，只给OCP做元数据用,放在/root/t-oceanbase-antman/下 |
| oceanbase-2.2.73-20201117154111.el7.x86\_64.rpm | OceanBase 软件RPM包文件 |
| obproxy-1.7.6.2-1903614.el7.x86\_64.rpm | OBProxy 软件RPM包文件 |
| obclient-1.1.8-20200408152115.el7.alios7.x86\_64.rpm | OceanBase客户端RPM包 |
| dbcat-1.1.6-SNAPSHOT (1).tar.gz | 用于异构数据库表结构转换 |
| 2.4.3-1905047.tar.gz | OCP2.4.3版本的docker镜像放在/root/t-oceanbase-antman/下 |
| oceanbase-client-1.1.1.jar | OceanBase Java连接驱动，支持Oracle和MySQL实例 |

**实验架构**

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_000.png)

### 

三、安装规划

|  |  |  |
| --- | --- | --- |
| **主机** | **主机名** | **IP****地址** |
| OCP | ocpserver | 192.168.3.2 |
| observer1 | ob4 | 192.168.3.3 |
| observer2 | ob5 | 192.168.3.4 |
| observer3 | ob6 | 192.168.3.5 |

**OCP主机磁盘分配方案建议**

|  |  |  |  |
| --- | --- | --- | --- |
| **载点** | **大小（****GB****）** | **用途** | **磁盘格式** |
| /home | 100 | 各组件运行日志盘 | 建议ext4 |
| /data/log1 | 200 (内存大小的3倍） | OCP元数据库OB日志盘 | 建议ext4 |
| /data/1 | 100（取决于所需存储的数据大小） | OCP元数据库OB数据盘 | 建议ext4 |
| /docker | 200 | docker根目录 | 建议ext4 |
| 总计 | 600+其它系统空间，总数650+G |  |  |

**Observer主机磁盘分配方案建议**

|  |  |  |  |
| --- | --- | --- | --- |
| **载点** | **大小（****GB****）** | **用途** | **磁盘格式** |
| /home | 100 |  | 建议ext4 |
| /data/log1 | 500G（无刚性需求，看保留日志要求） | OCP元数据库OB日志盘 | 建议ext4 |
| /data/1 | 1TB（取决于存储的数据大小，现阶段在安装过程中有一个检查要求/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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_001.png)

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

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

--只在OCP节点执行

mv**OB2251\_x86\_20200827\_2038.tarOBP173\_20200603\_1923.tar.gz** **2.4.3-1905047.tar.gz**/root/t-oceanbase-antman/

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_002.png)

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

cd/root/t-oceanbase-antman/clonescripts

./clone.sh–h  获取帮助

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_003.png)

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

./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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_004.png)

其实就是在/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    ######################################################################################################################## |

**主要是****OCP****的****IP****地址，****root****密码****,admin****用户的密码****,****还有****OB****、****OCP****、****OBProxy****对应的****docker****文件已经****docker****的****TAG****（如果不知道****TAG****，可以使用****dockerload –i xxx.tar****）查看**

**6.2  开始安装OCP**

先获取一下帮助

/root/t-oceanbase-antman

./install.sh–h

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_005.png)

可以看到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

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_006.png)

**6.3 部署后检查**

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

admin用户初始化密码root

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_007.png)

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_008.png)

七、在OCP上部署OceanBase集群

####

#### **7.1  添加主机**

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

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

这里是不支持中文的。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_009.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_010.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_011.png)

**注意：**

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

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_012.png)

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_013.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_014.png)

#### **7.2  创建OceanBase集群**

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_015.png)

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_016.png)

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_017.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_018.png)

OB版本上传完成。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_019.png)

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

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

等待状态变为空闲状态。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_020.png)

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_021.png)

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

点击提交

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_022.png)

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_023.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_024.png)

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

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_025.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_026.png)

**集群初始化**

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_027.png)

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_028.png)

搭建完成。

八、创建租户

####

#### **8.1  定义资源规格**

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

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_029.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_030.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_031.png)

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

**8.2 选择租户类型**

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_032.png)

点击提交

租户创建完成。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_033.png)

九、连接连接

####

#### **9.1  ODC连接测试**

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_034.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_035.png)

已有数据，可以使用！

**9.2  obclient连接测试**

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_036.png)

租户创建完成。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_037.png)

END

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129970/images/129970_038.png)