---
title: "使用命令行部署 OceanBase 数据库生产环境 | OceanBase 文档中心"
description: 使用命令行部署 OceanBase 数据库生产环境 本文介绍如何通过 OBD 黑屏命令行方式部署 OceanBase 数据库生产环境。 名词解释 中控机器 存储 OceanBase 数据库安装包和集群配置信息的机器。 目标机器 安装 OceanBase 数据库的机器。 OBD OceanBase Deployer，O…
---
切换语言

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

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

# 使用命令行部署 OceanBase 数据库生产环境

更新时间：2026-06-28 16:34:10

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V3.1.5/zh-CN/100.users-guide/300.installation-and-deployment/1500.deploy-oceanbase-database-in-the-production-environment.md)  

本文介绍如何通过 OBD 黑屏命令行方式部署 OceanBase 数据库生产环境。

## 名词解释

- 中控机器

  存储 OceanBase 数据库安装包和集群配置信息的机器。
 - 目标机器

  安装 OceanBase 数据库的机器。
 - OBD

  OceanBase Deployer，OceanBase 安装部署工具，简称为 OBD。详细信息请参考 [OBD 文档](https://www.oceanbase.com/docs/community-obd-cn-10000000001690019)。
 - ODP

  OceanBase Database Proxy，OceanBase 数据库代理，是 OceanBase 数据库专用的代理服务器，简称为 ODP（又称为 OBProxy）。详细信息请参考 [ODP 文档](https://www.oceanbase.com/docs/community-odp-cn-10000000001717354)。

## 前提条件

在连接 OceanBase 数据库之前，请您确认以下信息：

- 您的机器满足软硬件要求。详细信息，参考 [软硬件要求](https://www.oceanbase.com/docs/community-observer-cn-10000000001878973)。
 - 生产环境下，您需要进行环境和配置检查，具体操作请参考 [部署前配置](https://www.oceanbase.com/docs/community-observer-cn-10000000001879602) 章节。

## 部署模式

本文采用三副本部署模式，推荐使用四台机器。其中：

- 使用一台机器部署 ODP。
 - 使用三台机器部署 OceanBase 集群。

> **说明**
>
>  
>
> - 在生产环境下，推荐将 ODP 和应用部署在一台机器上，以节省应用访问 ODP 的时间。 您可以在每个应用的服务器上部署一个 ODP 服务。在本例中，为了更方便使用，将 ODP 单独部署。
>  - 部署 ODP 的机器使用的配置可以和部署 OceanBase 数据库的机器配置不一致。部署 ODP 只需 4C/16G ~ 8C/64G 内存即可。

## 操作步骤

> **注意**
>
>  
>
> - 以下内容以 x86 架构的 CentOS Linux 7.9 镜像作为环境，其他环境可能略有不同。
>  - 部署 OceanBase 集群之前，为了数据安全，建议您切换到非 root 用户。

### 步骤一：安装 OBD

> **说明**
>
>  
>
> - 您只需要在中控机器上安装 OBD，建议安装最新版本。

#### 在线安装 OBD

如您的机器可以访问公网，并能够添加三方 YUM 软件源，您可以执行以下命令，使用 OceanBase 的官方软件源安装 OBD：

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

```

> **注意**
>
>  
>
> 只有 Anolis、CentOS 和 RedHat 操作系统支持此操作。

#### 离线安装 OBD

如果您的机器不能访问公网，您可以从 [OceanBase 软件下载中心](https://www.oceanbase.com/softwarecenter) 下载 OBD，建议下载最新版本的安装包。下载完成后，将 OBD 复制到您的中控机器任一目录下。

在 CentOS 或 RedHat 系统上，在安装包所在目录下执行如下命令安装 OBD：

```bash
sudo yum install ob-deploy-x.x.x.el7.x86_64.rpm

```

在 Ubuntu 或 Debian 系统上，在安装包所在目录下执行如下命令安装 OBD：

```bash
sudo alien --scripts -i ob-deploy-x.x.x.el7.x86_64.rpm

```

### 步骤二：安装 OBClient

您只需要在中控机器上安装 OBClient。

#### 在线安装 OBClient

执行以下命令，在线安装 OBLibs：

```bash
sudo yum install -y libobclient
sudo yum install -y obclient

```

#### 离线安装 OBClient

如果您的机器不能访问公网，您可以从 [OceanBase 软件下载中心](https://www.oceanbase.com/softwareCenter) 下载 OBClient 和依赖包 LibOBClient，建议下载最新版本的安装包。下载完成后，将安装包复制到您的中控机器任一目录下。

在 CentOS 或 RedHat 系统上，在安装包所在目录下执行如下命令安装 OBClient：

```bash
sudo yum install libobclient-x.x.x.el7.x86_64.rpm
sudo yum install obclient-x.x.x-2.el7.x86_64.rpm

```

在 Ubuntu 或 Debian 系统上，在安装包所在目录下执行如下命令安装 OBClient：

```bash
sudo alien --scripts -i libobclient-x.x.x.el7.x86_64.rpm
sudo alien --scripts -i obclient-x.x.x.el7.x86_64.rpm

```

### 步骤三：配置 OBD

如果离线安装 OceanBase 集群，可从 [OceanBase 软件下载中心](https://www.oceanbase.com/softwarecenter) 下载 OceanBase 数据库、OBLibs 和 ODP。下载完成后，将下载的安装包复制到中控机器上任一目录下，并在该目录下参考以下步骤配置 OBD。如果在线安装，则跳过步骤 1~3。

1. 禁用远程仓库

   ```bash
   obd mirror disable remote

   ```

   离线安装时，您必须禁用远程仓库。
 2. 将下载的安装包添加至本地镜像

   ```bash
   obd mirror clone *.rpm

   ```
 3. 查看本地镜像库中的安装包列表

   ```bash
   obd mirror list local

   ```
 4. 下载配置文件

   您可从 OBD 的 [GitHub](https://github.com/oceanbase/obdeploy/tree/master/example) 仓库中下载对应的配置文件，也可在 `/usr/obd/example` 目录下查看 OBD 提供的配置文件示例。请根据您的实际情况选择相应的配置文件：

      - 如果您采用单机安装，即目标机器只有一台，可使用单机安装配置文件（/usr/obd/example/single-example.yaml）。
      - 如果您采用分布式安装，即目标机器有多台，可使用分布式安装配置文件（/usr/obd/example/distributed-with-obproxy-example.yaml）。
 5. 修改配置文件

   以部署分布式 OceanBase 数据库和 ODP 为例，按照以下步骤修改配置文件。

   #### 说明

   您需根据您环境的真实情况修改下述参数。

      1. 修改用户名和密码

        ```yaml
        ## Only need to configure when remote login is required
        user:
          username: admin
        #   password: your password if need
          key_file: /home/admin/.ssh/id_rsa
        #   port: your ssh port, default 22
        #   timeout: ssh connection timeout (second), default 30

        ```

        `username` 为登录到目标机器的用户名，确保您的用户名有 `home_path` 的写权限。`password` 和 `key_file` 均用于验证用户，通常情况下只需要填写一个。

        #### 注意

        在配置秘钥路径后，如果您的秘钥不需要口令，请注释或者删除 `password`，以免 `password` 被视为秘钥口令用于登录，导致校验失败。
      2. 修改机器的 IP、端口和相关目录，并配置内存相关参数及密码

        OceanBase 数据库详细参数介绍，参考 [OceanBase 数据库参数](https://github.com/oceanbase/obdeploy/blob/master/plugins/oceanbase/3.1.0/parameter.yaml)。

        ```yaml
        oceanbase-ce:
          servers:
            # Please don't use hostname, only IP can be supported
            - name: server1
              ip: 10.10.10.1
            - name: server2
              ip: 10.10.10.2
            - name: server3
              ip: 10.10.10.3
          global:
            devname: eth0
            cluster_id: 1
            # please set memory limit to a suitable value which is matching resource.
            memory_limit: 64G # The maximum running memory for an observer
            system_memory: 30G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
            datafile_size: 192G # Size of the data file.
            log_disk_size: 192G # The size of disk space used by the clog files.
            enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
            enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false.
            max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
            mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
            rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
            # observer cluster name, consistent with obproxy's cluster_name
            appname: obdemo
            # The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
            home_path: /home/admin/observer
            # The directory for data storage. The default value is $home_path/store.
            data_dir: /data
            # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
            redo_dir: /redo
            root_password: ****** # root user password, can be empty
            proxyro_password: ****** # proxyro user pasword, consistent with obproxy's observer_sys_password, can be empty
          server1:
            zone: zone1
          server2:
            zone: zone2
          server3:
            zone: zone3

        ```

        若机器中存在不一致的配置项，可将相关配置项移到对应 server 里进行配置，以其中两台机器中配置端口不同为例：

        ```yaml
        server2:
          mysql_port: 3881
          rpc_port: 3882
          zone: zone2
        server3:
          mysql_port: 2881
          rpc_port: 2882
          zone: zone3

        ```

        #### 说明

        配置文件中对应 server 中的配置优先级高于 `global`。
      3. 配置 obproxy-ce 组件并修改 IP 和 `home_path`

        ```yaml
        obproxy-ce:
          depends:
            - oceanbase-ce
          servers:
            - 10.10.10.4
          global:
            listen_port: 2883 # External port. The default value is 2883.
            prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884.
            home_path: /home/admin/obproxy
            enable_cluster_checkout: false
            skip_proxy_sys_private_check: true
            enable_strict_kernel_release: false
            obproxy_sys_password: ****** # obproxy sys user password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
            observer_sys_password: ***** # proxyro user pasword, consistent with oceanbase-ce's proxyro_password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.

        ```

        #### 注意

        `observer_sys_password` 的值需设置为和 `proxyro_password` 的值相同，两者均表示 `proxyro@sys` 的密码。

### 步骤四：部署 OceanBase 集群

按照以下步骤部署 OceanBase 集群：

1. 部署 OceanBase 集群

   ```shell
   obd cluster deploy obtest -c distributed-with-obproxy-example.yaml

   ```

   联网情况下，在您执行了 `obd cluster deploy` 命令之后，OBD 将检查您的目标机器是否有部署所需安装包。如果没有安装包，OBD 将自动从 YUM 源获取。更多关于 `obd cluster deploy` 命令的信息，参考 OBD 手册 [集群命令组](https://www.oceanbase.com/docs/community-obd-cn-10000000001690699) 中 `obd cluster deploy` 命令。
 2. 启动 OceanBase 集群

   ```shell
   obd cluster start obtest

   ```
 3. 查看 OceanBase 集群状态

   ```shell
   obd cluster display obtest

   ```
 4. （可选）修改集群配置

   OceanBase 数据库有数百个配置项，有些配置是耦合的，在您熟悉 OceanBase 数据库之前，不建议您修改示例配件文件中的配置。此处示例用来说明如何修改配置，并使之生效。

   使用 `obd cluster edit-config` 命令进入编辑模式，修改集群配置。

   ```shell
   [admin@test001 ~]$ obd cluster edit-config obtest

   ```

   修改配置并保存退出后，OBD 会告知如何使得此次修改生效，保存修改后输入如下。

   ```shell
   Search param plugin and load ok
   Search param plugin and load ok
   Parameter check ok
   Save deploy "obtest" configuration
   Use `obd cluster reload obtest` to make changes take effect.

   ```

   复制 OBD 输出的命令执行即可。

   ```shell
   [admin@test001 ~]$ obd cluster reload obtest

   ```

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

此处以使用 OBClient 客户端连接 OceanBase 集群为例：

```shell
obclient -h<IP> -P<PORT> -u<user_name>@<tenant_name>#<cluster_name> -p -c -A
# example
obclient -h10.10.10.4 -P2883 -uroot@sys#obdemo -p -c -A

```

参数说明：

- -h：提供 OceanBase 数据库连接 IP，直连时为 OBServer 节点地址，通过 ODP 连接时为 ODP 地址。
 - -u：提供租户的连接账户，格式有：`用户名@租户名#集群名`、`集群名:租户名:用户名`、`集群名-租户名-用户名` 或者 `集群名.租户名.用户名`。MySQL 租户的管理员用户名默认是 `root`。

  #### 注意

  连接时所用的集群名为配置文件中 `appname` 配置名称，而非部署时的 `deploy name`。
 - -P：提供 OceanBase 数据库连接端口，直连时为 `mysql_port` 配置项的值，通过 ODP 连接时为 `listen_port` 配置项的值。
 - -p：提供 OceanBase 数据库连接密码。
 - -c：表示在 OBClient 运行环境中不要忽略注释。

  #### 说明

  Hint 是特殊的注释，不受 -c 影响。
 - -A：表示在 OBClient 连接数据库时不自动获取统计信息。

更多连接 OceanBase 集群的详细操作可参见 [连接 OceanBase 数据库](https://www.oceanbase.com/docs/community-observer-cn-10000000001879102)。

### 步骤六：创建用户租户

部署 OceanBase 集群之后，建议创建用户租户进行业务操作。sys 租户仅做集群管理使用，不适合在业务场景中使用。

您可以使用如下两种方法创建用户租户：

- 方法一：使用 OBD 创建用户租户。

  ```shell
  obd cluster tenant create <deploy name> [-n <tenant name>] [flags]
  # example
  obd cluster tenant create obtest -n obmysql --max-cpu=2 --memory-size=2G --log-disk-size=3G --max-iops=10000 --iops-weight=2 --unit-num=1 --charset=utf8

  ```

  命令详细使用方法请参考 OBD 手册 [集群命令组](https://www.oceanbase.com/docs/community-obd-cn-10000000001690699) 中 `obd cluster tenant create` 命令。
 - 方法二：使用 SQL 语句创建用户租户。创建租户前需要先创建资源池，具体操作请参考 [创建资源池](https://www.oceanbase.com/docs/community-observer-cn-10000000001879718)。

  ```bash
  CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='RANDOM', resource_pool_list=('pool1');

  ```

  创建租户的详细命令介绍请参考 [新建租户](https://www.oceanbase.com/docs/community-observer-cn-10000000001879732)。

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