---
title: "错误码 | OceanBase 文档中心"
description: "错误码 本文总结了使用 obd 过程中可能会遇到的相关报错，主要包括以下几个方面。 通用报错 OBD-1000：Configuration conflict x.x.x.x: xxx port is used for x.x.x.x 错误原因：配置文件中存在端口冲突。 解决方法：根据部署方法的不同有如下两种解决方法。…"
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*Qq8pT6yBPTcAAAAAAAAAAAAADiGDAQ/original) 安装部署工具 OBDV 2.10.1 社区版

# 错误码

更新时间：2026-07-23 19:55:35

[编辑](https://github.com/oceanbase/obd-doc/edit/V2.10.1/zh-CN/1100.error-messages-in-obd.md)  

本文总结了使用 obd 过程中可能会遇到的相关报错，主要包括以下几个方面。

## 通用报错

### OBD-1000：Configuration conflict x.x.x.x: xxx port is used for x.x.x.x

错误原因：配置文件中存在端口冲突。

解决方法：根据部署方法的不同有如下两种解决方法。

- 命令行部署时，您可使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，查看端口配置并进行修改，保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，您可单击 **上一步**，在 **集群配置**（部署 OceanBase 数据库时）或 **MetaDB 配置**（部署 OCP 时）页面找到报错中的端口并修改。

### OBD-1001：x.x.x.x:xxx port is already used

错误原因：端口已经被占用。

#### 说明

各个组件的端口配置项以及默认端口号可参考 [【SOP 系列 20】OceanBase 服务端进程 & 生态产品默认端口号](https://ask.oceanbase.com/t/topic/35603118)。

解决方法：您可选择结束该端口的进程，或更换为未被占用的端口。您可根据自身情况选择以下任一方式更换端口。

- 方法一：若您使用配置文件部署，可使用 `obd cluster edit-config <deploy name>` 命令打开配置文件并修改配置文件中对应的端口配置。修改完成后继续执行 `obd cluster start` 命令启动即可。

  #### 说明

  方法一中提到的命令详细介绍可参考 [集群命令组](https://www.oceanbase.com/docs/community-obd-cn-1000000001477789)。
 - 方法二：若您使用 `obd demo` 命令部署，可通过如下命令指定端口，此处以指定 oceanbase-ce 组件的 mysql_port 为例。

  ```shell
  obd demo --oceanbase-ce.mysql_port=3881

  ```

  #### 说明

  方法二中提到的命令详细介绍可参考 [快速部署命令](https://www.oceanbase.com/docs/community-obd-cn-1000000001477786)。
 - 方法三：若您通过 obd 白屏界面部署，可单击 **上一步** 直到找到报错中对应的端口，并修改为未被占用的端口。

### OBD-1002：Fail to init x.x.x.x path

错误原因：有如下两种可能原因，您可根据报错的具体信息进行判断。

1. 配置文件中的 user 用户（未填的情况下默认为当前用户）没有对应目录的写权限。
 2. 配置的目录不为空。

解决方法：

对于情况 1，您可通过以下两种方式解决。

- 使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，添加或修改配置文件中的 user 信息，保存后执行命令行中输出的命令使修改生效。
 - 登陆到目标机器，为当前账号赋予对应目录的写权限。

对于情况 2，您也可通过以下两种方式解决。

- 使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，将对应配置项的值更改为其他空目录。
 - 若您确认该目录可以被清空，也可重新执行命令并添加 `-f` 选项，obd 将会使用当前用户去清空该目录。

### OBD-1003：fail to clean x.x.x.x:xxx

错误原因：检查配置文件中的 user 用户（未填的情况下默认为当前用户）是否有 home_path 的写权限。

解决方法：您可通过以下两种方式解决。

### OBD-1004：Configuration conflict x.x.x.x: xxx is used for x.x.x.x

错误原因：配置文件中存在路径冲突。

解决方法：请您检查配置并进行修改。

### OBD-1005：Some of the servers in the cluster have been stopped

错误原因：后续的操作需要所有的机器的服务全部在线，而当前配置内的部分机器已经停止。

解决方法：您可使用 `obd cluster start <deploy_name> --wop` 无参启动，将全部的服务拉起。

### OBD-1006：Failed to connect to xxx

错误原因：

1. obd 和目标机器之间网络不连通。
 2. 对应的组件进程已经退出或者不提供服务。
 3. 账号密码不匹配。

解决办法：

对于情况 1，请自行修复网络。

对于情况 2，可尝试再次启动组件，如果依旧启动失败，请参考启动失败的错误进行排查，如 **OBD-2002**。

对于情况 3，常见原因是用户直接执行 SQL 命令修改了密码，账号密码与配置文件中存储的不同导致 obd 连接不到组件。该种情况下有以下两种解决办法。

1. 执行 SQL 命令将密码改回与 obd 储存的密码一致。
 2. 执行 `vi ~/.obd/cluster/<deploy name>/config.yaml` 修改对应的密码使其与组件中实际密码一致。

### OBD-1007：(x.x.x.x) The value of the ulimit parameter xxx must not be less than xxx (Current value: xxx)

错误原因：ulimits 配置不满足要求。

解决办法：可通过修改 `/etc/security/limits.d/` 目录下对应文件和 `/etc/security/limits.conf` 使其满足要求。

### OBD-1008：(x.x.x.x) failed to get fs.aio-max-nr and fs.aio-nr

错误原因：obd 获取不到服务器上 aio 配置。

解决办法：请检查当前用户是否有权限查看 fs.aio-max-nr/fs.aio-nr。

```bash
cat /proc/sys/fs/aio-max-nr /proc/sys/fs/aio-nr

```

### OBD-1009：x.x.x.x xxx need config: xxx

错误原因：服务相关组件缺少对应配置。

解决办法：使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，并在配置文件中添加所提示的配置项，保存后执行命令行中输出的命令使修改生效。

### OBD-1010：x.x.x.x No such net interface: xxx

错误原因：obd 获取不到 devname。

解决办法：根据部署方法的不同，有如下两种解决方法。

- 命令行部署时，执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，在配置文件中添加或修改 `devname`，保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **集群配置**（部署 OceanBase 数据库时）或 **MetaDB 配置**（部署 OCP 时）页面，打开 **集群配置** 中的 **更多配置**，设置 devname。

### OBD-1011：(x.x.x.x) Insufficient AIO remaining (Avail: xxx, Need: xxx), The recommended value of fs.aio-max-nr is 1048576

错误原因：系统可用 aio 数量少于数据库需要的 aio 数量。

解决办法：执行如下命令修改 linux aio-max-nr。

```bash
sudo sysctl fs.aio-max-nr=1048576

```

### OBD-1012：xxx

错误原因：

1. 类型转换异常，如 int 型参数传入字符串。
 2. 参数值超限，如 `rpc_port` 的取值区间是 1025~65535，则 `rpc_port` 配置的值不在该区间就会报错。
 3. 参数缺失，如关键参数如 `home_path` 未配置。

解决办法：

对于情况 1，请您检查参数类型并修改。

对于情况 2，请您检查传参值并修改。

对于情况 3，请您检查传参配置，若存在参数缺失需配置对应参数。

### OBD-1013：xxx@x.x.x.x connect failed: xxx

错误原因：出现该报错的原因有很多，常见的原因有以下两种。

1. 用户名或密码错误。
 2. 连接超时。

解决办法：若报错信息中出现如下内容，您可执行 `obd env set OBD_DISABLE_RSA_ALGORITHMS 1` 命令禁用 `rsa-sha2-512` 和 `rsa-sha2-256` 算法。

```shell
Open ssh connection \Exception (client): Unable to agree on a pubkey algorithm for signing a 'ssh-rsa' key!

```

#### 说明

若您通过图形化界面部署集群，需先单击 **退出**，之后在命令行页面执行 `obd env set` 命令，然后再重新执行图形化界面部署操作。

若无上述报错信息，您可手动通过 SSH 命令连接对应机器，验证连接信息是否正确。

- 若无法连接，您需排查连接信息正确性，以及服务器相应配置。
 - 若连接成功，您需修改配置的连接信息，根据部署方法的不同，有如下两种修改方法。

     - 命令行部署时，执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，在配置文件中添加或修改 `user` 部分配置，保存后执行命令行中输出的命令使修改生效。
     - 图形化界面部署时，可单击 **上一步**，在 **节点配置**（部署 OceanBase 数据库时）或 **MetaDB 配置**（部署 OCP 时）页面修改 **部署用户配置** 模块信息。

若排查处理后仍然无法部署成功，您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解答。

### OBD-1015：Unable to confirm the primary-standby relationship, rerun with "--ignore-standby" option if you want to proceed despite the risks

错误原因：当前操作涉及到的集群或租户曾有主备关系，但执行命令过程中校验是否存在主备关系时出现异常，无法确认。

解决办法：您需确认当前集群或租户是否在其他集群上存在备租户，根据集群是否可用有如下两种检测方法。

- 当前集群可用时，您可执行如下命令查看是否存在备租户，此处以集群名为 test 为例。

  ```shell
  obd cluster tenant show test -g

  ```
 - 当前集群不可用时，您可执行如下命令查看当前集群或租户有哪些主备关联关系，此处以集群名为 test 为例。

  ```shell
  cat ~/.obd/cluster/test/inner_config.yaml

  ```

  根据文件输出，到对应的集群上执行如下命令查看主备关系是否仍存在，此处以对应集群名为 test-standby 为例。

  ```shell
  obd cluster tenant show test-standby -g

  ```

结合检测结果以及当前操作，有如下几种处理方法。处理方法中涉及到命令详细用法可参见 [集群命令组](https://www.oceanbase.com/docs/community-obd-cn-1000000001477789) 中对应命令介绍。

- 当前操作为升级操作且当前集群或租户存在备租户，因备租户的版本不得低于主租户，您可先升级备租户后再升级主租户。若当前集群中既存在主租户又存在备租户，您可先执行 switchover 操作（`obd cluster tenant switchover`）将集群中的主租户切换为备租户，待主备租户所在集群均升级完成后再次执行 switchover 操作切换回来。

  #### 说明

  若当前集群为同版本升级，可直接重新执行命令，并在命令后添加 `--ignore-standby` 选项来跳过检查。
 - 当前操作非升级操作（destroy/redeploy/drop）且当前集群或租户存在备租户，您可参考如下几种解决方法解除主备关系。

     - 对备租户执行解耦操作（`obd cluster tenant decouple`），备租户将独立为主租户。
     - 先对主租户所在集群执行 `obd cluster stop` 命令停止集群，再对备租户执行 Failover 操作（`obd cluster tenant failover`），备租户将独立为主租户。
     - 对备租户执行 `obd cluster tenant drop` 命令，备租户将被删除。
 - 当前集群或租户不存在备租户，或您可以接受备租户不可用的风险，可重新执行命令，并加上 `--ignore-standby` 选项来跳过检查。

### OBD-1016：(xx.xx.xx.xx) failed to get xxx using command "sysctl -a"

错误原因：连接异常或使用的操作系统暂不支持 `sysctl -a` 命令。

解决方法：您可重新操作，或到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解答。

### OBD-1017：(xx.xx.xx.xx) The value of the "xxx" must be xxx

错误原因：操作系统的内核参数不在推荐的范围之内。

为确保 OceanBase 数据库在生产环境中的稳定性，obd 在启动 OceanBase 数据库前将对系统环境及内核参数做一次检查，此项检查旨在确保系统配置符合 OceanBase 推荐的参数设定。在配置项未满足推荐标准的情况下，若 `production_mode` 配置为 `true` 或者执行命令时开启了 `--strict-check` 选项，实例将被识别为生产环境，此时会触发错误报告并终止启动，反之则仅会发出告警而不会终止启动流程。

解决方法：根据使用的环境不同有如下两种解决方法。

- 若您所用环境为生产环境，可通过 `sysctl -w {内核参数名}="建议值"` 命令或 `echo "内核参数名=建议值" >> /etc/sysctl.conf; sysctl -p` 命令修改参数配置，使其满足条件。
 - 若您所用环境为测试环境，且没有权限修改内核参数，可通过 `obd cluster edit-config {deployname}` 命令修改配置文件，将配置项 `production_mode` 配置为 `false` 来跳过系统参数阻塞检查。

### OBD-1018: could not change xxx

错误原因：命令指定的配置文件中配置了不允许被修改的配置项。

解决方法：您可查看指定的配置文件中是否存在如 `user`，`depends`，`unuse_lib_repository`，`auto_create_tenant` 等配置项。

### OBD-1019: component xxx already in cluster

错误原因：集群中已存在待添加的组件，obd 不支持向集群中添加已存在的组件。

解决方法：您可以执行 `obd cluster edit-config` 命令打开配置文件，查看集群中的组件信息，确认是否已存在待添加的组件。

### OBD-1020: Update config for component xxx failed

错误原因：更新组件配置失败。

解决方法：参考输出的错误码信息检查配置文件。若未检查出原因，您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解答。

### OBD-1021: Component xxx is not in cluster

错误原因：待删除的组件在集群中不存在。

解决方法：您可以执行 `obd cluster edit-config` 命令打开配置文件，查看集群中的组件信息，确认是否存在待删除的组件。

### OBD-1022: Component xxx still depends by xxx, could not remove

错误原因：待删除的组件被集群中的其他组件依赖，obd 不支持删除存在依赖情况的组件。

解决方法：您可以执行 `obd cluster edit-config` 命令打开配置文件，查看集群组件之间的依赖关系（`depends`）。

### OBD-1023: Failed to merge config: xxx

错误原因：合并配置文件失败。

### OBD-1024: The cluster will have no remaining components

错误原因：待删除组件为集群中的唯一一个组件。

解决方法：若您想删除集群中的所有组件，可执行 `obd cluster destroy` 命令销毁集群。

### OBD-1025：({ip}) {component} {key} invalid

错误原因：对应组件配置的密码不符合规范。obd 会根据组件的密码规范对组件进行检查，具体的密码规范如下。

#### 说明

使用图形化界面部署时，前端页面会对不符合规范的密码进行拦截，因此这里仅介绍命令行操作时的密码规范。

- OCP 控制台的 admin 登录密码（`admin_password`）需满足如下规范：

     - 长度为 8~32 位字符
     - 包含以下四种类型字符中至少三种：数字（0~9）、大写字母（A~Z）、小写字母（a~z）和特殊字符（``~!@#%^&*_-+=|(){}[]:;,.?/$`'"<>\``）
 - OCP Express 控制台的 admin 登录密码（`admin_passwd`）需满足如下规范：

     - 长度为 8~32 位字符
     - 包含以下四种类型字符中至少三种：数字（0~9）、大写字母（A~Z）、小写字母（a~z）和特殊字符（`~!@#%^&*_-+=|(){}[]:;,.?/`）  

  #### 注意

  OCP Express 中 admin 登录密码（`admin_passwd`）修改后需执行 `obd cluster redeploy` 命令重新部署生效。`obd cluster redeploy` 命令会销毁集群，重新部署，您集群中的数据会丢失，请先做好备份。
 - OBAgent 中 HTTP 服务认证密码（`http_basic_auth_password`）需满足如下规范：

     - 字符长度在 [0, +∞) 范围内
     - 支持包含数字（0~9）、大写字母（A~Z）、小写字母（a~z）和特殊字符（`~^*{}[]_-+`）

解决方法：命令行操作时，您可执行 `obd cluster edit-config` 命令打开配置文件，修改配置文件中对应组件下对应的配置项并保存，之后复制命令行输出的重启命令并执行。

### OBD-1026：Could not modify {key} when the cluster is in the working status(`production_mode` is True, not support this operation)

错误原因：修改的配置项需要执行 `obd cluster redeploy` 命令才能生效，该命令会销毁集群，重新部署，您集群中的数据会丢失。因此，生产环境下（`production_mode=true`）禁止修改需要重新部署才可生效的配置项。

解决方法：部署 OceanBase 集群时默认 `production_mode` 配置项为 `true`，若当前集群非生产环境使用，并且可接受数据丢失的风险，可执行 `obd cluster edit-config` 命令将 `production_mode` 配置为 `false`，根据输出的命令重启集群后再次修改配置项。

### OBD-1027：If you are sure the directory can be emptied, run `obd cluster deploy -f {deploy_name}` to perform forced deployment

错误原因：配置文件中配置的目录中存在非空目录。

解决方法：您可选择清空对应目录，或者为配置项配置新的空目录。具体方法如下：

- 清空目录：可选择手动清空对应目录（[OBD-1002](#OBD-1002：Fail%20to%20init%20x.x.x.x%20path) 错误码中会输出），或在部署命令后加 `-f` 参数自动清空对应目录（复制错误码输出的命令即可）。
 - 配置新目录：可执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，为对应配置项（[OBD-1002](#OBD-1002：Fail%20to%20init%20x.x.x.x%20path) 错误码中会输出）配置新的目录。

## OceanBase 部署相关报错

### OBD-2000：x.x.x.x not enough memory

错误原因：内存不足。

解决方法：obd 的启动严格按照 MemAvailable 来计算内存。如果存在可以释放的 cached，您可以先使用以下命令尝试释放。

```shell
sudo sysctl -w vm.drop_caches=1
# 或
sudo echo 1 > /proc/sys/vm/drop_caches

```

如果内存仍然不足请执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调整 `memory_limt` 和 `system_memory`，通常情况下 `memory_limt/3 ≤ system_memory ≤ memory_limt/2`。

#### 注意

- 部署 OceanBase 数据库 4.x 之前版本时，`memory_limt` 不能低于 8G，即您的可用内存必须大于等于 8G。
 - 部署 OceanBase 数据库 4.x 版本时，`memory_limt` 不能低于 6G，即您的可用内存必须大于等于 6G。

### OBD-2001：server can not migrate in

错误原因：可用的 Unit 数小于 `--unit-num`。

解决方法：请您修改传入的 `--unit-num`。您可使用以下命令查看当前可用的 Unit 数。

```sql
select count(*) num from oceanbase.__all_server where status = 'active' and start_service_time > 0

```

### OBD-2002：failed to start x.x.x.x observer

错误原因：出现该报错的原因有很多，常见的原因有以下两种。

- `memory_limit` 小于 8G。
 - `system_memory` 太大或太小。通常情况下 `memory_limt/3 ≤ system_memory ≤ memory_limt/2`。

解决方法：

- 若排查后发现该报错为上述两条原因造成，根据对应原因进行调整即可；
 - 若排查后发现不是由上述两条原因引起的报错，您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解答。

### OBD-2003：not enough disk space for clog. Use redo_dir to set other disk for clog, or reduce the value of datafile_size

错误原因：磁盘使用率高于使用率要求。

- 若您采用的是自动部署方式，要求磁盘使用率不能高于 72%。
 - 若您采用的是手动部署的方式，在不更改配置的情况下，要求磁盘使用率不能高于 64%。

#### 注意

在 redo_dir 和 data_dir 同盘的情况下，计算磁盘使用率时会算上 datafile 将要占用的空间。

解决方法：请您对磁盘的存储进行调整，根据部署方式的不同有如下两种调整方法。

- 命令行部署时，您可使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，修改磁盘相关的配置项（如 `datafile_size`、`memory_limit`、`log_disk_size`），保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，您可单击 **上一步**，在 **集群配置**（部署 OceanBase 数据库时）或 **MetaDB 配置**（部署 OCP 时）页面，打开 **集群配置** 中的 **更多配置**，修改磁盘相关配置项（如 `datafile_size`、`memory_limit`、`log_disk_size`）。

### OBD-2004：Invalid: xxx is not a single server configuration item

错误原因：修改的配置项是一个全局配置项，不能对某个 server 单独修改。

解决方法：您可将需修改的配置改放到 global 下。

### OBD-2005：Failed to register cluster. xxx may have been registered in xxx

错误原因：注册集群失败，或者该集群已经被注册。

解决办法：您需先查看集群是否配置了 `appname` 配置项，未配置的情况下无法将集群注册到 obconfigserver 中。之后根据集群是否已部署分为如下两种情况。

- 情况一：若您想要注册到 obconfigserver 中的集群为待部署的 OceanBase 集群，请先注释 `obconfig_url` 配置项，启动集群后再执行 `obd cluster edit-config` 命令配置 `obconfig_url`。目前暂不支持将待部署集群注册到 obconfigserver 中。
 - 情况二：若您想要注册到 obconfigserver 中的集群为已成功启动的集群，可先确定配置项 `obconfig_url` 是否配置正确。

     - 若 `obconfig_url` 配置不正确，您可执行 `obd cluster edit-config` 命令打开配置文件，将正确的 Config URL 配置给配置项 `obconfig_url`。
     - 若您确认 `obconfig_url` 配置正确并希望强制覆盖，可在执行 `obd cluster start` 命令时加上 `-f` 参数覆盖已注册的集群。

### OBD-2006：x.x.x.x has more than one network interface. Please set `devname` for x.x.x.x

错误原因：机器具有多个网络接口，obd 获取不到 devname。

### OBD-2007：x.x.x.x xxx fail to ping x.x.x.x

错误原因：机器之间相互 ping 不通。

解决办法：

1. 检查各个节点网络是否畅通。
 2. 检查网络配置（`devname`/`local_ip`）是否与实际匹配，可通过 `ip addr` 命令查看 IP 和网卡对应关系。不匹配的情况下根据部署方式的不同有如下两种修改方法。

      - 命令行部署时，执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，在配置文件中添加或修改 `devname`，保存后执行命令行中输出的命令使修改生效。
      - 图形化界面部署时，可单击 **上一步**，在 **集群配置**（部署 OceanBase 数据库时）或 **MetaDB 配置**（部署 OCP 时）页面，打开 **集群配置** 中的 **更多配置**，设置 devname。
 3. 如果出现的错误为 `operation not permitted`，请检查 ping 文件权限，您可以尝试执行 `sudo chmod u+s /usr/bin/ping` 命令修改 ping 文件权限。
 4. 如果出现的错误为 `No such file or directory`，说明您环境中没有 ping 命令，可尝试执行 `sudo yum install iputils` 或 `sudo apt-get install iputils-ping` 安装 ping 命令。

### OBD-2008：Cluster clocks are out of sync

错误原因：集群之间时钟超时。

解决办法：同步各个服务器的时钟。

### OBD-2009：x.x.x.x: when production_mode is True, xxx can not be less then xxx

错误原因：当生产模式开启时，`__min_full_resource_pool_mem`、`memory_limit` 等配置项不能小于规定值。

解决办法：

- 部署非生产环境时，执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，修改配置项 `production_mode` 为 `False`，保存后执行命令行中输出的命令使修改生效。
 - 部署生产环境时， 执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，修改配置项 `__min_full_resource_pool_mem`、`memory_limit`，使其大于规定值，保存后执行命令行中输出的命令使修改生效。

### OBD-2010：x.x.x.x: system_memory too large. system_memory must be less than memory_limit/memory_limit_percentage

错误原因：配置项 `system_memory` 配置过大，该配置项值必须小于 `memory_limit` 或 `memory_limit_percentage` * `total_memory`。

解决办法：根据部署方式的不同有如下两种解决方法。

- 命令行部署时，可使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，修改配置项 `system_memory`，保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **集群配置**（部署 OceanBase 数据库时）或 **MetaDB 配置**（部署 OCP 时）页面，打开 **集群配置** 中的 **更多配置**，设置 `system_memory`。

### OBD-2011：x.x.x.x: fail to get memory info.\nPlease configure 'memory_limit' manually in configuration file

错误原因：服务器获取不到内存信息。

- 命令行部署时，执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，配置 `memory_limit` 信息，保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **集群配置**（部署 OceanBase 数据库时）或 **MetaDB 配置**（部署 OCP 时）页面，打开 **集群配置** 中的 **更多配置**，设置 `memory_limit`。

## 测试相关报错

### OBD-3000：parse cmd failed

错误原因：mysqltest 初始化文件必须是以 `.sql` 结尾的 sql 文件。

解决方法：请您检查 `--init-sql-files` 的参数是否满足此要求。

### OBD-3001：xxx.sql not found

错误原因：mysqltest 初始化时找不到对应的初始化文件。

解决方法：请您检查 `--init-sql-dir` 目录下是否包含 `--init-sql-files` 声明的文件。

### OBD-3002：Failed to load data

错误原因：出现该报错的原因有很多，常见的原因有以下两种。

1. 租户资源不足或者压力过大。
 2. 数据构建脚本报错。

解决方法：

对于情况 1，可使用资源规格更大的租户，或者调整 warehouses、load-workers 等参数值以减少构建压力。

对于情况 2，由于数据构建脚本是由 TPC 官网提供，可以先尝试重新执行脚本，如果问题仍然存在请到官网 [问答区](https://ask.oceanbase.com/) 提问，会有专业人员为您解答。

### OBD-3003：Failed to run TPC-C benchmark

错误原因：

1. 测试进程卡死后因为超时被杀死。
 2. TPC-C 测试命令返回报错。

解决方法：

- 直接重新测试，或通过调整 terminals 等参数减少测试压力后重新测试。
 - 如果没有使用官网提供的 obtpcc 包，请使用 obtpcc 进行测试。

如果上述方法均无法解决问题，请到官网 [问答区](https://ask.oceanbase.com/) 提问，会有专业人员为您解答。

## OBAgent 相关报错

### OBD-4000：Fail to reload x.x.x.x

错误原因：该节点的 `http_basic_auth_password` 与 obd 中存储的 `http_basic_auth_password` 不符，导致 obd 不能正确的访问 obagent。

解决方法：若您确认二者相符，请检查此次修改的选项中是否包含了当前版本不支持的配置项或者配置项名称是否书写错误。

### OBD-4001：Fail to send config file to x.x.x.x

错误原因：出现该报错的原因有两点，请您依次进行检查。

- obagent home_path 磁盘空间是否充足。
 - 配置文件中的 user 用户（未填的情况下默认为当前用户）是否拥有 obagent home_path 的写权限。

- 运行 `obd cluster edit-config <deploy_name>` 命令添加或修改 user 信息，保存后执行命令行中输出的命令使修改生效。
 - 登陆到目标机器，为当前账号赋予对应目录的写权限。

### OBD-4002：{servers}: Failed to obtain the configuration of the OceanBase database component

错误原因：配置文件中 OBAgent 组件配置的服务器信息（`servers` 部分）和 OceanBase 数据库组件不一致，导致 OBAgent 无法获取 OceanBase 数据库配置。

解决方法：可执行 `obd cluster edit-config` 命令修改配置文件中 OBAgent 或 OceanBase 数据库组件下 `servers` 部分的配置，使两者保持一致。

## ODP 相关报错

### OBD-4100：x.x.x.x need config "rs_list" or "obproxy_config_server_url"

错误原因：服务器获取不到 rs_list/obproxy_config_server_url 信息。

解决办法：执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，添加或修改 `rs_list` 或 `obproxy_config_server_url` 配置项，保存后执行命令行中输出的命令使修改生效。

### OBD-4101：failed to start x.x.x.x obproxy: xxx

错误原因：启动 ODP 失败。

解决办法：需根据提示进一步分析。

### ODP-4102：When the value of client_session_id_version is set to xx, the valid range of proxy_id is xxxx

错误原因：`proxy_id` 配置项的取值不在有效范围内。根据 `client_session_id_version` 配置项的取值不同，`proxy_id` 配置项的有效范围有如下两种情况。

- 配置项 `client_session_id_version` 的值配置为 `1` 时，配置项 `proxy_id` 的有效范围为 [1,255]。
 - 配置项 `client_session_id_version` 的值配置为 `2` 时，配置项 `proxy_id` 的有效范围为 [1,8191]。

解决方法：执行 `obd cluster edit-config` 命令打开配置文件，修改 `proxy_id` 配置项的值。修改并保存配置文件后，您需根据命令行页面的输出信息，复制并执行对应的命令重启集群。

## Grafana 相关报错

### OBD-4200：x.x.x.x grafana admin password should not be 'admin'

错误原因：grafana 组件 admin 用户的 password 不应该是 admin。

解决办法：执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，添加或修改 password 信息，保存后执行命令行中输出的命令使修改生效。

### OBD-4201：x.x.x.x grafana admin password length should not be less than 5

错误原因：grafana 组件 admin 用户的 password 长度不能小于 5 位。

## OCP Express 相关报错

### OBD-4300：x.x.x.x: failed to query java version, you may not have java installed

错误原因：obd 获取不到服务器上 Java。

解决办法：

1. 安装 Java，详细步骤可参考 [常见问题](https://www.oceanbase.com/docs/community-obd-cn-1000000001477766) 中 **部署 OCP Express 前如何配置 Java 环境**。
 2. 如果 Java 已经安装，可以通过配置 `java_bin` 来指定 Java 可执行文件的路径。根据部署方式的不同有如下两种配置方法。

      - 命令行部署时，可使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，修改配置文件中 `java_bin` 配置项为 Java 可执行文件路径，保存后执行命令行中输出的命令使修改生效。
      - 图形化界面部署时，可单击 **上一步**，在 **集群配置** 页面，打开 **组件配置** 中的 **更多配置**，修改 `java_bin` 配置项为 Java 可执行文件路径。

### OBD-4301：x.x.x.x: ocp-express need java with version xxx

错误原因：服务器上 Java 版本过低。

解决办法：安装提示版本的 Java，如果目标版本 Java 已经安装，可以通过配置 `java_bin` 来指定 Java 可执行文件的路径，具体方法可参见 **OBD-4300**。

### OBD-4302：x.x.x.x not enough memory. (Free: xxx, Need: xxx)

错误原因：服务器上没有足够内存

解决办法：分为以下几种解决方法。

- 若机器本身内存不足，可调小 `memory_size` 配置项的值，或更换其他内存足够的机器。根据部署方式的不同有如下两种调小 `memory_size` 配置项值的方法。

     - 命令行部署时，执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调小 `memory_size` 配置值，保存后执行命令行中输出的命令使修改生效。
     - 图形化界面部署时，可单击 **上一步**，在 **集群配置** 页面，打开 **集群配置** 中的 **更多配置**，减小 `memory_size` 配置项的值。
 - 若是机器剩余内存资源不足，如果存在可以释放的 cached，您可以先使用以下命令尝试释放。

  ```

### OBD-4303：x.x.x.x xxx not enough disk space. (Avail: xxx, Need: xxx)

错误原因：服务器磁盘没有足够的空间。

解决办法：请您自行检查并清理磁盘，或调小 `logging_file_total_size_cap` 配置项的值。根据部署方式的不同有如下两种调小 `logging_file_total_size_cap` 配置项值的方法。

- 命令行部署时，执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调小 `logging_file_total_size_cap` 配置值，保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **集群配置** 页面，打开 **组件配置** 中的 **更多配置**，减小 `logging_file_total_size_cap` 配置项的值。

### OBD-4304：OCP express xxx needs to use xxx with version xxx or above

错误原因：部署 ocp-express 组件需要使用对应版本的组件。

解决办法：使用 `obd cluster edit-config <deploy name>` 命令打开配置文件，修改报错对应组件的版本（`version`），保存后执行命令行中输出的命令使修改生效。

### OBD-4305： There is not enough xxx for ocp meta tenant

错误原因：没有足够的日志磁盘、内存去创建 OCP meta 租户。

解决办法：您可尝试清理磁盘、内存后重试，或根据部署方式的不同参考如下两种方法修改相关配置项。

- 命令行部署时，如果配置了集群规格，可执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调大 `oceanbase-ce` 组件的相应配置项（例如内存相关配置项 `memory_limit`/`memory_limit_percentage`、日志盘相关配置项 `log_disk_size`/`log_disk_percentage`），或调小 `ocp_meta_tenant`->`memory_size` 配置项，保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **集群配置** 页面，打开 **集群配置** 中的 **更多配置**，减小 `ocp_meta_tenant_memory_size` 配置项的值，或调大 `memory_limit` 和 `log_disk_size` 的值。

## OCP 相关报错

### OBD-4350: The Server have running task

错误原因：升级 OCP 时，OCP 中存在运行中的任务。

解决方法：为避免因升级 OCP 导致任务中断，请等待任务执行完成后，再重新进行检查。

### OBD-4351: The Server have gone

错误原因：升级 OCP 时，OCP 中主机不处于在线状态。

解决方法：查询当前 OCP 管理主机的状态，详细操作可参见《OceanBase 云平台》文档 [管理主机操作列表](https://www.oceanbase.com/docs/common-ocp-1000000000348005)。

- 如果主机状态为 **新提交**，该主机是新添加的主机，请等添加主机任务完成后，重新进行检查。
 - 如果主机状态为 **离线**，可以尝试重装 OCP Agent，详细操作可参见《OceanBase 云平台》文档 [重装 OCP Agent](https://www.oceanbase.com/docs/common-ocp-1000000000348006)。

### OBD-4352: Metadb version not fewer than V2.2.50

错误原因：OCP 的 MetaDB 版本低于 2.2.50。

解决方法：您可升级 OCP 的 MetaDB 至最新的 LTS 版本。

### OBD-4353: {server}: Excessive deviation between machine time and ob time

错误原因: 主机时间和 MetaDB 时间不一致。

解决方法：您可参照如下步骤进行排查处理。

1. 在对应主机上执行如下命令确认服务器是否安装时钟同步服务（Chrony 或 NTP）。

   ```shell
   rpm -qa | grep chrony   # 检查是否安装了 Chrony 服务
   rpm -qa | grep ntp      # 检查是否安装了 NTP 服务

   ```

   根据输出结果有如下两种处理方式。

      - 若返回相关版本信息，说明已安装对应时钟同步服务，请继续执行步骤 2。
      - 若无返回信息，说明未安装对应时钟同步服务。若 Chrony 和 NTP 服务均未安装，请先安装时钟同步服务。Chrony 和 NTP 服务的安装与配置可参考互联网上分享的案例。此处只做简要说明。

            - 执行如下命令安装时钟同步服务，Chrony 或 NTP 中任选一个安装即可。

             ```shell
             sudo yum install -y chrony    # 安装 Chrony 服务
             sudo yum install -y ntp       # 安装 NTP 服务

             ```
            - 执行如下命令启动时钟同步服务。

             ```shell
             systemctl start chronyd     # 启动 Chrony 服务
             systemctl start ntpd        # 启动 NTP 服务

             ```
            - 重新进行预检查，若仍然报错，您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解决。
 2. 执行如下命令检查时钟同步进程（chronyd 或 ntpd）是否异常退出。

   ```shell
   systemctl status chronyd      # 检查 Chrony 服务状态
   systemctl status ntpd         # 检查 NTP 服务状态

   ```

   根据返回结果有如下两种处理方式。

      - 若返回值信息中 Active 信息为 active（running），您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解决。
      - 若返回值信息中 Active 信息为 inactive（dead），则时钟同步服务异常。尝试执行如下命令重启服务。

       ```shell
       systemctl restart chronyd      # 重启 Chrony 服务
       systemctl restart ntpd         # 重启 NTP 服务

       ```

       重启服务后，可再次执行部署操作，若仍然报错，您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解决。

### OBD-4354: {user}@{server}: Not exist

错误原因: OCP 启动用户不存在。

解决方法：使用其他启动用户或者在 OCP 所在主机上创建启动用户，创建用户的操作可参见《OceanBase 云平台》文档 [用户规划](https://www.oceanbase.com/docs/common-ocp-1000000000368844)。

### OBD-4355: {user}@{ip}: user xxx not in sudoers or sudoers file not exist

错误原因: 用户不能免密执行 sudo 命令。

解决方法: 为用户配置 sudo 免密或者使用其他有免密 sudo 权限的用户。设置 sudo 权限的步骤可参见《OceanBase 云平台》文档 [用户规划](https://www.oceanbase.com/docs/common-ocp-1000000000368844)。

### OBD-4356: failed to connect meta db

错误原因: MetaDB 无法连接。

解决方法: 检查 MetaDB 的连接串是否正确。

### OBD-4357: database in jdbc_url is not exist

错误原因: JDBC 连接中的 database 不存在。

解决方法: 在 MetaDB 中创建对应的 database。

### OBD-4358: unmatched jdbc url, skip meta db connection check

错误原因: JDBC URL 格式错误。

解决方法: 检查 `jdbc_url` 的配置，确认满足示例形式：`"^jdbc:\S+://(\S+?)(|:\d+)/(\S+)"`。

### OBD-4359: {server}: ocp-server need java with version xxx and update release must greater than 161

错误原因: Java 版本不满足 OCP 要求。

解决方法: 升级 Java 版本到 OCP 要求的最小版本 `1.8.0_161` 或以上。

### OBD-4360: {server}: clockdiff not exists. Please install clockdiff manually

错误原因: 主机上没有 clockdiff 命令。

解决方法: 安装 clockdiff。

### OBD-4361: tenant(xxx) already exist

错误原因: 租户已存在。

解决方法: 您可登录 MetaDB 删除同名租户，或使用其他租户名。

### OBD-4362: {server}:{path} access failed for current user, {server}:{cur_path} access succeed, please run `chmod -R 755 {cur_path}`

错误原因: 用户没有操作涉及目录的权限。

解决方法: 您可执行输出的 chmod 命令为用户增加对应目录的权限。

### OBD-4363：ocp server xxx needs to use xxx with version xxx or above

错误原因：部署 OCP 时需要使用对应版本的组件。

解决办法：执行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，修改报错对应组件的版本（`version`），保存后执行命令行中输出的命令使修改生效。

### OBD-4364：(xx.xx.xx.xx) not enough memory

错误原因：服务器上没有足够内存

     - 命令行部署时，执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调小 `memory_size` 配置值，保存后执行命令行中输出的命令使修改生效。
     - 图形化界面部署时，可单击 **上一步**，在 **MetaDB 配置** 页面，打开 **集群配置** 中的 **更多配置**，减小 `memory_size` 配置项的值。
 - 若是机器剩余内存资源不足，如果存在可以释放的 cached，您可以先使用以下命令尝试释放。

  ```

### OBD-4365：x.x.x.x xxx not enough disk space. (Avail: xxx, Need: xxx)

错误原因：服务器磁盘没有足够的空间。

解决办法：请您自行检查并清理磁盘。

### OBD-4366：There is not enough {resource}. (Avail: {avail}, need: {need})

错误原因：metadb 资源不足。

解决方法：根据部署方式的不同有如下两种解决方法。

- 命令行部署时，执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调大 `oceanbase-ce` 组件下 `memory_limit`、`cpu_count`、`log_disk_size` 配置项的值，保存后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **MetaDB 配置** 页面，打开 **集群配置** 中的 **更多配置**，增大 `memroy_limit`、`cpu_count`、`log_disk_size` 配置项的值。

### OBD-4367：The allocated memory for the provided meta database is currently insufficient for creating a tenant

错误原因：metadb 内存资源不足以创建租户。

解决方法：您可选择调大 metadb 内存，或调小租户内存。根据部署方式的不同有如下两种解决方法。

- 命令行部署时，执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调大 `oceanbase-ce` 组件下 `memory_limit` 配置项的值，或调小 `oceanbase-ce` 组件下 `ocp_meta_tenant`->`memory_size`、`ocp_monitor_tenant`->`memory_size` 配置项的值。保存修改后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **MetaDB 配置** 页面打开 **集群配置** 中的 **更多配置**，增大 `memroy_limit` 配置项的值；或在 **OCP 配置** 页面调小元信息租户配置、监控数据租户配置模块的内存值。

### OBD-4368：The allocated memory for the provided meta database is currently insufficient for creating a tenant

错误原因：metadb 内存资源不足以创建租户。

解决方法：您需调小租户内存。根据部署方式的不同有如下两种解决方法。

- 命令行部署时，执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，调小 `ocp-server-ce` 组件下 `ocp_meta_tenant`->`memory_size`、`ocp_monitor_tenant`->`memory_size` 配置项的值。保存修改后执行命令行中输出的命令使修改生效。
 - 图形化界面部署时，可单击 **上一步**，在 **OCP 配置** 页面调小元信息租户配置、监控数据租户配置模块的内存值。

## obconfigserver 相关报错

### OBD-4401：Failed to start x.x.x.x ob-configserver

错误原因：

1. 原因一：obconfigserver 启动时，出现 obconfigserver 内部运行错误，服务终止运行。
 2. 原因二：目标部署服务器中，obconfigserver 的监听端口未开启，导致不能访问。

解决办法：您可登录目标部署服务器后，执行如下命令判断错误原因。

```shell
ps -ef | grep $home_path/bin/ob-configserver

```

`$home_path` 为配置的 obconfigserver 工作目录，如果输出中没有正在运行的 obconfigserver 进程，那么错误原因为原因一，反之则为原因二。

对于原因一，您可在 `$home_path/log/ob-configserver.log` 文件中查看错误信息关键字，多数情况为在使用 sqlite3 数据库类型的情况下 `connection_url` 配置错误，将相应错误配置修改正确即可。若排查后无法解决，您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解答。

对于原因二，有以下两种解决办法。

- 若您使用的是云服务器，请登录相应云服务器进行服务器端口白名单添加。
 - 若您使用的是自行搭建的服务器，请根据相应操作系统版本开启端口监听。

### OBD-4402：x.x.x.x ob-configserver config error

错误原因：obconfigserver 相关配置检测到错误。

解决办法：您可根据具体描述，检查相应的配置项是否存在漏写或参数不合规等情况，有如下几种情况。

- 在使用 VIP 的情况下，`vip_address` 和 `vip_port` 是否一并设置使用。
 - `database_type` 和 `connection_url` 配置项是否均已配置（在使用 sqlite3 数据库类型的情况下，`connection_url` 可不配置）。
 - `database_type` 配置项是否配置正确，`database_type` 配置项仅支持取值为 `mysql` 或 `sqlite3`。
 - 在使用 sqlite3 数据库类型的情况下，`connection_url` 是否配置为绝对路径。

### OBD-4403：ob-configserver connect to sqlite failed: x.x.x.x: /xxx/xxx/xxx: permission denied

错误原因：obconfigserver 在使用 sqlite3 作为数据库的情况，配置文件中的 user 用户（未配置的情况下默认为当前用户）没有 `connection_url` 配置中目录的写权限。

解决办法：您可通过以下两种办法解决。

- 运行 `obd cluster edit-config <deploy_name>` 命令打开配置文件，添加或修改 user 信息，保存后执行命令行中输出的命令使修改生效。
 - 登录到目标机器，为当前账号赋予对应目录的写权限。

### OBD-4404：ob-configserver connect to mysql failed: xxx: failed url to connect to database: xxx

错误原因：`database_type` 设置为 `mysql` 时，`connection_url` 中配置的数据库无法连接。

解决办法：验证 `connection_url` 中配置的数据库是否可以连接，若无法连接请更换为可连接的数据库。

### OBD-4405：When you configure multiple ob-configserver servers, please set vip_address and vip_port

错误原因：在多个机器节点部署 obconfigserver 时，没有使用 VIP 配置。

解决方法：在多个节点部署 obconfigserver 时，建议提前部署负载均衡，并配置 `vip_address` 和 `vip_port`。根据部署方式的不同参考如下两种方法配置相关配置项。

- 命令行部署时，可执行 `obd cluster edit-config <deploy name>` 命令打开配置文件，在配置文件中配置 `vip_address` 和 `vip_port`，保存后执行命令行中输出的命令使配置生效。
 - 图形化界面部署时，可单击 **上一步**，在 **集群配置** 页面，打开 **组件配置** 模块的 **更多配置**，配置 `vip_address` 和 `vip_port`。

## oblogproxy 相关报错

### OBD-4501：oblogproxy xxx needs to use xxx with version xxx or above

错误原因：部署 oblogproxy 需要使用对应版本的组件。

## SQL 相关报错

### OBD-5000：sql execute failed

错误原因：SQL 执行失败。

解决办法：需根据具体情况确定解决办法。

## obdiag 相关报错

### OBD-6000: Failed to executable obdiag command, you may not have obdiag installed

错误原因：未安装 obdiag 组件。

解决办法：您可参考如下命令安装 obdiag 组件。

```shell
obd obdiag deploy

```

### OBD-6001: obdiag must contain depend components xxxx

错误原因：未安装 obdiag 所依赖的组件。obd 上的 obdiag 服务于通过 obd 部署的 OceanBase 或者 ODP 集群，在 obd 未部署 OceanBase 或者 ODP 集群的情况下会报该错。

解决办法：安装 obdiag 依赖的组件，即 obd 中至少注册有一个 OceanBase 或者 ODP 集群。您可通过 `obd cluster list` 命令查看当前 obd 内注册的全部集群。

### OBD-6002: obdiag options xxx format error, please check the value : xxx

错误原因：obdiag 命令的参数值格式设置不符合要求。

解决办法：您可在对应命令后使用 `-h` 选项查看 obdiag 命令的参数要求，传入正确的 obdiag 参数格式，示例如下。

```shell
# example
obd obdiag gather -h

obd obdiag gather log -h

```

### OBD-6003：Failed to excute obdiag function xxx

错误原因：obdiag 执行命令失败，大概率是执行了不存在的 obdiag 命令项。

解决办法：您可执行如下命令查看 obd 支持的 obdiag 命令项。

```shell
obd obdiag -h

```

## 非预期报错

### OBD-9999: Unexpected exception: need to be posted on "[https://ask.oceanbase.com](https://ask.oceanbase.com)", and we will help you resolve them

错误原因：操作过程中出现了非预期的异常。

解决方法：您可到官网 [问答区](https://ask.oceanbase.com/) 进行提问，会有专业人员为您解决。

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