1. OceanBase 3.x 版本安装浅谈
我是在 OceanBase 3.1.4 版本的时候开始尝试入手测试的。刚开始 OB 3.x 版本部署时,各种各样的部署方式着实是让我花了好多时间在上面。现在回想一下,大体有以下几个痛点:
- 采用在线部署方式,需要从官网下载单独的 obd 部署软件,然后配合 GitHub 上的配置文件一起使用,进行集群初始化;如果网络条件不是很好,那就需要耐心等待一会了;
- 如果没有外网访问条件,离线部署就需要到官网下载所有的软件包,上传到服务器上,然后用 obd 添加成本地镜像,方便 obd 部署时从本地查找 rpm 文件安装。
- 从官网下载全部的软件包(官网下载页面底下有灰色的“继续加载”按钮,一不小心就会导致下载的软件不够)
- 一个个上传到服务器,安装完后还要一个个处理掉(强迫症患者表示很难受)
- 需要自行将相关安装包添加到本地镜像
- 安装时需要自行配置镜像搜索方式,默认是开启互联网下载的,需要配置为 “local” 模式从本地查找
2. OceanBase 4.x 带来的安装变化
2.1 所有软件打包到一起
[admin@dbs06 ~]$ cd oceanbase-all-in-one/
[admin@dbs06 oceanbase-all-in-one]$ ls
bin conf obclient obd README.md rpms VERSION
[admin@dbs06 oceanbase-all-in-one]$ ls rpms
grafana-7.5.17-1.el7.x86_64.rpm obproxy-ce-4.0.0-5.el7.x86_64.rpm oceanbase-ce-libs-4.0.0.0-100000272022110114.el7.x86_64.rpm
obagent-1.2.0-4.el7.x86_64.rpm oceanbase-ce-4.0.0.0-100000272022110114.el7.x86_64.rpm prometheus-2.37.1-10000102022110211.el7.x86_64.rpm
- bin 目录下是一键安装脚本和环境变量,加快 All in One 软件安装,封装了一些默认的安装目录逻辑
- conf 下是一些可供参考的配置文件,您不再需要去官方文档或 GitHub 上翻找配置文件模版了
- obclient 是访问客户端
- obd 是黑屏部署工具,很好用
- rpms 是所有 rpm 包,包含 observer、obproxy、libs、obagent、grafana 和 prometheus 核心软件包
2.2 默认本地安装
软件包解压后,我们可以通过执行 bin 目录下的 install.sh 安装脚本一键进行安装,安装过程也不再像以前先从网络上下载了,因为软件都在本地了。我们通过 obd 的命令查看一下镜像的状态:
[admin@dbs06 ~]$ obd mirror list
+------------------------------------------------------------------+
| Mirror Repository List |
+----------------------------+--------+---------+------------------+
| SectionName | Type | Enabled | Update Time |
+----------------------------+--------+---------+------------------+
| oceanbase.community.stable | remote | False | 1970-01-01 08:00 |
| oceanbase.development-kit | remote | False | 1970-01-01 08:00 |
| local | local | - | 2022-11-24 12:36 |
+----------------------------+--------+---------+------------------+
Use `obd mirror list <section name>` for more details
从上面的镜像仓库状态可以看出,远程仓库都被 disable 了。
2.3 autodeploy 自动部署更方便
2.1 部分也提到了,安装包下面带有很多参考配置文件了,所以不再需要从网上找参考配置文件。作为一个强迫症患者,安装完软件后,我喜欢把安装包删掉(备份到固定的地方)。
虽然安装包删掉了,但是配置文件之类其实已经都部署到 admin 用户下面了,默认路径通常是 /home/admin/.oceanbase-all-in-one,如下:
[admin@dbs06 .oceanbase-all-in-one]$ ls
bin conf obclient obd README.md VERSION
[admin@dbs06 .oceanbase-all-in-one]$ pwd
/home/admin/.oceanbase-all-in-one
此时如果您想根据服务器配置自动生成单机或分布式集群,可以直接到目录 /home/admin/.oceanbase-all-in-one/obd/usr/obd/example/autodeploy 下找到两个示例文件然后做简单的修改:
- single-example.yaml - 单机部署配置文件
- distributed-with-obproxy-example.yaml - 分布式部署配置文件
[admin@dbs06 conf]$ obd cluster deploy obcluster -c single-example.yaml
install oceanbase-ce-4.0.0.0 for local ok
+--------------------------------------------------------------------------------------------+
| Packages |
+--------------+---------+------------------------+------------------------------------------+
| Repository | Version | Release | Md5 |
+--------------+---------+------------------------+------------------------------------------+
| oceanbase-ce | 4.0.0.0 | 100000272022110114.el7 | 42611dc51ca9bb28f36e60e4406ceea4a74914c7 |
+--------------+---------+------------------------+------------------------------------------+
Repository integrity check ok
Parameter check ok
Open ssh connection ok
Cluster status check ok
Initializes observer work home ok
Remote oceanbase-ce-4.0.0.0-100000272022110114.el7-42611dc51ca9bb28f36e60e4406ceea4a74914c7 repository install ok
Remote oceanbase-ce-4.0.0.0-100000272022110114.el7-42611dc51ca9bb28f36e60e4406ceea4a74914c7 repository lib check !!
Try to get lib-repository
Package oceanbase-ce-libs-4.0.0.0-100000272022110114.el7 is available.
install oceanbase-ce-libs-4.0.0.0 for local ok
Remote oceanbase-ce-libs-4.0.0.0-100000272022110114.el7-188919f8128394bf9b62e3989220ded05f1d14da repository install ok
Remote oceanbase-ce-4.0.0.0-100000272022110114.el7-42611dc51ca9bb28f36e60e4406ceea4a74914c7 repository lib check ok
obcluster deployed
[admin@dbs06 conf]$ obd cluster list
+------------------------------------------------------------------+
| Cluster List |
+-----------+------------------------------------+-----------------+
| Name | Configuration Path | Status (Cached) |
+-----------+------------------------------------+-----------------+
| obcluster | /home/admin/.obd/cluster/obcluster | deployed |
+-----------+------------------------------------+-----------------+
从上面可以看出,集群初始化,简单方便,这里大家需要注意,autodeploy 和 deploy 是有区别的,采用 autodeploy 很省心,obd 会自动帮忙计算很多系统参数,最大化利用服务器资源;当然缺点也很明显,缺少了一些手工调优的优势。总体来说,原则上还是建议大家 autodeploy,先上手再调优,不要操之过急。
3. 写在最后
通过上面两章内容对 3.x 和 4.x 版本的安装部署比较,我们可以看到从 OB 4.0 开始,提供了一体化安装包,真正的做到了把简单留给用户。
使用 OB 4.0 一体化安装包后,您的安装可以简化为:一次下载、一次上传、一次安装、一次部署。
如果大家感兴趣,可以一起上手测一下,告别繁琐的下载步骤、到处找配置文件的烦恼、不能上网自己倒腾离线安装的窘境。从 OceanBase All in One 一体化安装包开始,做个清清爽爽的打工人,体验单机一体化分布式数据库。