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

相关推荐
如若12313 小时前
Windows SSH + Headscale/Tailscale 组网及免密登录完整配置教程
运维·windows·ubuntu·ssh·内网穿透
隔窗听雨眠19 小时前
从存储引擎到执行计划:OceanBase高效运维的调优逻辑与工程实践
运维·oceanbase
菌菌的快乐生活20 小时前
Rufus + Ubuntu 24.04 Server(中山大学镜像)通用安装教程
ubuntu
垆边人似月.21 小时前
Ubuntu 配置 Samba 共享文件夹并映射到 Windows 完整指南
linux·windows·ubuntu
用户8351414049492 天前
把日志和寄存器值喂给AI做故障定位,我的实际问法
linux·ubuntu
进击的荆棘2 天前
MySQL——在ubuntu环境下安装MySQL
数据库·mysql·ubuntu
易点云徐源3 天前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
Sayai3 天前
Ubuntu 开发环境搭建避坑(一):网卡 EEE 致 60% 周期性丢包,Realtek RTL8125 网络黑洞排查与修复
linux·运维·网络·ubuntu·性能优化
牢姐与蒯3 天前
WSL2 迁移教程:把Ubuntu+WSL2从C盘挪到别的盘
linux·运维·服务器·网络·ubuntu·1024程序员节
小菜要扣篮3 天前
Ubuntu 下使用 vscode 打开 C++ 项目后,无法通过 F12 定位到定义问题解决
c++·vscode·ubuntu