如何在 Ubuntu 上 部署 OceanBase

本文作者:杨涛涛,爱可生资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。

OceanBase 的官方文档中列出支持的 OS 系统有 CENTOS、UBUNTU、DEBIAN等,然而其软件源目前仅提供针对 CENTOS 的版本,因此无法直接在其他平台上实现远程自动部署。这对于偏好使用UBUNTU或DEBIAN系统的用户而言,略有遗憾。

目前部署 OceanBase 有以下几种方式:

1. OCP 平台部署:

OCP 平台本身对硬件(官方文档推荐配置CPU为32C,内存为128GB,磁盘为1.5TB ,并且要求 SSD)要求极高,故个人把玩的概率不大。

2. OBD(ob-deploy 工具)方式部署:

通过这种方式部署,只要满足 OceanBase 本身对硬件的要求即可。比如可以用最低 2C ,8GB 的配置来玩,普通笔记本都可以,堪称贫民玩法!

3. DOCKER 方式部署:

对硬件要求更低,不限制 OS 平台,更加贫民化。

4. 下载安装包来手动部署:

可以下载官方的 RPM 包来手动部署。缺点是需要手动启动脚本、手动初始化等步骤,比较繁琐(比如在 UBUNTU 下,需要安装 Alien 来对 RPM 包进行转化,而且可能因为各种原因不成功,比如 KEY 过期等)!

本篇我来基于第二种贫民部署方法:在 UBUNTU 上用 OBD 工具来部署 OceanBase !为了节省资源,我选择 1-0-0 的方式,也即:只有一个 zone ,一台 Server ,一个obproxy(odp)实例。

我的 UBUNTU 版本为 22.04.1 LTS ,OceanBase 版本为最新版4.0。选择4.0版本 是因为比 3.0 版本部署来的简单。4.0 版本把所有安装包打包在一起,命名为 oceanbase-all-in-one.tar.gz ,里面包含了一个 shell 自动化脚本,便于一键安装!

此处省去 OS 配置参数、NTP 服务配置、创建用户以及属主等步骤, 只列举一些重要的步骤(不推荐生产使用,仅限体验!)。

如何在 UBUNTU 上部署 OceanBase

  1. 创建数据目录、REDO 目录:

    root@ytt-pc:/home# mkdir -p /data/1 /data/log1
    root@ytt-pc:/home# chown -R admin.admin /data/1 /data/log1/

  2. 解压 oceanbase-all-in-one.tar.gz ,然后进入子目录,执行 install.sh 脚本即可安装本地软件包以及禁止 OBD 远程安装源。以下结果没出错,代表 OBD 环境初始化成功。

    root@ytt-pc-super:/home/ytt/下载/oceanbase-all-in-one/bin# ./install.sh

    ...

    add /home/ytt/下载/oceanbase-all-in-one/rpms/prometheus-2.37.1-10000102022110211.el7.x86_64.rpm to local mirror
    Disable remote ok

    #####################################################################

    Install Finished

    Setup Environment: source ~/.oceanbase-all-in-one/bin/env.sh
    Quick Start: obd demo

    More Details: obd -h

本地部署的安装包列表:之后在配置文件里只需配置 obproxy-ce 和 oceanbase-ce 即可快速尝鲜。

复制代码
root@ytt-pc-super:~# obd mirror list local
+----------------------------------------------------------------------------------------------------------+
|                                            local Package List                                 |
+-------------------+---------+------------------------+--------+------------------------------------------+
| name              | version | release                | arch   | md5                                   |
+-------------------+---------+------------------------+--------+------------------------------------------+
| grafana           | 7.5.17  | 1                      | x86_64 | 1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6 |
| obagent           | 1.2.0   | 4.el7                  | x86_64 | 0e8f5ee68c337ea28514c9f3f820ea546227fa7e |
| obproxy-ce        | 4.0.0   | 5.el7                  | x86_64 | de53232a951184fad75b15884458d85e31d2f6c3 |
| oceanbase-ce      | 4.0.0.0 | 100000272022110114.el7 | x86_64 | 42611dc51ca9bb28f36e60e4406ceea4a74914c7 |
| oceanbase-ce-libs | 4.0.0.0 | 100000272022110114.el7 | x86_64 | 188919f8128394bf9b62e3989220ded05f1d14da |
| prometheus        | 2.37.1  | 10000102022110211.el7  | x86_64 | 58913c7606f05feb01bc1c6410346e5fc31cf263 |
+-------------------+---------+------------------------+--------+------------------------------------------+
  1. 来手工编辑一个简单的 1-0-0 配置文件(可以从 OBD 安装目录下找模板来修改):为了快速部署,我们把 datafile_size 和 log_disk_size 调成固定值,并且关闭生产模式(集群名为 obytt100)!

    root@ytt-pc-super:/home/ytt/config# cat obytt100.yaml
    oceanbase-ce:
    servers:

    • 127.0.0.1
      global:
      memory_limit: 9G
      system_memory: 3G
      datafile_size: 30G
      log_disk_size: 30G
      devname: lo
      cpu_count: 32
      production_mode: false
      cluster_id: 100
      cluster: obytt100
      appname: obytt100
      127.0.0.1:
      mysql_port: 2881
      rpc_port: 2882
      home_path: /home/admin/oceanbase-ce
      data_dir: /data/1
      redo_dir: /data/log1
      zone: zone1
      obproxy-ce:
      servers:
    • 127.0.0.1
      global:
      home_path: /home/admin/obproxy-ce
      skip_proxy_sys_private_check: true
      enable_strict_kernel_release: false
      proxy_mem_limited: 2G
      prometheus_listen_port: 2884
      listen_port: 2883
      127.0.0.1:
      enable_cluster_checkout: false
      depends:
    • oceanbase-ce
  2. 用 OBD 来部署1-0-0的 OceanBase :出现 obytt100 deployed 代表部署成功!

    root@ytt-pc-super:/home/ytt/config# obd cluster deploy obytt100 -c obytt100.yaml
    [WARN] Use centos 7 remote mirror repository for ubuntu 22.04
    [WARN] Use centos 7 remote mirror repository for ubuntu 22.04
    ...
    obytt100 deployed

  3. 启动 OceanBase 和 OBProxy :出现 obytt100 running 代表启动成功。

    root@ytt-pc-super:/home/ytt/config# obd cluster start obytt100
    ...
    Start obproxy ok
    obproxy program health check ok
    Connect to obproxy ok
    Initialize cluster ok
    Wait for observer init ok
    +---------------------------------------------+
    | observer |
    +-----------+---------+------+-------+--------+
    | ip | version | port | zone | status |
    +-----------+---------+------+-------+--------+
    | 127.0.0.1 | 4.0.0.0 | 2881 | zone1 | ACTIVE |
    +-----------+---------+------+-------+--------+
    obclient -h127.0.0.1 -P2881 -uroot -Doceanbase

    +---------------------------------------------+
    | obproxy |
    +-----------+------+-----------------+--------+
    | ip | port | prometheus_port | status |
    +-----------+------+-----------------+--------+
    | 127.0.0.1 | 2883 | 2884 | active |
    +-----------+------+-----------------+--------+
    obclient -h127.0.0.1 -P2883 -uroot -Doceanbase
    obytt100 running

  4. 进入 sys 租户,执行简单的命令,测试下连接:自此部署成功。

    root@ytt-pc-super:/home/ytt/config# obclient -h127.1 -P 2883 -uroot@sys#obytt100 -e "show databases"
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | LBACSYS |
    | mysql |
    | oceanbase |
    | ORAAUDITOR |
    | SYS |
    | test |
    +--------------------+

总结一下,在非 CENTOS / REDHAT 系列 OS 部署 OceanBase 集群,需要使用 OBD(ob-deploy)工具,屏蔽远程仓库,从本地安装。

相关推荐
foo1st4 小时前
JDK(Ubuntu 18.04.6 LTS)安装笔记
java·笔记·ubuntu
maotou5269 小时前
Ubuntu22学习记录
linux·ubuntu
放飞自我的Coder11 小时前
【win11 安装WSL2 详解一遍过!!】
linux·ubuntu
蜕变的土豆11 小时前
Ubuntu下软件运行常见异常退出问题汇总分析
linux·ubuntu
lswzw12 小时前
Ubuntu K8s集群安全加固方案
安全·ubuntu·kubernetes
Jtti14 小时前
Ubuntu服务器上如何监控Oracle数据库
服务器·数据库·ubuntu
自学AI的鲨鱼儿16 小时前
Ubuntu / WSL 安装pipx
linux·运维·ubuntu
OceanBase数据库官方博客18 小时前
向量检索新选择:FastGPT + OceanBase,快速构建RAG
人工智能·oceanbase·分布式数据库·向量数据库·rag
跳跳糖炒酸奶1 天前
第十五讲、Isaaclab中在机器人上添加传感器
人工智能·python·算法·ubuntu·机器人
阿桨1 天前
【(保姆级教程)Ubuntu24.10下部署Dify】
ubuntu·dify·智能体