# 错误码 本文总结了使用 OBD 过程中可能会遇到的相关报错,主要包括以下几个方面。 ## 通用报错 ### OBD-1000:Configuration conflict x.x.x.x: xxx port is used for x.x.x.x 错误原因:配置文件中存在端口冲突。 解决方法:请您检查配置并进行修改。 ### OBD-1001:Configuration conflict x.x.x.x: xxx is used for x.x.x.x 错误原因:配置文件中存在路径冲突。 解决方法:请您检查配置并进行修改。 ### OBD-1002:x.x.x.x:xxx port is already used 错误原因:端口已经被占用。 解决方法:请您检查配置并更换端口。 ### OBD-1003:Fail to init x.x.x.x path 错误原因:配置文件中的 user 用户(未填的情况下默认为当前用户)没有对应目录的写权限。 解决方法:您可通过以下两种方式解决。 - 运行命令添加或修改 user 信息。 ```shell obd cluster edit-config ``` - 登陆到目标机器,为当前账号赋予对应目录的写权限。 ### OBD-1004:fail to clean x.x.x.x:xxx 错误原因:检查配置文件中的 user 用户(未填的情况下默认为当前用户)是否有 home_path 的写权限。 解决方法:您可通过以下两种方式解决。 - 运行命令添加或修改 user 信息。 ```shell obd cluster edit-config ``` - 登陆到目标机器,为当前账号赋予对应目录的写权限。 ### OBD-1005:Some of the servers in the cluster have been stopped 错误原因:后续的操作需要所有的机器的服务全部在线,而当前配置内的部分机器已经停止。 解决方法:您可使用 `obd cluster start --wop` 无参启动,将全部的服务拉起。 ## OceanBase 部署相关报错 ### OBD-2000:x.x.x.x not enough memory 错误原因:内存不足。 解决方法:OBD 的启动严格按照 MemAvailable 来计算内存。如果存在可以释放的 cached,您可以先使用以下命令尝试释放。 ```shell echo 3 > /proc/sys/vm/drop_caches ``` 如果内存仍然不足请通过 `edit-config` 调整 `memory_limt` 和 `system_memory`,通常情况下 `memory_limt/3 ≤ system_memory ≤ memory_limt/2`。 > **注意** > > `memory_limt` 不能低于 8G,即您的可用内存必须大于等于 8G。 ### 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://open.oceanbase.com/answer) 进行提问,会有专业人员为您解答。 ### 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-2004:Invalid: xxx is not a single server configuration item 错误原因:修改的配置项是一个全局配置项,不能对某个 server 单独修改。 解决方法:您可将需修改的配置改放到 global 下。 ## mysqltest 相关报错 ### OBD-3000:parse cmd failed 错误原因:mysqltest 初始化文件必须是以 `.sql` 结尾的 sql 文件。 解决方法:请您检查 `--init-sql-files` 的参数是否满足此要求。 ### OBD-3001:xxx.sql not found 错误原因:mysqltest 初始化时找不到对应的初始化文件。 解决方法:请您检查 `--init-sql-dir` 目录下是否包含 `--init-sql-files` 声明的文件。 ## 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 的写权限。 解决方法:您可通过以下两种方式解决。 - 运行命令添加或修改 user 信息。 ```shell obd cluster edit-config ``` - 登陆到目标机器,为当前账号赋予对应目录的写权限。