目录
[1. OceanBase All in One](#1. OceanBase All in One)
[2. OceanBase 安装](#2. OceanBase 安装)
[3. OceanBase 配置](#3. OceanBase 配置)
[停用 ntp 启用 chrony](#停用 ntp 启用 chrony)
[4. OceanBase 部署](#4. OceanBase 部署)
[5. OceanBase 连接](#5. OceanBase 连接)
1. OceanBase All in One
https://www.oceanbase.com/softwarecenter

2. OceanBase 安装
上传至一台主服务器

解压
bash
tar -xvzf oceanbase-all-in-one-4.3.5_bp6_20260410.el7.x86_64.tar.gz
安装
bash
cd /opt/oceanbase/bin/
bash
./install.sh

验证
bash
obd --version

3. OceanBase 配置
防火墙
主机器
bash
# 开放端口,可选
firewall-cmd --permanent --add-service=ntp # 时钟同步
firewall-cmd --permanent --add-port=2881/tcp # oceanbase 访问
firewall-cmd --permanent --add-port=8680/tcp # 白屏(图形化)部署 Web
# 开放端口,必须
firewall-cmd --permanent --add-port=2882/tcp # oceanbase 节点通信
firewall-cmd --permanent --add-port=2883/tcp # oceanbase 代理访问
firewall-cmd --permanent --add-port=2885/tcp # oceanbase 代理节点通信
# 重载防火墙
firewall-cmd --reload
# 验证
firewall-cmd --list-ports
其他机器
bash
# 开放端口,必须
firewall-cmd --permanent --add-port=2882/tcp # oceanbase 节点通信
firewall-cmd --permanent --add-port=2883/tcp # oceanbase 代理访问
firewall-cmd --permanent --add-port=2885/tcp # oceanbase 代理节点通信
# 重载防火墙
firewall-cmd --reload
# 验证
firewall-cmd --list-ports
时钟
检查软件是否安装
bash
rpm -q ntp
rpm -q chrony
安装软件
bash
yum install -y ntp
yum install -y chrony
编辑配置
bash
vim /etc/chrony.conf
主机器
bash
# 使用本机系统时间为源(stratum 10 表示层级较低,避免被误认为权威源)
local stratum 10
# 允许 192.169.0.0/16 网段的客户端同步时间
allow 192.169.0.0/16
# 可选:记录漂移
driftfile /var/lib/chrony/drift
其他机器
bash
server 192.169.7.230 iburst
driftfile /var/lib/chrony/drift
停用 ntp 启用 chrony
bash
systemctl stop ntpd
systemctl enable --now chronyd
验证
bash
chronyc sources -v
主机器

其他机器

用户
主机器
检查是否存在密钥
bash
ls ~/.ssh/id_rsa.pub
若不存在生成密钥
bash
ssh-keygen -t rsa
传输密钥到其他机器
bash
ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<server_ip>
配置文件
参考
创建
bash
mkdir /data/ob
cd /data/ob
bash
vim deploy.yaml
bash
## 仅在需要远程登录时才需配置
user:
username: root
# key_file: 如果需要,请填写你的 SSH 密钥文件路径
# port: 你的 SSH 端口,默认为 22
# timeout: SSH 连接超时时间(秒),默认为 30
oceanbase-ce:
servers:
- name: server1
# 请不要使用主机名,仅支持 IP 地址
ip: 192.169.7.230
- name: server2
ip: 192.169.7.234
- name: server3
ip: 192.169.7.238
global:
# 从 observer 4.2 版本开始,observer 的网络选择基于 'local_ip' 参数,'devname' 参数不再是必需项。
# 如果设置了 'local_ip' 参数,observer 将优先使用该参数进行配置,无论是否设置了 'devname'。
# 如果仅设置了 'devname' 参数,则 observer 将使用 'devname' 进行配置。
# 如果 'devname' 和 'local_ip' 均未设置,则 'local_ip' 将自动分配为上方配置的 IP 地址。
# devname: eth0
# 如果当前硬件内存容量小于 50G,请使用 "mini-single-example.yaml" 的配置并做小幅调整。
cpu_count: 8
memory_limit: 12G # observer 可使用的最大运行内存
# 系统预留内存。system_memory 为普通租户预留,默认值为 30G。
system_memory: 5G
datafile_size: 28G # 数据文件大小。
log_disk_size: 28G # clog 文件所占用的磁盘空间大小。
datafile_next: 42G
datafile_maxsize: 400G
enable_syslog_wf: false # 是否将级别高于 WARNING 的系统日志输出到单独的日志文件中。默认值为 true。
max_syslog_file_count: 16 # 启用自动回收前保留的日志文件最大数量。默认值为 0。
# observer 集群名称,需与 obproxy 的 cluster_name 一致
appname: obcluster
root_password: 123456 # root 用户密码,可为空
proxyro_password: 123456 # proxyro 用户密码,需与 obproxy 的 observer_sys_password 一致,可为空
# 在此示例中,支持单节点部署多个 OB 进程,因此不同进程使用不同的端口。
# 如果在多节点部署 OB 集群,端口和路径设置可以相同。
# OceanBase 数据库的工作目录。OceanBase 在此目录下启动。此项为必填项。
home_path: /data/ob/observer
# 数据存储目录。默认值为 $home_path/store。
# data_dir: /data
# clog、ilog 和 slog 的存储目录。默认值与 data_dir 相同。
# redo_dir: /redo
data_dir: /data/ob/observer/data
clog_dir: /data/ob/observer/clog
ilog_dir: /data/ob/observer/ilog
slog_dir: /data/ob/observer/slog
server1:
mysql_port: 2881 # OceanBase 数据库对外服务端口。默认值为 2881。集群启动后请勿修改。
rpc_port: 2882 # OceanBase 数据库内部通信端口。默认值为 2882。集群启动后请勿修改。
obshell_port: 2886 # OceanBase 数据库运维端口。默认值为 2886。仅在 oceanbase-ce 版本为 4.2.2.0 或更高时有效。
zone: zone1
server2:
mysql_port: 2881 # OceanBase 数据库对外服务端口。默认值为 2881。集群启动后请勿修改。
rpc_port: 2882 # OceanBase 数据库内部通信端口。默认值为 2882。集群启动后请勿修改。
obshell_port: 2886 # OceanBase 数据库运维端口。默认值为 2886。仅在 oceanbase-ce 版本为 4.2.2.0 或更高时有效。
zone: zone2
server3:
mysql_port: 2881 # OceanBase 数据库对外服务端口。默认值为 2881。集群启动后请勿修改。
rpc_port: 2882 # OceanBase 数据库内部通信端口。默认值为 2882。集群启动后请勿修改。
obshell_port: 2886 # OceanBase 数据库运维端口。默认值为 2886。仅在 oceanbase-ce 版本为 4.2.2.0 或更高时有效。
zone: zone3
obproxy-ce:
# 为该组件设置依赖组件。
# 当相关配置未完成时,OBD 会自动从依赖组件中获取这些配置。
depends:
- oceanbase-ce
servers:
- name: proxy1
# 请不要使用主机名,仅支持 IP 地址
ip: 192.169.7.230
- name: proxy1
ip: 192.169.7.234
- name: proxy1
ip: 192.169.7.238
global:
listen_port: 2883 # 对外服务端口。默认值为 2883。
prometheus_listen_port: 2884 # Prometheus 监听端口。默认值为 2884。
home_path: /data/ob/obproxy
# OceanBase 根服务器列表
# 格式:ip:mysql_port;ip:mysql_port。当存在 depends 时,OBD 会从 oceanbase-ce 中自动获取该值。
# rs_list: 192.168.1.2:2881;192.168.1.3:2881;192.168.1.4:2881
enable_cluster_checkout: false
# observer 集群名称,需与 oceanbase-ce 的 appname 一致。当存在 depends 时,OBD 会从 oceanbase-ce 中自动获取该值。
# cluster_name: obcluster
skip_proxy_sys_private_check: true
enable_strict_kernel_release: false
obproxy_sys_password: 123456 # obproxy sys 用户密码,可为空。当存在 depends 时,OBD 会从 oceanbase-ce 中自动获取该值。
observer_sys_password: 123456 # proxyro 用户密码,需与 oceanbase-ce 的 proxyro_password 一致,可为空。当存在 depends 时,OBD 会从 oceanbase-ce 中自动获取该值。
4. OceanBase 部署
部署
bash
obd cluster deploy -f ob -c deploy.yaml

启动
bash
obd cluster start ob # -v 详细信息


查看
查看 obd 管理的集群列表
bash
obd cluster list

查看 obtest 集群状态
bash
obd cluster display ob

修改
bash
obd cluster edit-config ob
修改保存后,会有展示配置刷新方法,需要依照着执行,例如:

5. OceanBase 租户
| 特性 | 系统租户 | 用户租户 |
|---|---|---|
| 创建方式 | 集群自动创建 | 用户手动创建 |
| 功能定位 | 集群/租户管理 | 业务数据存储 |
| 扩展能力 | ❌ 仅单点写入 | ✅ 水平扩展 |
| 备份恢复 | ❌ 不支持物理备份 | ✅ 支持 |
| 是否用于业务 | ❌ 不推荐 | ✅ 推荐 |
| 高可用性 | 逻辑单点(有风险) | 多副本强一致 |

创建租户
bash
obd cluster tenant create <deploy name> [-n <tenant name>] [flags]
例如:
bash
obd cluster tenant create ob --password=123456
默认租户名 <tenant name> 为 test
6. OceanBase 连接
obclient
html
obclient -h<IP> -P<PORT> -u<user_name>@<tenant_name>#<cluster_name> -p -c -A
例如:
html
obclient -h192.169.7.230 -P2883 -uroot@sys#ob -p123456 -c -A
html
obclient -h192.169.7.230 -P2883 -uroot@test#ob -p123456
mysql
html
mysql -h192.169.7.230 -P2883 -uroot -p123456