OceanBase 作为一款分布式的数据库,有非常好的性能和扩展性,可以为企业用户提供了稳定可靠,性能水平可扩展的服务,对于广大的开发者来说,想要近距离的去体验往往会遇到各种问题,最终从入门到放弃,本篇文章将以大多数开发者常用的环境为基础,介绍快速尝试 OceanBase 的方法。
一、环境准备
1. 硬件准备
OceanBase 从 4.0 版本开始进行了架构的升级,进一步降低了对资源的占用,按照最新的文档要求,最少只需要2核10GB以上的资源,因为磁盘会进行预分配,剩余的可用磁盘空间要保证在内存的6倍以上,以目前一般的开发机来说,比较容易达到最低的资源要求。
2. 系统要求
OceanBase 目前只提供了 Linux 安装包,可以运行在大部分的服务器环境,但是作为开发者,常用的开发机一般是 Windows 系统或者 Mac 系统,这种情况可以有两种选择,安装虚拟机,虚拟出一个 Linux 系统,或者通过 Docker 拉起一个 Linux 系统的容器,因为 Docker 对于系统的资源占用上相对较少,本文就介绍 Docker 的方式。
不同操作系统安装 Docker 的方法,可以参考以下链接:
- Mac:https://docs.docker.com/desktop/install/mac-install/
- Windows:https://docs.docker.com/desktop/install/windows-install/
- Linux:https://docs.docker.com/desktop/install/linux-install/
以 Mac 系统为例,安装的 Docker 程序带有图形化的管理页面,Windows 的程序也是类似的。
首先要确保给 Docker 分配了大于前面提到的最小要求的资源,可以参考下方的视频:
Docker 程序启动之后,在命令行中通过以下命令验证 Docker 环境可用:
docker ps -a
命令可以正常执行,说明 Docker 环境准备成功,可以顺利的进行下一步。
二、使用 Docker 快速部署 OceanBase
Docker 环境准备好之后,就可以在主机上启动容器了,恰好 OceanBase 提供了单机版的镜像,完美适用于快速体验的场景。
1. 拉取镜像
OceanBase 的单机版镜像 oceanbase/oceanbase-ce, 按照版本以不同的 tag 划分, 最新的是 4.0.0.0 版本,latest 默认对应的是最新发布的版本,体验最新版本,可以直接使用 latest 作为 tag,或者不写 tag。
docker pull oceanbase/oceanbase-ce
通过 Docker 命令可以查看到镜像的信息,说明镜像拉取成功。
2. 启动单节点 OceanBase 容器
OceanBase 镜像提供了两个可以设置的环境变量:
作为快速体验的环境,可以设置 MINI_MODE 为 true 以减少资源的占用,使用以下命令拉起 oceanbase 容器。
docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE='true' -d oceanbase/oceanbase-ce
OceanBase 启动大约需要 2 分钟左右时间,当容器日志出现 boot success! 时,说明 OceanBase 已经启动成功。
3. 动手体验 OceanBase
在 OceanBase 的 Docker 容器中还自带了常用的一些工具,在部署完之后可以直接用来做一些验证。
使用以下命令可以使用 sys 租户连接到 OceanBase 数据库:
docker exec -it oceanbase-ce ob-mysql sys
连接之后通过一些简单的查询,可以看到部署了一个单节点的集群,使用的是 127.0.0.1 作为 ip 地址,并且创建了一个名为 test 的租户。
使用以下命令可以使用 test 租户连接到 OceanBase 数据库:
docker exec -it oceanbase-ce ob-mysql root # 使用 root 账号
docker exec -it oceanbase-ce ob-mysql test # 使用 test 账号
可以看到test 租户下又创建了一个 test 用户。
OceanBase 的镜像中还提供了sysbench工具,可以使用以下命令对 OceanBase 作 sysbench 测试:
docker exec -it oceanbase-ce obd test sysbench obcluster
可以看到测试的一些统计结果,由于是在个人的开发电脑上,具体的性能数据仅能作为参考。
完整的步骤可以参考以下视频:
📎deploy_ob_using_docker.mov
三、使用 OBD 快速部署 OceanBase
使用 Docker 方式部署 OceanBase 简单快速,但是仅提供了两个可以配置的选项,甚至连集群名都无法配置,爱折腾的各位开发者们肯定不满足于此。
这部分我们会用 OBD来部署 OceanBase, 并且做一些自定义的修改,更能增加一些互动的感觉,OBD 是 OceanBase 开源软件的安装部署工具,可以用来管理 OceanBase 所有的开源软件。
1. 系统准备
利用开发机上的 Docker 启动一个 Linux 系统的容器,通过这种方式来模拟 Linux 环境,这里我们使用 centos7 的镜像。
拉取镜像
docker pull centos:7
启动并登录到容器环境
docker run -it --name=centos-7 --entrypoint=/bin/bash centos:7
通过以上的步骤,现在我们已经成功的进入到了一个容器化的 Linux 环境中。
2. 准备 OBD 环境
OBD 可以直接以 rpm 包的方式安装,然后根据部署的配置,在线下载对应的 rpm 包,也可以通过 oceanbase-all-in-one 包的方式来安装,这种方式适用于网络不好的环境,会一起下载所有部署 OceanBase 需要的 rpm 包,本文以这种方式来进行安装。
安装命令很简单,只需要一条命令,就可以下载并且安装好 oceanbase-all-in-one。
bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"
安装完成之后,会在屏幕上输出接下来可以使用的一些命令,第一步需要设置好环境变量,然后可以验证 OBD 命令可用。
安装 oceanbase-all-in-one 可以参考以下视频:
📎deploy_all_in_one_in_docker.mov
3. 使用 OBD 部署 OceanBase 单节点集群
OBD 提供了各种场景的配置文件样例,可以以此作为基础按照真实的环境来进行配置 。
oceanbase-all-in-one 安装完成之后,在安装路径的 conf 目录,或者 OBD 的安装目录的 example 目录下有配置文件的样例,本地单节点集群的配置样例为 mini-local-example.yaml,首先复制一份配置文件,然后将配置文件中的 mysql_port, rpc_port 分别修改为3881, 3882。
修改后的配置危机如上图,其他配置项保持默认。
使用如下命令进行部署:
obd cluster deploy test -c test.yaml
obd cluster start test
启动成功,以我们自定义的mysql_port来连接,可以正常连接上集群。
4. 体验 OceanBase
使用 OBD 命令创建好集群之后,并没有默认的业务租户,需要再次调用obd创建租户的命令来创建。
obd cluster tenant create test -n obmysql --max-cpu=2 --memory-size=2G --log-disk-size=3G --max-iops=10000 --iops-weight=2 --unit-num=1 --charset=utf8
验证使用新建的租户可以登录集群,至此,我们已经按照自定义的端口部署了一个 OceanBase 集群,创建出了可用的租户,更多的功能就可以等待大家继续去探索了。
安装的步骤可以参考以下视频:
📎deploy_with_obd_in_docker.mov
四、总结
我们为开发者提供了多种方式来体验 OceanBase 数据库,尽量减少了对硬件资源的要求,在一般的开发机上就可以运行,无论使用的是 Windows、 Mac 或者 Linux 系统,通过容器化的方式,都可以将 OceanBase 部署起来,让 OceanBase 成为一个人人摸得到的数据库,我们目前正在开发交互式的安装方式,将进一步的优化安装体验,后面会有更多的介绍,请保持期待。