本文根据使用场景详细介绍如何快速部署 OceanBase 数据库,旨在帮助您快速掌握并成功使用 OceanBase 数据库。
一、软硬件环境准备
安装OceanBase数据库之前,确保你的软硬件环境满足以下要求:
| 项目 | 描述 |
|---|---|
| 系统 | * CentOS Linux 7.X 版本、8.X 版本(内核 Linux 4.19 版本及以上) * Rocky Linux 9(内核 Linux 5.14) * Ubuntu 16.X 版本及以上版本(内核 Linux 4.19 版本及以上) * ...还有些点击查看具体 |
| CPU | 最低要求 2 核,推荐 4 核及以上。 |
| 内存 | 最低要求 6 GB,推荐设置在 16 GB 至 1024 GB 范围内。 |
| 磁盘类型 | 使用 SSD 存储。 |
| 磁盘存储空间 | 最低要求 20 GB。 |
| 文件系统 | EXT4 或 XFS,当数据超过 16 TB 时,使用 XFS。 |
| 端口 | 需保证组件的默认端口未被占用: * OceanBase 数据库默认使用 2881、2882、2886 端口。 * ODP 默认使用 2883、2884、2885 端口。 * OBAgent 默认使用 8088、8089 端口。 * Prometheus 默认使用 9090 端口。 * Grafana 默认使用 3000 端口。 |
| all-in-one 安装包 | all-in-one 安装包需选择 V4.1.0 及以上版本。 |
二、快速搭建OceanBase数据库
方法一:使用 ALL in One 安装包
执行以下命令下载并安装 OceanBase All in One,该命令将在线下载并安装最新版本的 OceanBase All in One 包。all-in-one 安装包需选择 V4.1.0 及以上版本。
bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"
# 加载环境变量
source ~/.oceanbase-all-in-one/bin/env.sh
安装 obd
通过 OceanBase All in One 安装 obd(推荐)
在线安装
若您的机器可以连接网络,可执行如下命令在线安装。安装成功后,/tmp 目录下会新增 tmp.xxx 文件夹作为安装目录,如 tmp.jvzpVREAs9。
bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"
source ~/.oceanbase-all-in-one/bin/env.sh
离线安装
软件下载地址:https://www.oceanbase.com/softwarecenter
-
在安装包所在目录下执行如下命令解压安装包并安装。
tar -xzf oceanbase-all-in-one-*.tar.gz cd oceanbase-all-in-one/bin/ ./install.sh source ~/.oceanbase-all-in-one/bin/env.sh
使用RPM包安装
在线安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy
source /etc/profile.d/obd.sh
离线安装
在 CentOS 或 RedHat 系统上,执行如下命令安装 obd:
sudo yum install ob-deploy-*.rpm
在 Ubuntu 或 Debian 系统上,执行如下命令安装 obd:
sudo alien --scripts -i ob-deploy-*.rpm
成功安装 obd 且已访问官网 OceanBase 软件下载中心 提前下载好所需组件的安装包后,可参照如下操作将安装包添加到 obd 的本地镜像库。
执行如下命令禁用远程仓库
obd mirror disable remote
禁用后可通过 obd mirror list 命令进行确认,查看 Type=remote 对应行的 Enabled 列展示为 False,说明已关闭远程镜像源。示例如下:
+-----------------------------------------------------------------------------+
| Mirror Repository List |
+----------------------------+--------+---------+----------+------------------+
| SectionName | Type | Enabled | Avaiable | Update Time |
+----------------------------+--------+---------+----------+------------------+
| local | local | - | True | 2025-02-19 15:56 |
| oceanbase.community.stable | remote | False | False | 2025-02-19 15:54 |
| oceanbase.development-kit | remote | False | False | 2025-02-19 15:54 |
+----------------------------+--------+---------+----------+------------------+
在安装包所在目录执行如下命令将下载好的安装包上传到本地仓库
obd mirror clone *.rpm
查看本地仓库的安装包列表
obd mirror list local
在输出的列表中查看到部署所需安装包即表示上传成功。
obd 提供以下两种快速部署命令:
-
最小规格部署
将以 OceanBase 数据库最小规格部署并启动单节点的 OceanBase 数据库及相关组件。
obd demo -
最大规格部署
将以 OceanBase 数据库最大规格部署并启动单节点的 OceanBase 数据库及相关组件。
obd perf
obd 自 V3.4.0 提供最大规格部署命令(
obd pref),并于 V4.0.0 起更新命令为obd perf。
方法二:直接使用 RPM 包
本方法依赖于 systemctl 命令,请在非容器环境下进行操作。
通过本方法安装 OceanBase 数据库时仅支持以下系统:
- Anolis OS 8.X 版本(内核 Linux 4.19 版本及以上)
- CentOS Linux 8.X 版本(内核 Linux 4.19 版本及以上)
- Debian 10、11 和 12 版本(内核 Linux 4.19 版本及以上)
- openEuler 22.03 和 24.03 版本(内核 Linux 5.10.0 版本及以上)
- Ubuntu 18.04、20.04 和 22.04 版本(内核 Linux 4.19 版本及以上)
sudo bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/service/installer.sh)"
步骤一:安装 OceanBase 数据库
在线安装
-
添加 OceanBase 镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo -
安装 OceanBase 数据库
sudo yum install oceanbase-ce oceanbase-ce-libs obclient该命令默认部署最新版本,您可通过声明版本号安装指定版本,如使用
yum install oceanbase-ce-4.2.2.0命令安装 OceanBase 数据库 V4.2.2 版本,推荐安装最新版本。
离线安装
下载软件:https://www.oceanbase.com/softwarecenter
在安装包所在目录下,执行 rpm 命令安装 OceanBase 数据库。
sudo rpm -ivh oceanbase-ce-*.rpm
步骤二:启动 OceanBase 数据库
安装 OceanBase 数据库后,您可参照如下步骤启动 OceanBase 数据库。
1. (可选)修改配置文件
您可参照该步骤修改配置文件,未修改的情况下将使用配置文件中的默认配置进行部署。
sudo vim /etc/oceanbase.cnf
该文件包含的配置项内容如下:
ip=127.0.0.1
mysql_port=2881
rpc_port=2882
obshell_port=2886
root_pwd=""
redo_dir=/var/lib/oceanbase/redo
data_dir=/var/lib/oceanbase/data
datafile_size=2G
cpu_count=16
memory_limit=6G
system_memory=1G
log_disk_size=13G
您可在该配置文件中添加其他配置项,详细配置项的介绍可参见 配置项总览。
目前 OBServer 节点的 Zone(默认为
zone1)不支持修改。
配置文件中的配置项介绍如下表:
| 配置项 | 是否必选 | 默认值 | 说明 |
|---|---|---|---|
| ip | 可选 | 127.0.0.1 | OBServer 节点的 IP,暂不支持配置为 ipv6 地址。 |
| mysql_port | 可选 | 2881 | OceanBase 数据库 SQL 服务协议端口号。 |
| rpc_port | 可选 | 2882 | OceanBase 数据库远程访问的协议端口号。 |
| obshell_port | 可选 | 2886 | OceanBase 数据库运维端口。 |
| root_pwd | 可选 | 默认为空 | OceanBase 集群的超级管理员(root@sys)的密码,建议设置复杂的密码。 |
| redo_dir | 可选 | /var/lib/oceanbase/redo | clog、ilog 和 slog 的目录,建议配置为独立的磁盘。 数据盘(默认为 /var/lib/oceanbase/)的可用磁盘空间应当大于 15G。 |
| data_dir | 可选 | /var/lib/oceanbase/data | 设置存储 SSTable 等数据的目录,建议配置为独立的磁盘。数据盘(默认为 /var/lib/oceanbase)的可用磁盘空间应当大于 15G。 |
| datafile_size | 可选 | 0 | 指定对应节点数据文件(block_file)大小,未配置的情况下以 datafile_disk_percentage 配置项为准,详细介绍请参见 datafile_size 和 datafile_disk_percentage。 |
| cpu_count | 可选 | 0 | OceanBase 数据库可使用的 CPU 总数,如果设置为 0,将自动检测。 |
| memory_limit | 可选 | 0 | observer 进程能从环境中获取的最大内存,未配置的情况下以 memory_limit_percentage 配置项为准,配置项详细介绍请参考 memory_limit 和 memory_limit_percentage。 |
| system_memory | 可选 | 0M | 保留的系统内存,该参数值会占用 memory_limit 的内存,未配置的情况下 OceanBase 数据库会自适应。 |
| log_disk_size | 可选 | 0 | 用于设置 Redo 日志磁盘的大小,未配置的情况下以log_disk_percentage 配置项为准,详细介绍请参考 log_disk_size 和 log_disk_percentage。 |
2. 修改 OceanBase 安装目录(默认是 /home/admin/oceanbase)下 etc 目录的属主
sudo chown root /home/admin/oceanbase/etc
3. 启动 OceanBase 数据库
sudo systemctl start oceanbase
4. 查看 OceanBase 数据库的启动状态
sudo systemctl status oceanbase
当状态显示为 Service is ready 时,表示 OceanBase 数据库已正常启动。
步骤三:连接 OceanBase 数据库
此处以通过 OBClient 连接 OceanBase 数据库为例,命令如下:
obclient -h<IP> -uroot@sys -P<Port> -p<Passwd> -A oceanbase
参数说明:
-
-h:提供 OceanBase 数据库连接 IP,使用 systemd 启动的 OceanBase 数据库默认 IP 为
127.0.0.1。 -
-u:提供 OceanBase 数据库的连接账户,格式:
用户名@租户名。MySQL 租户的管理员用户名默认是root。 -
-P:提供 OceanBase 数据库连接端口,为
/etc/oceanbase.cnf中mysqlPort的值。 -
-p:提供 OceanBase 数据库连接密码,为
/etc/oceanbase.cnf中rootPwd的值。建议不在连接命令中提供,改为在执行命令后的提示符下输入,密码文本不可见。 -
-A:表示在 OBClient 连接数据库时不自动获取统计信息。
-
oceanbase:访问的数据库的名称,可以更改为业务数据库名。