暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

「更易用的OceanBase」安装 OceanBase Deployer 部署工具 OBD 快速部署OB

原创 shunwah 2022-10-30
1730

作者:马顺华

从事运维管理工作多年,目前就职于某科技有限公司,熟悉运维自动化、OceanBase部署运维、MySQL 运维以及各种云平台技术和产品。并已获得OceanBase认证OBCA、OBCP证书。

image.png

OBD 全称是 OceanBase Deployer,是 OceanBase 社区版的命令行下自动化部署软件。 OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。根据中控机器能否连接公网,提供两个安装方法:离线和在线。二选一。

一、使用 RPM 包(Centos 7 及以上)(离线)安装

首先在中控机上部署 OBD 软件。如果中控机不能上网,则需要提前下载好 OBD 、 OBSERVER 和 OBPROXY 相关软件包。

1、下载相关软件包

image.png

方式一,阿里云镜像站软件包地址下载,请根据 OS 版本自行选择。

阿里云镜像站 https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/

方式二,wget下载

[root@CAIP131 soft]# ls
ocp-ce-3.1.1-bp1  Python-3.7.2.tar.xz  tsar  tsar-master  wget-log
[root@CAIP131 soft]# wget https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/ob-deploy-1.2.1-9.el8.x86_64.rpm
--2022-10-31 10:20:44--  https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/ob-deploy-1.2.1-9.el8.x86_64.rpm
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 27.128.222.203, 103.15.99.114, 27.128.222.198, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|27.128.222.203|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33472368 (32M) [application/x-rpm]
Saving to: ‘ob-deploy-1.2.1-9.el8.x86_64.rpm’

100%[=====================================================================================================>] 33,472,368   326KB/s   in 1m 43s 

2022-10-31 10:22:27 (318 KB/s) - ‘ob-deploy-1.2.1-9.el8.x86_64.rpm’ saved [33472368/33472368]

[root@CAIP131 soft]# ls
ob-deploy-1.2.1-9.el8.x86_64.rpm  ocp-ce-3.1.1-bp1  Python-3.7.2.tar.xz  tsar  tsar-master  wget-log
[root@CAIP131 soft]# 

image.png

2、上传文件到中控机上临时/soft目录。

[root@CAIP131 soft]# ls
gcc-9.3.0         ob-deploy-1.5.0-12.el8.x86_64.rpm  Python-3.9.5      tsar         wget-log
gcc-9.3.0.tar.gz  ocp-ce-3.1.1-bp1                   Python-3.9.5.tgz  tsar-master
[root@CAIP131 soft]# 

image.png

3、离线安装 OBD

[root@CAIP131 soft]# rpm -ivh ob-deploy-1.5.0-12.el8.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:ob-deploy-1.5.0-12.el8           ################################# [100%]
Installation of obd finished successfully
Please source /etc/profile.d/obd.sh to enable it
[root@CAIP131 soft]# 

image.png

4、让配置生效

Please source /etc/profile.d/obd.sh to enable it
[root@CAIP131 soft]# source /etc/profile.d/obd.sh
[root@CAIP131 soft]# 

image.png
ob
5、查看安装目录
ob-deploy 软件默认安装在 /usr/obd 下。不同版本可能有点变化。
可以通过下面命令查看位置。

[root@CAIP131 soft]# rpm -ql `rpm -qa|grep ob-deploy`
[root@CAIP131 soft]# which obd
/bin/obd

image.png
但是 OBD 工作的文件都在当前用户 HOME 目录下:~/.obd/


image.png

6、将软件包加到离线仓库
首先要删除远程仓库,使用下面命令。 注意:下面命令要在部署运行 OBD 的操作系统用户下操作。建议使用 admin 。

[root@CAIP131 ~]# /bin/rm -rf ~/.obd/mirror/remote/OceanBase.repo

image.png
然后将前面的软件包都复制到本地仓库,使用下面命令。

[root@CAIP131 soft]# obd mirror clone ob-deploy-1.5.0-12.el8.x86_64.rpm
name: ob-deploy
version: 1.5.0
release:12.el8
arch: x86_64
md5: da0a5e025b775ecce6b11b5a536624dd7f578eba
add ob-deploy-1.5.0-12.el8.x86_64.rpm to local mirror

image.png
查看仓库的 RPM 列表。

[root@CAIP131 soft]# obd mirror list local
+-----------------------------------------------------------------------------------+
|                                 local Package List                                |
+-----------+---------+---------+--------+------------------------------------------+
| name      | version | release | arch   | md5                                      |
+-----------+---------+---------+--------+------------------------------------------+
| ob-deploy | 1.5.0   | 12.el8  | x86_64 | da0a5e025b775ecce6b11b5a536624dd7f578eba |
+-----------+---------+---------+--------+------------------------------------------+

image.png

二、安装 OBD 软件(在线)

首先在中控机上部署 OBD 软件。如果中控机能上网,则可以直接添加 OceanBase 的仓库,使用 YUM 安装。

1、安装依赖

[root@CAIP131 ~]# yum install -y yum-utils

image.png

2、增加 yum 镜像源

[root@CAIP131 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
adding repo from: https://mirrors.aliyun.com/oceanbase/OceanBase.repo
grabbing file https://mirrors.aliyun.com/oceanbase/OceanBase.repo to /etc/yum.repos.d/OceanBase.repo
repo saved to /etc/yum.repos.d/OceanBase.repo
[root@CAIP131 ~]# 

image.png

3、安装 OBD

[root@CAIP131 ~]# yum install -y ob-deploy

image.png

4、查看一下 OceanBase.repo 内容。

[root@CAIP131 ~]# cat /etc/yum.repos.d/OceanBase.repo

输出:

[root@CAIP131 ~]# cat /etc/yum.repos.d/OceanBase.repo
# OceanBase.repo

[oceanbase.community.stable]
name=OceanBase-community-stable-el$releasever
baseurl=http://mirrors.aliyun.com/oceanbase/community/stable/el/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/oceanbase/RPM-GPG-KEY-OceanBase

[oceanbase.development-kit]
name=OceanBase-development-kit-el$releasever
baseurl=http://mirrors.aliyun.com/oceanbase/development-kit/el/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/oceanbase/RPM-GPG-KEY-OceanBase
[root@CAIP131 ~]# 

image.png

三、使用 OBD 快速部署启动 OceanBase 数据库

安装 OBD 后,您可以使用 root 用户执行下文命令快速启动本地单节点 OceanBase 数据库。 在此之前您需要确认以下信息:
当前用户为 root。

2882 和 2883 端口没有被占用。

您的机器内存不低于 8 G。

您的机器 CPU 数目不低于 2。

此处为了方便使用 root,OBD 和 OceanBase 数据库没有对运行用户做出任何限制,我们不建议生产环境中直接使用 root。

1、部署单机版OB

运行以下命令部署集群,其中,参数 deploy_name 为部署集群名称,可以理解为配置文件的别名。此命令会检查 home_path 和 data_dir 指向的目录是否为空。若目录不为空,则报错。此时可以加上 -f 选项,强制清空。在您执行了 obd cluster deploy 命令之后,OBD 将检查您的目标机器是否有 OceanBase 数据库安装包。如果没有安装包,OBD 将自动从 yum 源获取。如果您的机器不能访问公网,您可以从 OceanBase 官网下载安装包。

obd cluster deploy <deploy_name> -c <deploy_config_path>
部署使用命令:obd cluster deploy [集群名] -c 集群配置文件或目录 。

[admin@obce00 ~]$ obd cluster deploy obce-single -c obce-single.yaml
obd cluster deploy c1 -c example/mini-local-example.yaml
这里的集群名是配置文件在 OBD 里的唯一标识,可以跟配置文件中的集群名相同,也可以跟文件名相同,不作要求。

OBD 针对不同的部署场景提供了不同的配置文件。这些配置文件示例放在目录 /usr/obd/example/ 下。请根据您的资源条件选择正确的配置文件。

[root@CAIP131 example]# obd cluster deploy c1 -c mini-local-example.yaml

image.png

2、查看部署状态

[admin@obce00 ~]$ obd cluster list

[root@CAIP131 example]# obd cluster list
+------------------------------------------------+
|                  Cluster List                  |
+------+-----------------------+-----------------+
| Name | Configuration Path    | Status (Cached) |
+------+-----------------------+-----------------+
| c1   | /root/.obd/cluster/c1 | deployed        |
+------+-----------------------+-----------------+
[root@CAIP131 example]# 

image.png

3、启动和初始化集群boostrap

上一步骤中 deploy 操作只安装了软件和准备初始化目录,还需使用 obd cluster start 命令启动集群节点并初始化集群。

[root@CAIP131 example]# obd cluster list
+------------------------------------------------+
|                  Cluster List                  |
+------+-----------------------+-----------------+
| Name | Configuration Path    | Status (Cached) |
+------+-----------------------+-----------------+
| c1   | /root/.obd/cluster/c1 | deployed        |
+------+-----------------------+-----------------+
[root@CAIP131 example]# obd cluster start c1
Get local repositories ok
Search plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer ok
[WARN] (127.0.0.1) clog and data use the same disk (/)

Start observer ok
observer program health check ok
Connect to observer ok
Initialize cluster
Cluster bootstrap ok
Wait for observer init ok
+---------------------------------------------+
|                   observer                  |
+-----------+---------+------+-------+--------+
| ip        | version | port | zone  | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.4   | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+

c1 running

image.png
第一次运行 start 命令会对集群进行初始化(boostrap),以后再使用 start 命令就只会启动集群中节点进程。

此处提示WARN
[WARN] (127.0.0.1) clog and data use the same disk (/)
不建议安装目录和数据目录在同一硬盘同一目录,测试可以忽略,生产环境需要将安装目录和数据日志目录分开存放。
image.png

4、再次检查

[root@CAIP131 example]# obd cluster list
+------------------------------------------------+
|                  Cluster List                  |
+------+-----------------------+-----------------+
| Name | Configuration Path    | Status (Cached) |
+------+-----------------------+-----------------+
| c1   | /root/.obd/cluster/c1 | running         |
+------+-----------------------+-----------------+

image.png

5、使用 MySQL 客户端链接到到 OceanBase 数据库。

[root@CAIP131 example]# mysql -h127.1 -uroot -P2881
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3221487706
Server version: 5.7.25 OceanBase 3.1.4 (r10000092022071511-b4bfa011ceaef428782dcb65ae89190c40b78c2f) (Built Jul 15 2022 11:45:14)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

image.png

6、查询数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| oceanbase          |
| information_schema |
| mysql              |
| SYS                |
| LBACSYS            |
| ORAAUDITOR         |
| test               |
+--------------------+
7 rows in set (0.00 sec)

mysql> 

image.png

四、OBD 常用命令

OBD 有多级命令,您可以在每个层级中使用 -h/–help 选项查看子命令的帮助信息。

OBD 集群命令操作的最小单位为一个部署配置。部署配置是一份 yaml 文件,里面包含各个整个部署的全部配置信息,包括服务器登录信息、组件信息、组件配置信息和组件服务器列表等。

在使用 OBD 启动一个集群之前,您需要先注册这个集群的部署配置到 OBD 中。您可以使用 obd cluster edit-config 创建一个空的部署配置,或使用 obd cluster deploy -c config 导入一个部署配置。

1、obd cluster list

显示当前 OBD 内注册的全部集群(deploy name)的状态。

[root@CAIP131 example]# obd cluster list
+------------------------------------------------+
|                  Cluster List                  |
+------+-----------------------+-----------------+
| Name | Configuration Path    | Status (Cached) |
+------+-----------------------+-----------------+
| c1   | /root/.obd/cluster/c1 | running         |
+------+-----------------------+-----------------+

image.png

2、obd cluster display

展示指定集群的状态。

[root@CAIP131 example]# obd cluster display c1
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
+---------------------------------------------+
|                   observer                  |
+-----------+---------+------+-------+--------+
| ip        | version | port | zone  | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.4   | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+

[root@CAIP131 example]# 

image.png
参数 c1 为部署集群名,可以理解为配置文件的别名。

3、obd cluster reload

重载一个运行中集群。当您使用 edit-config 修改一个运行的集群的配置信息后,可以通过 reload 命令应用修改。
image.png

[root@CAIP131 example]# obd cluster edit-config c1
Search param plugin and load ok
Search param plugin and load ok
Parameter check ok
Deploy "c1" config unchange
[root@CAIP131 example]# obd cluster reload c1
Deploy config is UNCHNAGE

image.png

4、obd cluster stop

停止一个运行中的集群。

[root@CAIP131 example]# obd cluster reload c1
Deploy config is UNCHNAGE
[root@CAIP131 example]# obd cluster stop c1
Get local repositories ok
Search plugins ok
Open ssh connection ok
Stop observer ok
c1 stopped
[root@CAIP131 example]# 

image.png

5、obd cluster destroy

删除并销毁已部署的集群。如果集群处于运行中的状态,该命令会先尝试执行 stop,成功后再执行 destroy。

[root@CAIP131 example]# obd cluster destroy c1 -f
Get local repositories ok
Search plugins ok
Open ssh connection ok
Cluster status check ok
observer work dir cleaning ok
c1 destroyed
[root@CAIP131 example]# 

image.png

快速部署OB出错

[root@CAIP131 ~]# obd cluster deploy c1 -c ./example/mini-local-example.yaml
[ERROR] copy error: [Errno 2] No such file or directory: './example/mini-local-example.yaml'
[ERROR] Failed to create deploy: c1. please check you configuration file
See https://open.oceanbase.com/docs/obd-cn/V1.4.0/10000000000436999 .

image.png

解决方法

OBD 针对不同的部署场景提供了不同的配置文件。这些配置文件示例放在目录 /usr/obd/example/ 下。请根据您的资源条件选择正确的配置文件,再次执行安装即可解决。
image.png

最后修改时间:2022-11-02 11:34:43
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论