---
title: "使用 systemd 部署 OceanBase 数据库 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 使用 systemd 部署 OceanBase 数据库 本文介绍如何使用 systemd 部署及管理单节点 OceanBase 数据库。 注意 本文档操作仅适用于学习或测试场景，请不要应用于生产环境。 前提条件 在执行本文操作前，您需确认以下信息： 您使用的环境是 RPM 平台系统，目前已验证支持的系统如下。 Ano…
---
切换语言

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

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

# 使用 systemd 部署 OceanBase 数据库

更新时间：2026-01-28 20:04:38

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/400.deploy/500.deploy-oceanbase-database-community-edition/200.local-deployment/600.deploy-by-systemd.md)  

本文介绍如何使用 systemd 部署及管理单节点 OceanBase 数据库。

#### 注意

本文档操作仅适用于学习或测试场景，请不要应用于生产环境。

## 前提条件

在执行本文操作前，您需确认以下信息：

- 您使用的环境是 RPM 平台系统，目前已验证支持的系统如下。

     - 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 版本及以上）
 - 当前环境中的可用内存需大于 3G。
 - 您环境中已安装 jq 命令行工具，并正确配置了 systemd 作为系统和服务管理器。
 - 您环境中已安装数据库连接工具（MySQL 客户端或 OBClient 客户端）。
 - 您计划部署的 OceanBase 数据库为 V4.2.2 或之后版本。
 - 您使用的用户已具有执行 sudo 命令的权限。

## 部署 OceanBase 数据库

### 步骤一：安装 OceanBase 数据库

根据所用环境能否连接外部网络，分为在线安装和离线安装两种安装方法。

    在线安装   离线安装

1. 添加 OceanBase 镜像源

   ```shell
   [admin@test001 ~]$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo

   ```
 2. 安装 OceanBase 数据库

   ```shell
   [admin@test001 ~]$ sudo yum install oceanbase-ce oceanbase-ce-libs obclient

   ```

   该命令默认部署最新版本，您可通过声明版本号安装指定版本，如使用 `yum install oceanbase-ce-4.2.2.0` 命令安装 OceanBase 数据库 V4.2.2 版本，推荐安装最新版本。

1. 您可从 [OceanBase 软件下载中心](https://www.oceanbase.com/softwarecenter) 下载所需版本的 OceanBase 数据库及对应依赖库（`OceanBase Libs`）。下载完成后，将安装包复制到您的机器上。推荐您使用最新版本的安装包。
 2. 在安装包所在目录下，执行 rpm 命令安装 OceanBase 数据库。

   ```shell
   [admin@test001 ~]$ sudo rpm -ivh oceanbase-ce-*.rpm

   ```

### 步骤二：启动 OceanBase 数据库

安装 OceanBase 数据库后，您可参照如下步骤启动 OceanBase 数据库。

1. （可选）修改配置文件

   您可参照该步骤修改配置文件，未修改的情况下将使用配置文件中的默认配置进行部署。

   ```shell
   [admin@test001 ~]$ sudo vim /etc/oceanbase.cnf

   ```

   该文件包含的配置项内容如下：

   ```shell
   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

   ```

   #### 说明

      - 您可在该配置文件中添加其他配置项，详细配置项的介绍可参见 [配置项总览](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476402)。
      - 目前 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](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479166) 和 [datafile_disk_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479172)。 |
   | cpu_count | 可选 | 0 | OceanBase 数据库可使用的 CPU 总数，如果设置为 0，将自动检测。 |
   | memory_limit | 可选 | 0 | observer 进程能从环境中获取的最大内存，未配置的情况下以 `memory_limit_percentage` 配置项为准，配置项详细介绍请参考 [memory_limit](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479013) 和 [memory_limit_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004478962)。 |
   | system_memory | 可选 | 0M | 保留的系统内存，该参数值会占用 `memory_limit` 的内存，未配置的情况下 OceanBase 数据库会自适应。 |
   | log_disk_size | 可选 | 0 | 用于设置 Redo 日志磁盘的大小，未配置的情况下以`log_disk_percentage` 配置项为准，详细介绍请参考 [log_disk_size](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479186) 和 [log_disk_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479063)。 |
 2. 修改 OceanBase 安装目录（默认是 `/home/admin/oceanbase`）下 `etc` 目录的属主

   ```shell
   [admin@test001 ~]$ sudo chown root /home/admin/oceanbase/etc

   ```
 3. 启动 OceanBase 数据库

   ```shell
   [admin@test001 ~]$ sudo systemctl start oceanbase

   ```
 4. 查看 OceanBase 数据库的启动状态

   ```shell
   [admin@test001 ~]$ sudo systemctl status oceanbase

   ```

   当状态显示为 `Service is ready` 时，表示 OceanBase 数据库已正常启动。

### 步骤三：连接 OceanBase 数据库

此处以通过 OBClient 连接 OceanBase 数据库为例，命令如下：

```shell
[admin@test001 ~]$ 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：访问的数据库的名称，可以更改为业务数据库名。

## 管理 OceanBase 数据库

目前仅支持通过 systemd 对 OceanBase 数据库进行启动（start）、停止（stop）以及查看状态（status）操作。

### 查看 OceanBase 数据库状态

可执行如下命令查看 OceanBase 数据库状态。

```

查看 OceanBase 数据库状态有如下几种情况：

- `Active` 展示为 `active (running)`，且 `Status` 展示为 `Service is running` 时，表示 OceanBase 数据库正在启动中。
 - `Active` 展示为 `active (running)`，且 `Status` 展示为 `Service is ready` 时，表示已成功启动 OceanBase 数据库。
 - `Active` 展示为 `inactive (dead)`，表示服务已经停止，即 OceanBase 数据库已停止。
 - `Active` 展示为 `failed`，表示服务发生了错误，需查看日志进行排查。

### 查看 OceanBase 数据库的详细日志

当 OceanBase 数据库状态出现异常时，您可执行如下命令查看 OceanBase 数据库的详细信息。

```shell
[admin@test001 ~]$ sudo journalctl -u oceanbase

```

Systemd 实际上是通过发送请求与 OceanBase 数据库的管控工具 obshell 进行通信，从而来实际控制 OBServer 节点的状态。在日志中，可以看到很多 trace id，可以通过 obshell 的接口和 trace id 结合排错，命令如下：

```shell
[admin@test001 ~]$ curl -X GET http://<ip>:<obshell_port>/api/v1/task/dag/<trace id> | jq

```

如果报错是在 `observer start` 和 `bootstrap` 阶段报错，还需要查看 OBServer 节点日志，默认目录为 `/home/admin/oceanbase/log`。

#### 常见问题

- ERROR: current user(uid=0) that starts observer is not the same with the original one(uid=500)

  此报错的常见原因是 OceanBase 数据库安装目录（默认是 `/home/admin/oceanbase`）下 `etc` 目录的所属权与当前用户不一致，可执行如下命令解决：

  ```shell
  chown root /home/admin/oceanbase/etc

  ```
 - errcode=-4290, file="ob_server_log_block_mgr.cpp", line_no=1127, info="::fallocate failed"

  此报错的常见原因是 OceanBase 数据库的数据盘目录（默认为 `/var/lib/oceanbase/`）的磁盘空间不足，可以调大数据目录的磁盘空间。

### 清除 OceanBase 数据库

您可参照如下步骤清除通过 systemd 启动的 OceanBase 数据库。

1. 停止 OceanBase 数据库

   ```shell
   [admin@test001 ~]$ sudo systemctl stop oceanbase

   ```
 2. 卸载 OceanBase 数据库

      1. 删除 OceanBase 数据库软件包

        在线安装方式下，您可执行如下命令：

        ```shell
        [admin@test001 ~]$ sudo yum erase package

        ```

        `package` 需替换为待删除的软件包名，您可通过 `yum list | grep oceanbase` 命令查看软件包名。

        离线安装方式下，您可执行如下命令：

        ```shell
        [admin@test001 ~]$ sudo rpm -e package

        ```

        `package` 需替换为待删除的软件包名，您可通过 `rpm -qa | grep oceanbase` 命令查看软件包名。
      2. （可选）删除 OceanBase 数据库数据

        执行第一步后，您环境中的 OceanBase 数据库已被卸载，但是 OceanBase 数据库的数据还存在。若您之后重新部署 OceanBase 数据库，还可以查看和操作该 OceanBase 数据库的数据。

        执行本步骤删除 OceanBase 数据库数据后，您部署的 OceanBase 数据库将完全被卸载。

        删除 OceanBase 数据库安装目录

        ```shell
        [admin@test001 ~]$ sudo rm -rf /home/admin/oceanbase

        ```

        删除 OceanBase 数据库数据目录

        ```shell
        [admin@test001 ~]$ sudo rm -rf /var/lib/oceanbase

        ```

## 相关文档

- 您可登录集群执行 `ALTER USER` 命令修改用户密码，命令详细介绍请参见 [ALTER USER](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479530)。
 - 部署 OceanBase 数据库后，更多连接 OceanBase 数据库的详细介绍可参见 [连接 OceanBase 数据库](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476086)。

 上一篇 下一篇 ![有帮助](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) 咨询热线
