引言

OceanBase 单机集中式集群(即单机版,后文不再称“单机集中式集群”)是OceanBase 推出的极简数据库架构,区别于分布式集群架构,单机版无多副本和扩缩容能力,适用于开发测试环境及数据安全性要求不高的业务系统。

OceanBase 社区版和企业版都支持单机版部署,相关区别如下。

一文讲透 OceanBase 单机版:架构介绍、部署流程、性能测试、MySQL对比、资源配置等等_MySQL

  • 主备集群: OceanBase v4.1.0 之前,物理备库的产品形态为集群级主备。
    集群有两种角色:主集群和备集群。主集群下面所有用户租户都是主租户;备集群下面所有用户租户都是备租户,备集群会自动同步主集群的租户变更操作。
  • 主备租户: OceanBase v4.1.0 之后,物理备库的产品形态变更为租户级主备,即主或备的角色信息属于租户,分为主租户和备租户,集群不再有主备角色的概念,而只是承载租户的容器。

安装部署

1.1 OceanBase 单机版部署方式

OceanBase 单机社区版部署方式有 3 种,分别是:

  1. 通过 OBD ALL-IN-ONE 包部署
  • 推荐,轻量级部署,所需资源少(OBD 和 OceanBase 单机版数据库可复用1台服务器),方便快速
  1. 通过命令行方式部署
  • 需纯手工命令行操作
  1. 通过 OCP 社区版平台部署
  • 适合规模化部署,需要额外资源部署 OCP 云平台,运维方便
  • 生产环境推荐

1.2 OceanBase 单机版最简部署

需要提前在 OceanBase 官网上下载 OBD all-in-one 安装包,下载地址: https://www.oceanbase.com/softwarecenter

1. 通过 all-in-one 安装包部署 OBD 环境
su - admin
tar -xzf oceanbase-all-in-one-*.tar.gz
cd oceanbase-all-in-one/bin/
./install.sh
source ~/.oceanbase-all-in-one/bin/env.sh
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
2. 禁用远程仓库
obd mirror disable remote
obd mirror list
# 查看 Type=remote 对应的 Enabled 变成了 False,说明已关闭远程镜像源
  • 1.
  • 2.
  • 3.
3. 查看本地镜像中安装包列表
obd mirror list local
  • 1.
4. 准备配置文件
cd ~/.oceanbase-all-in-one/obd/usr/obd/example/
cp mini-single-example.yaml mini-single-20240221.yaml
vim mini-single-20240221.yaml
  • 1.
  • 2.
  • 3.

添加如下参数到配置文件。

user:
    username: admin
    password: OceanBase_123#
    port: 22
oceanbase-ce:
  servers:
    - 10.186.58.87
  global:
    home_path: /home/admin/observer
    data_dir: /data/1
    redo_dir: /data/log1
    devname: eth0
    mysql_port: 2881
    rpc_port: 2882
    zone: zone1
    cluster_id: 1
    memory_limit: 12G
    system_memory: 1G
    datafile_size: 10G
    datafile_next: 2G
    datafile_maxsize: 20G
    log_disk_size: 20G
    cpu_count: 12
    production_mode: false
    enable_syslog_wf: false
    enable_syslog_recycle: true
    max_syslog_file_count: 4
    root_password: OceanBase_123#
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
5. 部署 OceanBase 数据库

下述命令创建一个名字为 obtest 的单节点集群

obd cluster deploy obtest -c mini-single-20240221.yaml
  • 1.

输出 obtest deployed 表示该集群创建完成。

6. 配置 lib 环境变量

通过 OCP 社区版或 OBD 启动时不会有环境变量问题(启动时带了相关库),手工启动或执行 observer 命令将报错,解决方式如下。

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/admin/observer/lib' >> ~/.bash_profile
source ~/.bash_profile
  • 1.
  • 2.
7. 检查和启动数据库

确认 observer 程序在目标机器安装成功。

/home/admin/observer/bin/observer --version
  • 1.

结果为 observer (OceanBase_CE 4.2.2.0)。

启动 OceanBase 数据库。

obd cluster start obtest
  • 1.

启动完成后,使用 root 登录数据库(默认登录 sys 租户)进行创建业务租户等操作。

mysql -h10.186.58.87 -P2881 -uroot -p'OceanBase_123#' -Doceanbase -A
show full processlist;
  • 1.
  • 2.

主备架构

2.1 单机版主备租户简述

OceanBase 单机版支持主备租户架构,并采用异步方式做数据同步。由于 OceanBase 集群支持部署多个业务租户,所以主备租户架构有三种部署方式:

  1. 集群中仅有主租户或备租户
  • 典型场景,适用于两地容灾等多种业务场景

一文讲透 OceanBase 单机版:架构介绍、部署流程、性能测试、MySQL对比、资源配置等等_mysql_02

  1. 集群中既有主租户又有备租户
  • 适用于两地多写(容灾)场景

一文讲透 OceanBase 单机版:架构介绍、部署流程、性能测试、MySQL对比、资源配置等等_数据库_03

  1. 主租户和备租户在同一个集群中
  • 适用于业务升级(保留数据镜像)场景

一文讲透 OceanBase 单机版:架构介绍、部署流程、性能测试、MySQL对比、资源配置等等_MySQL_04

2.2 单机版主备租户部署

本章以经典架构(集群中仅有主租户或备租户)为例进行部署,部署方式使用相对简便的 OCP 社区版云平台进行部署。