安装OceanBase
安装软件包
安装依赖包
sudo dnf -y install libaio-devel1
解压软件包
tar -zxvf oceanbase-4.4.1.tar.gz -C /usr/local/software/
ln -s /usr/local/software/oceanbase-4.4.1 /usr/local/software/oceanbase1
2
2
配置环境变量
bash
cat >> ~/.bash_profile <<"EOF"
## OCEANBASE_HOME
export OCEANBASE_HOME=/usr/local/software/oceanbase
export PATH=$PATH:$OCEANBASE_HOME/bin
EOF
source ~/.bash_profile1
2
3
4
5
6
2
3
4
5
6
查看版本
$ observer -V
observer -V
observer (OceanBase_CE 4.4.1.0)
REVISION: 1-
BUILD_BRANCH:
BUILD_TIME: Dec 12 2025 08:21:10
BUILD_FLAGS: RelWithDebInfo
BUILD_INFO:
Copyright (c) 2011-present OceanBase Inc.
$ obclient -V
obclient Ver Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.11
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
初始化服务
创建目录
sudo mkdir -p /data/service/oceanbase/{sstable,slog,clog}
sudo chown -R admin:ateng /data/service/oceanbase1
2
2
运行服务
cd /data/service/oceanbase
observer \
-I 10.244.250.30 \
-p 2881 \
-P 2882 \
-z zone1 \
-d /data/service/oceanbase \
-r '10.244.250.30:2882' \
-c 2385569970 \
-n AtengOceanBase \
-l WARN \
-o "memory_limit=16G,system_memory=4G,datafile_size=100G,syslog_level=WARN,enable_syslog_recycle=true,max_syslog_file_count=10,enable_sql_audit=false"1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
执行 bootstrap
obclient -h10.244.250.30 -P2881 -uroot
ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.244.250.30:2882';
SHOW DATABASES;
SELECT * FROM oceanbase.__all_tenant;1
2
3
4
2
3
4
查看服务参数
SHOW PARAMETERS LIKE 'memory_limit';
SHOW PARAMETERS LIKE 'system_memory';1
2
2
设置密码
设计集群管理员密码
obclient -h127.0.0.1 -P2881 -uroot@sys
ALTER USER root IDENTIFIED BY 'Admin@123';1
2
2
创建租户
-- 创建资源单元配置(以下是最小配置)
CREATE RESOURCE UNIT unit1 MAX_CPU 1, MEMORY_SIZE '5G', MAX_IOPS 1024, MIN_IOPS 1024, LOG_DISK_SIZE '10G';
-- 创建资源池
CREATE RESOURCE POOL pool1 UNIT = 'unit1', UNIT_NUM = 1;
-- 创建租户(MySQL 模式)
CREATE TENANT IF NOT EXISTS ateng
LOCALITY = 'F@zone1',
RESOURCE_POOL_LIST = ('pool1'),
PRIMARY_ZONE = 'zone1',
COMMENT 'OceanBase阿腾租户'
SET ob_compatibility_mode = 'mysql';1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
连接到新租户并设置密码
obclient -h127.0.0.1 -P2881 -uroot@ateng
ALTER USER root IDENTIFIED BY 'Ateng@123';1
2
2
使用测试
创建表测试
sql
-- 进入数据库
obclient -h127.0.0.1 -P2881 -uroot@ateng -pAteng@123
-- 创建业务数据库
CREATE DATABASE myapp;
USE myapp;
-- 创建示例表
CREATE TABLE users (
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(100),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
-- 插入数据
INSERT INTO users (name, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');
-- 查询
SELECT * FROM users;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
停止服务
killall observer1
system管理
使用system管理服务
sudo tee /etc/systemd/system/oceanbase.service <<EOF
[Unit]
Description=OceanBase Database Server
Documentation=https://www.oceanbase.com/docs
After=network-online.target
Wants=network-online.target
[Service]
# 显式设置工作目录
WorkingDirectory=/data/service/oceanbase
# 启动命令:只需 -d,其余配置从 etc/observer.config.bin 自动加载
ExecStart=/usr/local/software/oceanbase/bin/observer -d /data/service/oceanbase -N -l WARN
# 如果你的 observer 在其他路径,请修改上面的路径!
# 停止方式:通过 kill 发送 SIGTERM(observer 支持优雅退出)
KillMode=control-group
KillSignal=SIGTERM
TimeoutStopSec=120
# 重启策略
Restart=on-failure
RestartSec=10
StartLimitIntervalSec=600
StartLimitBurst=3
# 资源限制(OceanBase 高并发需要较高文件描述符)
LimitNOFILE=1048576
LimitNPROC=65536
LimitCORE=infinity
# 安全与权限
User=admin
Group=ateng
# 禁用 OOM killer(可选,生产建议)
OOMScoreAdjust=-999
[Install]
WantedBy=multi-user.target
EOF1
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
29
30
31
32
33
34
35
36
37
38
39
40
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
29
30
31
32
33
34
35
36
37
38
39
40
启动服务
sudo systemctl daemon-reload
sudo systemctl start oceanbase
sudo systemctl enable oceanbase1
2
3
2
3
添加节点2
连接第一个节点
obclient -h10.244.250.30 -P2881 -uroot@sys -A1
创建新的 Zone
ALTER SYSTEM ADD ZONE 'zone2';
ALTER SYSTEM START ZONE zone2;
obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_ZONES;
+-------+----------------------------+----------------------------+--------+-----+----------------+-----------+
| ZONE | CREATE_TIME | MODIFY_TIME | STATUS | IDC | REGION | TYPE |
+-------+----------------------------+----------------------------+--------+-----+----------------+-----------+
| zone1 | 2025-12-13 12:28:58.222132 | 2025-12-13 12:28:58.223219 | ACTIVE | | default_region | ReadWrite |
| zone2 | 2025-12-13 12:47:02.238336 | 2025-12-13 13:27:46.752989 | ACTIVE | | default_region | ReadWrite |
+-------+----------------------------+----------------------------+--------+-----+----------------+-----------+1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
添加第 2 个节点
observer \
-I 10.244.250.20 \
-p 2881 \
-P 2882 \
-z zone2 \
-d /data/service/oceanbase \
-r '10.244.250.30:2882' \
-c 2385569970 \
-n AtengOceanBase \
-l WARN \
-o "memory_limit=8G,system_memory=2G,datafile_size=10G,syslog_level=WARN,enable_syslog_recycle=true,max_syslog_file_count=10,enable_sql_audit=false"1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- -r '10.244.250.30:2882' :这里仍然只写 已有 RS 列表(即第一个节点)
- -c 2385569970 : 必须和第一个节点 cluster_id 一致!
连接第一个节点
obclient -h10.244.250.30 -P2881 -uroot@sys -A1
添加server
ALTER SYSTEM ADD SERVER '10.244.250.20:2882' ZONE 'zone2';1
查看集群集群
obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_SERVERS;
+---------------+----------+----+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+----------------------------------+-------------------+
| SVR_IP | SVR_PORT | ID | ZONE | SQL_PORT | WITH_ROOTSERVER | STATUS | START_SERVICE_TIME | STOP_TIME | BLOCK_MIGRATE_IN_TIME | CREATE_TIME | MODIFY_TIME | BUILD_VERSION | LAST_OFFLINE_TIME |
+---------------+----------+----+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+----------------------------------+-------------------+
| 10.244.250.20 | 2882 | 7 | zone2 | 2881 | NO | ACTIVE | 2025-12-13 13:30:20.257646 | NULL | NULL | 2025-12-13 13:30:11.838043 | 2025-12-13 13:30:22.264169 | 4.4.1.0_1-(Dec 12 2025 08:21:10) | NULL |
| 10.244.250.30 | 2882 | 1 | zone1 | 2881 | YES | ACTIVE | 2025-12-13 12:29:00.586512 | NULL | NULL | 2025-12-13 12:28:59.190251 | 2025-12-13 12:29:02.576890 | 4.4.1.0_1-(Dec 12 2025 08:21:10) | NULL |
+---------------+----------+----+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+----------------------------------+-------------------+1
2
3
4
5
6
7
2
3
4
5
6
7
添加节点3
连接第一个节点
obclient -h10.244.250.30 -P2881 -uroot@sys -A1
创建新的 Zone
ALTER SYSTEM ADD ZONE 'zone3';
ALTER SYSTEM START ZONE zone3;
obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_ZONES;
+-------+----------------------------+----------------------------+--------+-----+----------------+-----------+
| ZONE | CREATE_TIME | MODIFY_TIME | STATUS | IDC | REGION | TYPE |
+-------+----------------------------+----------------------------+--------+-----+----------------+-----------+
| zone1 | 2025-12-13 12:28:58.222132 | 2025-12-13 12:28:58.223219 | ACTIVE | | default_region | ReadWrite |
| zone2 | 2025-12-13 12:47:02.238336 | 2025-12-13 13:27:46.752989 | ACTIVE | | default_region | ReadWrite |
| zone3 | 2025-12-13 13:32:36.270993 | 2025-12-13 13:32:36.868233 | ACTIVE | | default_region | ReadWrite |
+-------+----------------------------+----------------------------+--------+-----+----------------+-----------+1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
添加第 3 个节点
在 10.244.250.32 上启动:
observer \
-I 10.244.250.32 \
-p 2881 -P 2882 \
-z zone3 \
-d /data/service/oceanbase \
-r '10.244.250.30:2882' \
-c 2385569970 \
-n AtengOceanBase \
-l WARN \
-o "memory_limit=8G,system_memory=2G,datafile_size=10G,syslog_level=WARN,enable_syslog_recycle=true,max_syslog_file_count=10,enable_sql_audit=false"1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
连接第一个节点
obclient -h10.244.250.30 -P2881 -uroot@sys -A1
添加server
ALTER SYSTEM ADD SERVER '10.244.250.32:2882' ZONE 'zone3';1
查询集群列表
obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_SERVERS;
+---------------+----------+----+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+----------------------------------+-------------------+
| SVR_IP | SVR_PORT | ID | ZONE | SQL_PORT | WITH_ROOTSERVER | STATUS | START_SERVICE_TIME | STOP_TIME | BLOCK_MIGRATE_IN_TIME | CREATE_TIME | MODIFY_TIME | BUILD_VERSION | LAST_OFFLINE_TIME |
+---------------+----------+----+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+----------------------------------+-------------------+
| 10.244.250.20 | 2882 | 7 | zone2 | 2881 | NO | ACTIVE | 2025-12-13 13:30:20.257646 | NULL | NULL | 2025-12-13 13:30:11.838043 | 2025-12-13 13:30:22.264169 | 4.4.1.0_1-(Dec 12 2025 08:21:10) | NULL |
| 10.244.250.30 | 2872 | 8 | zone3 | 2871 | NO | ACTIVE | NULL | NULL | NULL | 2025-12-13 13:36:26.769543 | 2025-12-13 13:36:26.769543 | 4.4.1.0_1-(Dec 12 2025 08:21:10) | NULL |
| 10.244.250.30 | 2882 | 1 | zone1 | 2881 | YES | ACTIVE | 2025-12-13 12:29:00.586512 | NULL | NULL | 2025-12-13 12:28:59.190251 | 2025-12-13 12:29:02.576890 | 4.4.1.0_1-(Dec 12 2025 08:21:10) | NULL |
+---------------+----------+----+-------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+----------------------------------+-------------------+1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
创建新资源池
新建更大的 UNIT
CREATE RESOURCE UNIT unit_big
MAX_CPU = 2,
MEMORY_SIZE = '6G';1
2
3
2
3
新建资源池(UNIT_NUM=3)
CREATE RESOURCE POOL pool_big
UNIT = 'unit_big',
UNIT_NUM = 1,
ZONE_LIST = ('zone1','zone2','zone3');1
2
3
4
2
3
4
创建obproxy
...