当前位置: 首页 > article >正文

在 Mac 和 Windows 系统中快速部署 OceanBase

OceanBase 是一款分布式数据库,具备出色的性能和高扩展性,可以为企业用户构建稳定可靠、灵活扩展性能的数据库服务。本文以开发者们普遍熟悉的Windows 或 Mac 环境为例,介绍如何快速上手并体验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 环境可用:

docker ps -a

1678846592

命令可以正常执行,说明 Docker 环境准备成功,可以顺利的进行下一步。

二、使用 Docker 快速部署 OceanBase

Docker 环境准备好之后,就可以在主机上启动容器了,恰好 OceanBase 提供了单机版的镜像,完美适用于快速体验的场景。

1. 拉取镜像

OceanBase 的单机版镜像 oceanbase/oceanbase-ce, 按照版本以不同的 tag 划分, 最新的是 4.0.0.0 版本,latest 默认对应的是最新发布的版本,体验最新版本,可以直接使用 latest 作为 tag,或者不写 tag。

docker pull oceanbase/oceanbase-ce

1678846671

通过 Docker 命令可以查看到镜像的信息,说明镜像拉取成功。

2. 启动单节点 OceanBase 容器

OceanBase 镜像提供了两个可以设置的环境变量:

1678846688

作为快速体验的环境,可以设置 MINI_MODE 为 true 以减少资源的占用,使用以下命令拉起 oceanbase 容器。

docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE='true' -d oceanbase/oceanbase-ce

1678846731

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 的租户。

1678846802

使用以下命令可以使用 test 租户连接到 OceanBase 数据库:

docker exec -it oceanbase-ce ob-mysql root # 使用 root 账号docker exec -it oceanbase-ce ob-mysql test # 使用 test 账号

可以看到test 租户下又创建了一个 test 用户。

1678846837

OceanBase 的镜像中还提供了sysbench工具,可以使用以下命令对 OceanBase 作 sysbench 测试:

docker exec -it oceanbase-ce obd test sysbench obcluster

1678846872

可以看到测试的一些统计结果,由于是在个人的开发电脑上,具体的性能数据仅能作为参考。

三、使用 OBD 快速部署 OceanBase

使用 Docker 方式部署 OceanBase 简单快速,但是仅提供了两个可以配置的选项,甚至连集群名都无法配置,爱折腾的各位开发者们肯定不满足于此。

这部分我们会用 OBD来部署 OceanBase, 并且做一些自定义的修改,更能增加一些互动的感觉,OBD 是 OceanBase 开源软件的安装部署工具,可以用来管理 OceanBase 所有的开源软件。

1. 系统准备

利用开发机上的 Docker 启动一个 Linux 系统的容器,通过这种方式来模拟 Linux 环境,这里我们使用 centos7 的镜像。
拉取镜像

docker pull centos:7

1678846975

启动并登录到容器环境

docker run -it --name=centos-7 --entrypoint=/bin/bash centos:7

1678847014

通过以上的步骤,现在我们已经成功的进入到了一个容器化的 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)"

1678847055

安装完成之后,会在屏幕上输出接下来可以使用的一些命令,第一步需要设置好环境变量,然后可以验证 OBD 命令可用。

1678847080

3. 使用 OBD 部署 OceanBase 单节点集群

OBD 提供了各种场景的配置文件样例,可以以此作为基础按照真实的环境来进行配置 。

oceanbase-all-in-one 安装完成之后,在安装路径的 conf 目录,或者 OBD 的安装目录的 example 目录下有配置文件的样例,本地单节点集群的配置样例为 mini-local-example.yaml,首先复制一份配置文件,然后将配置文件中的 mysql_port, rpc_port 分别修改为3881, 3882。

1678847118

修改后的配置危机如上图,其他配置项保持默认。

使用如下命令进行部署:

obd cluster deploy test -c test.yamlobd cluster start test

1678847152

启动成功,以我们自定义的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

1678847197

验证使用新建的租户可以登录集群,至此,我们已经按照自定义的端口部署了一个 OceanBase 集群,创建出了可用的租户,更多的功能就可以等待大家继续去探索了。

四、总结

我们为开发者提供了多种方式来体验 OceanBase 数据库,尽量减少了对硬件资源的要求,在一般的开发机上就可以运行,无论使用的是 Windows、 Mac 或者 Linux 系统,通过容器化的方式,都可以将 OceanBase 部署起来,让 OceanBase 成为一个人人摸得到的数据库,我们目前正在开发交互式的安装方式,将进一步的优化安装体验,后面会有更多的介绍,请保持期待。

此外,也可以免费开通 OceanBase 云数据库 来进行体验,免去部署过程。


http://www.kler.cn/a/389258.html

相关文章:

  • OCR识别铁路电子客票
  • 如何查看电脑关机时间
  • 外星人入侵
  • 客户案例 | 如何利用Ansys工具提供互联系统(以及系统的系统),从而使“软件定义汽车”成为可能
  • 使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径
  • 什么是 Real-Time Factor (RTF)
  • 解线性方程组(二)
  • 机器学习—高级优化方法
  • 计划系统学习C#
  • Python __str__()方法
  • 十九、计算机视觉-轮廓检测
  • 聚焦医疗发展|暴雨信创方案亮相医疗卫生信息技术创新高峰大会
  • 物理验证Calibre LVS | SMIC Process过LVS时VNW和VPW要如何做处理?
  • etcd分布式键值存储系统
  • 阿里1688 阿里滑块 231滑块 x5sec分析
  • 基于python的线性代数相关计算
  • 深入探究R语言中的机器学习应用——从基础到实战
  • 3分钟部署上线小产品?Cursor 和 Devbox 让开发从未如此简单
  • 常见计算机网络知识整理(未完,整理中。。。)
  • JS的DOM事件监听 (鼠标事件,键盘事件,表单事件)
  • Harmony鸿蒙高级证书考试
  • 【Golang】Go语言环境安装
  • 【IC每日一题:IC验证面试--UVM验证-2】
  • 知乎日报前三周总结
  • LabVIEW编程基础教学(一)--介绍
  • Elasticsearch如果集群出现节点故障,我应该如何快速定位问题?