如何在 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)工具,屏蔽远程仓库,从本地安装。

相关推荐
爱学嵌入式的菜鸟7 小时前
Linux应用编程(C语言编译过程)
linux·c语言·ubuntu
岁月漫长_10 小时前
【Ubuntu 22.04】VMware 17 安装Ubuntu 22.04+配置VSCode+Python开发环境
vscode·python·ubuntu
周先森的怣忈10 小时前
Ubuntu,openEuler,MySql安装
mysql·ubuntu·openeuler
朗道十戒13 小时前
R虚拟环境中安装ncdf4库包编译库问题
ubuntu·r语言
vvw&14 小时前
使用 Nginx 在 Ubuntu 22.04 上安装 LibreNMS 开源网络监控系统
linux·运维·服务器·nginx·ubuntu·github·librenms
小至尖尖14 小时前
某保险理赔核心OB SQL优化案例
sql·oceanbase·sql优化
PaLu-LI15 小时前
ORB-SLAM2源码学习:Initializer.cc:Initializer::Normalize地图初始化——坐标归一化
c++·opencv·学习·算法·ubuntu·计算机视觉
渴望力量的猴子16 小时前
【Ubuntu24.04】服务部署(虚拟机)
服务器·ubuntu
土豆炒马铃薯。18 小时前
【深度学习】Pytorch 1.x 安装命令
linux·人工智能·pytorch·深度学习·ubuntu·centos
davenian18 小时前
<OS 有关> ubuntu 24 安装 VMware Workstaion
linux·ubuntu·vmware