---
title: "部署单副本 OceanBase 集群 | OceanBase 文档中心"
description: 部署单副本 OceanBase 集群 OceanBase 也支持单副本部署，并且单副本 OceanBase 集群还可以扩容（增加节点），所以也称为集群。OceanBase 是单进程软件，只需要安装 oceanbase-xxx.rpm 包和 obproxy-xxx.rpm 包。本节主要介绍通过使用 RPM 包安装单副本…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.0.0 企业版

# 部署单副本 OceanBase 集群

更新时间：2026-03-07 18:42:50

OceanBase 也支持单副本部署，并且单副本 OceanBase 集群还可以扩容（增加节点），所以也称为集群。OceanBase 是单进程软件，只需要安装 oceanbase-xxx.rpm 包和 obproxy-xxx.rpm 包。本节主要介绍通过使用 RPM 包安装单副本 OceanBase 集群。

## 前提条件

在安装 OceanBase 数据库之前，需要确认以下信息：

- OBServer 服务器已完成相关配置。详细信息，请参见 **部署前准备** 中 **服务器配置** 章节。
 - 部署环境已完成相关配置。详细信息，请参见 **命令行部署** 中 **部署环境配置** 下的章节。

## 操作步骤

### 安装目录和软件

1. 安装 OceanBase 数据库 RPM 包。

   其中 `$rpm_dir` 表示存放 RPM 包的目录，`$rpm_name` 表示 RPM 包的名称。

   ```bash
   [root@xxx /]# cd $rpm_dir
   [root@xxx $rpm_dir]# rpm -ivh $rpm_name

   ```

   > **说明**
   >
   >  
   >
   > OceanBase 数据库软件会安装在目录 `/home/admin/oceanbase` 下。

   示例如下：

   ```bash
   [root@xxx admin]# rpm -ivh oceanbase-*-20220418212020.el7.x86_64.rpm
   Preparing...                          ################################# [100%]
   Updating / installing...
      1:oceanbase-*-20220418212020.################################# [100%]

   ```
 2. 清理 OceanBase 目录 （第一次部署不用）。

   当要清理之前的 OceanBase 环境，或者 OceanBase 安装部署过程中出现问题导致环境变乱或者产生文件影响下一次安装时，选择直接清理旧的 OceanBase 目录。其中 `$cluster_name` 为集群名。

   ```shell
   [root@xxx admin]# su - admin
   -bash-4.2$ kill -9 `pidof observer`
   -bash-4.2$ rm -rf /data/1/$cluster_name
   -bash-4.2$ rm -rf /data/log1/$cluster_name
   -bash-4.2$ rm -rf /home/admin/oceanbase/store/$cluster_name /home/admin/oceanbase/log/* /home/admin/oceanbase/etc/*config*
   -bash-4.2$ ps -ef|grep observer

   ```

   示例如下：

   ```shell
   [root@xxx admin]# su - admin
   -bash-4.2$ kill -9 `pidof observer`
   -bash-4.2$ rm -rf /data/1/obdemo
   -bash-4.2$ rm -rf /data/log1/obdemo
   -bash-4.2$ rm -rf /home/admin/oceanbase/store/obdemo /home/admin/oceanbase/log/* /home/admin/oceanbase/etc/*config*
   -bash-4.2$ ps -ef|grep observer

   ```
 3. 初始化 OceanBase 目录。

   OceanBase 的数据目录通常建议在独立的磁盘上，然后通过软链接方式链接到软件 Home 目录下面。其中 `$cluster_name` 为集群名。

   ```shell
   [root@xxx admin]# su - admin
   -bash-4.2$ mkdir -p /data/1/$cluster_name/{etc3,sstable,slog}
   -bash-4.2$ mkdir -p /data/log1/$cluster_name/{clog,etc2}
   -bash-4.2$ mkdir -p /home/admin/oceanbase/store/$cluster_name
   -bash-4.2$ for t in {etc3,sstable,slog};do ln -s /data/1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done
   -bash-4.2$ for t in {clog,etc2};do ln -s /data/log1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; done

   ```

   示例如下：

   ```shell
   [root@xxx admin]# su - admin
   -bash-4.2$ mkdir -p /data/1/obdemo/{etc3,sstable,slog}
   -bash-4.2$ mkdir -p /data/log1/obdemo/{clog,etc2}
   -bash-4.2$ mkdir -p /home/admin/oceanbase/store/obdemo
   -bash-4.2$ for t in {etc3,sstable,slog};do ln -s /data/1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
   -bash-4.2$ for t in {clog,etc2};do ln -s /data/log1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done

   ```

   > **说明**
   >
   >  
   >
   > `obdemo` 是以集群名称创建的目录，可自定义，在启动进程时会用到。

   检查结果：

   ```shell
   -bash-4.2$ cd /home/admin/oceanbase
   -bash-4.2$ tree store/
   store/
   `-- obdemo
    |-- clog -> /data/log1/obdemo/clog
    |-- etc2 -> /data/log1/obdemo/etc2
    |-- etc3 -> /data/1/obdemo/etc3
    |-- slog -> /data/1/obdemo/slog
    `-- sstable -> /data/1/obdemo/sstable

   6 directories, 0 files

   ```
 4. 测试 I/O 能力（可选）。

   测试数据盘 I/O 能力，生成性能报告文件放在 `/home/admin/oceanbase/etc` 目录下。`observer` 启动时会读取这个文件进而自动设置内部一些跟 I/O 有关的参数。

   示例如下：

   ```shell
   -bash-4.2$ time /home/admin/oceanbase/bin/ob_admin io_bench -c /home/admin/oceanbase/etc -d /data/1/obdemo user:root succ to open, filename=ob_admin.log, fd=3, wf_fd=2
   ...
   ...
   real    0m0.331s
   user    0m0.100s
   sys     0m0.262s

   ```
 5. 安装 OceanBase 客户端。

   OceanBase 实例兼容 Oracle 或 MySQL，如果是 Oracle 租户，Java 程序连接需要使用 OceanBase 提供的 Java 驱动文件（oceanbase-client-*.jar ）。如果要在命令行下访问 Oracle 租户，还需要安装客户端 OBClient。

   OBClient 是 OceanBase 命令行客户端，可以访问 OceanBase 的 MySQL 租户和 ORACLE 租户。

   示例如下：

   ```shell
   -bash-4.2$ rpm -ivh obclient-1.2.6-20210510164331.el7.alios7.x86_64.rpm

   ##核查是否安装成功##
   -bash-4.2$ which obclient
   /usr/bin/obclient

   ```

### 初始化 OceanBase 集群

> **说明**
>
>  
>
> 示例 IP 做了脱敏处理，这不是安装需求。在部署时应根据自己机器真实 IP 填写。

1. 启动 observer 进程。

   示例如下：

   ```shell
   [root@xxx admin]# su - admin
   -bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -i eth0 -P 2882 -p 2881 -z zone1 -d /home/admin/oceanbase/store/obdemo -r '10.10.10.1:2882:2881' -c 10001 -n obdemo -o "system_memory=30G,datafile_size=500G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
   devname: eth0
   rpc port: 2882
   mysql port: 2881
   zone: zone1
   data_dir: /home/admin/oceanbase/store/obdemo
   rs list: 10.10.10.1:2882:2881
   cluster id: 10001
   appname: obdemo
   optstr: system_memory=30G,datafile_size=500G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2

   ```

   参数解释：

   | **参数** | **说明** |
   | --- | --- |
   | `-i` | 指定网卡名，可通过 `ifconfig` 命令查看。 |
   | `-p` | 指定服务端口号，一般指定为 `2881`。 |
   | `-P` | 指定 RPC 端口号，一般指定为 `2882`。 |
   | `-n` | 指定集群名称。可自定义，不同集群名称不要重复即可。 |
   | `-z` | 指定启动的 observer 进程所属的 Zone。 |
   | `-d` | 指定集群主目录，除集群名字 `obdemo` 外，其他不要变动。 |
   | `-c` | 指定集群 ID。为一组数字，可以自定义，不同集群不要重复即可。 |
   | `-l` | 指定日志级别。 |
   | `-r` | 指定 RS 列表，格式是 ip:2882:2881 ，分号分割，表示 RootService 信息。三台机器参数一致。 |
   | `-o` | 指定集群启动参数，需要根据实际情况设置。`system_memory` 指定 OceanBase 内部保留内存，默认是 `30G` ，机器内存比较少的情况下把这个调小，影响就是可能在性能测试时有内存不足问题。 `datafile_size` 指定 OceanBase 数据文件 `sstable` 的大小（一次性初始化），根据 `/data/1/` 可用空间评估，建议不少于 `100G`，同时又保留一些剩余空间。如果 `/data/1` 跟 `/data/log1` 本身就是一个文件系统（共用一个盘），那么务必保证留给 `/data/log1` 的空间大小是内存的 2-4 倍。`config_additional_dir` 指定参数文件的冗余目录。 |

   可通过 `netstat -ntlp` 命令查看 observer 进程是否启动成功。如果监听到了 `2881` 与 `2882` 端口，则说明进程启动成功。

   示例如下：

   ```shell
   -bash-4.2$ netstat -ntlp
   (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
   Active Internet connections (only servers)
   Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
   tcp        0      0 0.0.0.0:62888           0.0.0.0:*               LISTEN      -
   tcp        0      0 0.0.0.0:62889           0.0.0.0:*               LISTEN      -
   tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      -
   tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
   tcp        0      0 0.0.0.0:63000           0.0.0.0:*               LISTEN      -
   tcp        0      0 0.0.0.0:2881            0.0.0.0:*               LISTEN      79697/observer
   tcp        0      0 0.0.0.0:2882            0.0.0.0:*               LISTEN      79697/observer

   ```
 2. 集群 bootstrap 操作。

   通过 obclient 命令连接已启动的 observer 进程，密码为空。

   ```sql
   [root@xxx admin]# obclient -h127.0.0.1 -uroot -P2881 -p
   Enter password:

   obclient> SET SESSION ob_query_timeout=1000000000;
   Query OK, 0 rows affected

   obclient> ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.10.10.1:2882';
   Query OK, 0 rows affected

   ```

   > **注意**
   >
   >  
   >
   > 如果这一步失败报错了，其原因很可能是 observer 进程启动参数有不对、observer 相关目录权限不对、日志目录空间不足一定比例（跟数据目录合用了大目录，空间被数据目录占用了）节点内存资源不足等等。请先排查这些问题点后，然后清理 OceanBase 目录从头开始（请参见 **清理 OceanBase 目录（第一次不用）** ）。
 3. 验证集群初始化成功。

   进行 bootstrap 后，执行 `SHOW DATABASES;` 命令，能看到数据库列表里有 oceanbase 即可。

   ```sql
   obclient> SHOW DATABASES;
   +--------------------+
   | Database           |
   +--------------------+
   | oceanbase          |
   | information_schema |
   | mysql              |
   | SYS                |
   | LBACSYS            |
   | ORAAUDITOR         |
   | test               |
   +--------------------+
   7 rows in set

   ```
 4. 修改密码。

   sys 租户的 root 用户密码默认为空，初始化成功后请修改密码。

   ```sql
   obclient> ALTER USER root IDENTIFIED BY '******';
   Query OK, 0 rows affected

   ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
