首批通过分布式安全可靠测评,为关键业务系统打造
最后更新时间:2026-04-16 14:32:58
本文总结了使用 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 服务端进程 & 生态产品默认端口号。
解决方法:您可选择结束该端口的进程,或更换为未被占用的端口。您可根据自身情况选择以下任一方式更换端口。
方法一:若您使用配置文件部署,可使用
obd cluster edit-config <deploy name>命令打开配置文件并修改配置文件中对应的端口配置。修改完成后继续执行obd cluster start命令启动即可。说明
方法一中提到的命令详细介绍可参见官网《OceanBase 安装部署工具》文档 obd 命令/集群命令组。
方法二:若您使用
obd demo命令部署,可通过如下命令指定端口,此处以指定 oceanbase-ce 组件的 mysql_port 为例。obd demo --oceanbase-ce.mysql_port=3881说明
方法二中提到的命令详细介绍可参见官网《OceanBase 安装部署工具》文档 obd 命令/快速部署命令。
方法三:若您通过 obd 白屏界面部署,可单击 上一步 直到找到报错中对应的端口,并修改为未被占用的端口。
OBD-1002:Fail to init x.x.x.x path
错误原因:有如下两种可能原因,您可根据报错的具体信息进行判断。
配置文件中的 user 用户(未填的情况下默认为当前用户)没有对应目录的写权限。
配置的目录不为空。
解决方法:
对于情况 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 cluster edit-config <deploy name>命令打开配置文件,添加或修改配置文件中的 user 信息,保存后执行命令行中输出的命令使修改生效。登陆到目标机器,为当前账号赋予对应目录的写权限。
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
错误原因:
obd 和目标机器之间网络不连通。
对应的组件进程已经退出或者不提供服务。
账号密码不匹配。
解决方法:
对于情况 1,请自行修复网络。
对于情况 2,可尝试再次启动组件,如果依旧启动失败,请参考启动失败的错误进行排查,如 OBD-2002。
对于情况 3,常见原因是用户直接执行 SQL 命令修改了密码,账号密码与配置文件中存储的不同导致 obd 连接不到组件。该种情况下有以下两种解决方法。
执行 SQL 命令将密码改回与 obd 储存的密码一致。
执行
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。
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。
sudo sysctl fs.aio-max-nr=1048576
OBD-1012:xxx
错误原因:
类型转换异常,如 int 型参数传入字符串。
参数值超限,如
rpc_port的取值区间是 1025~65535,则rpc_port配置的值不在该区间就会报错。参数缺失,如关键参数如
home_path未配置。
解决方法:
对于情况 1,请您检查参数类型并修改。
对于情况 2,请您检查传参值并修改。
对于情况 3,请您检查传参配置,若存在参数缺失需配置对应参数。
OBD-1013:xxx@x.x.x.x connect failed: xxx
错误原因:出现该报错的原因有很多,常见的原因有以下两种。
用户名或密码错误。
连接超时。
解决方法:若报错信息中出现如下内容,您可执行 obd env set OBD_DISABLE_RSA_ALGORITHMS 1 命令禁用 rsa-sha2-512 和 rsa-sha2-256 算法。
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 时)页面修改 部署用户配置 模块信息。
若排查处理后仍然无法部署成功,您可到官网 问答区 进行提问,会有专业人员为您解答。
OBD-1015:Unable to confirm the primary-standby relationship, rerun with "--ignore-standby" option if you want to proceed despite the risks
错误原因:当前操作涉及到的集群或租户曾有主备关系,但执行命令过程中校验是否存在主备关系时出现异常,无法确认。
解决方法:您需确认当前集群或租户是否在其他集群上存在备租户,根据集群是否可用有如下两种检测方法。
当前集群可用时,您可执行如下命令查看是否存在备租户,此处以集群名为 test 为例。
obd cluster tenant show test -g当前集群不可用时,您可执行如下命令查看当前集群或租户有哪些主备关联关系,此处以集群名为 test 为例。
cat ~/.obd/cluster/test/inner_config.yaml根据文件输出,到对应的集群上执行如下命令查看主备关系是否仍存在,此处以对应集群名为 test-standby 为例。
obd cluster tenant show test-standby -g
结合检测结果以及当前操作,有如下几种处理方法。处理方法中涉及到命令详细用法可参见官网《OceanBase 安装部署工具》文档 obd 命令/集群命令组 中对应命令介绍。
当前操作为升级操作且当前集群或租户存在备租户,因备租户的版本不得低于主租户,您可先升级备租户后再升级主租户。若当前集群中既存在主租户又存在备租户,您可先执行 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 命令。
解决方法:您可重新操作,或到官网 问答区 进行提问,会有专业人员为您解答。
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 <deploy_name>命令修改配置文件,将配置项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 <deploy_name> 命令打开配置文件,查看集群中的组件信息,确认是否已存在待添加的组件。
OBD-1020: Update config for component xxx failed
错误原因:更新组件配置失败。
解决方法:参考输出的错误码信息检查配置文件。若未检查出原因,您可到官网 问答区 进行提问,会有专业人员为您解答。
OBD-1021: Component xxx is not in cluster
错误原因:待删除的组件在集群中不存在。
解决方法:您可以执行 obd cluster edit-config <deploy_name> 命令打开配置文件,查看集群中的组件信息,确认是否存在待删除的组件。
OBD-1022: Component xxx still depends by xxx, could not remove
错误原因:待删除的组件被集群中的其他组件依赖,obd 不支持删除存在依赖情况的组件。
解决方法:您可以执行 obd cluster edit-config <deploy_name> 命令打开配置文件,查看集群组件之间的依赖关系(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)和特殊字符(
~!@#%^&*_-+=|(){}[]:;,.?/$`'"<>\)
OBAgent 中 HTTP 服务认证密码(
http_basic_auth_password)需满足如下规范:字符长度在 [0, +∞) 范围内
支持包含数字(0~9)、大写字母(A~Z)、小写字母(a~z)和特殊字符(
~^*{}[]_-+)
解决方法:命令行操作时,您可执行 obd cluster edit-config <deploy_name> 命令打开配置文件,修改配置文件中对应组件下对应的配置项并保存,之后复制命令行输出的重启命令并执行。
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 <deploy_name> 命令将 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 错误码中会输出),或在部署命令后加
-f参数自动清空对应目录(复制错误码输出的命令即可)。配置新目录:可执行
obd cluster edit-config <deploy name>命令打开配置文件,为对应配置项(OBD-1002 错误码中会输出)配置新的目录。
OceanBase 部署相关报错
OBD-2000:x.x.x.x not enough memory
错误原因:内存不足。
解决方法:obd 的启动严格按照 MemAvailable 来计算内存。如果存在可以释放的 cached,您可以先使用以下命令尝试释放。
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 数。
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。
解决方法:
若排查后发现该报错为上述两条原因造成,根据对应原因进行调整即可;
若排查后发现不是由上述两条原因引起的报错,您可到官网 问答区 进行提问,会有专业人员为您解答。
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 <deploy_name>命令配置obconfig_url。目前暂不支持将待部署集群注册到 obconfigserver 中。情况二:若您想要注册到 obconfigserver 中的集群为已成功启动的集群,可先确定配置项
obconfig_url是否配置正确。若
obconfig_url配置不正确,您可执行obd cluster edit-config <deploy_name>命令打开配置文件,将正确的 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 cluster edit-config <deploy_name>命令打开配置文件,在配置文件中添加或修改devname,保存后执行命令行中输出的命令使修改生效。图形化界面部署时,可单击 上一步,在 集群配置(部署 OceanBase 数据库时)或 MetaDB 配置(部署 OCP 时)页面,打开 集群配置 中的 更多配置,设置 devname。
OBD-2007:x.x.x.x xxx fail to ping x.x.x.x
错误原因:机器之间相互 ping 不通。
解决方法:
检查各个节点网络是否畅通。
检查网络配置(
devname/local_ip)是否与实际匹配,可通过ip addr命令查看 IP 和网卡对应关系。不匹配的情况下根据部署方式的不同有如下两种修改方法。命令行部署时,执行
obd cluster edit-config <deploy_name>命令打开配置文件,在配置文件中添加或修改devname,保存后执行命令行中输出的命令使修改生效。图形化界面部署时,可单击 上一步,在 集群配置(部署 OceanBase 数据库时)或 MetaDB 配置(部署 OCP 时)页面,打开 集群配置 中的 更多配置,设置 devname。
如果出现的错误为
operation not permitted,请检查 ping 文件权限,您可以尝试执行sudo chmod u+s /usr/bin/ping命令修改 ping 文件权限。如果出现的错误为
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-2014:xx.xx.xx.xx cpu does not support avx, Please change the server
错误原因:OBServer 节点的操作系统不支持 avx 指令集。
解决方法:请更换所用机器,使用支持 avx 指令集的机器部署 OceanBase 数据库。
OBD-2015:{server}: Failed to modify the configuration of the automatic startup
错误原因:当前用户无 sudo 权限,无法修改自动启动的配置。配置 observer 节点自启动(enable_auto_start)时需确保所用用户拥有 sudo 权限。
解决方法:可在 OBServer 节点中为对应用户配置 sudo 权限,每个 OBServer 节点都需要配置。使用 root 用户或其他拥有 sudo 权限的用户打开 /etc/sudoers 文件:
[root@test001 ~]# vim /etc/sudoers
在 /etc/sudoers 文件末尾添加如下内容,此处以为 admin 用户配置免密 sudo 权限为例。
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
admin ALL=(ALL) NOPASSWD: ALL
OBD-2016:Primary tenant {primary_tenant} have not full log, not support create standby cluster
错误原因:基于网络创建备租户时要求主租户需拥有完整的日志信息,可登录主租户的 root 用户执行 SELECT LS_ID, BEGIN_LSN FROM oceanbase.GV$OB_LOG_STAT WHERE ROLE = 'LEADER'; 命令查看,输出中 BEGIN_LSN 值为 0 表示当前日志流副本拥有自创建以来的完整日志。
解决方法:若当前主租户未拥有自创建以来的完整日志,可为主租户执行归档,并基于归档创建备租户,具体步骤可参见官网《OceanBase 安装部署工具》文档 使用指南/命令行/集群管理/OceanBase 集群主备租户/创建备租户 中 基于归档创建备租户。创建完成后,若仍旧希望基于网络同步日志,可参见官网《OceanBase 安装部署工具》文档 使用指南/命令行/集群管理/OceanBase 集群主备租户/切换主备租户同步方式 一文,将主备租户的同步方式修改为基于网络同步。
OBD-2017:Continuous log synchronization is not enabled
错误原因:基于归档创建备租户后,需为备租户启用日志同步,以保证主备租户间的日志同步。
解决方法:可执行 obd cluster tenant recover 命令为备租户启动日志同步,命令介绍可参见官网《OceanBase 安装部署工具》文档 obd 命令/集群命令组,搜索 obd cluster tenant recover 即可查看。
OBD-2018:For the standby tenant created by {primary_tenant} in log archive mode, it is prohibited to create a network-mode standby tenant for this standby tenant
错误原因:级联主备的场景下,使用基于归档的方式为主租户(A_a)创建备租户(B_a)后,不支持使用基于网络的方式为该备租户(B_a)创建备租户(C_a)。
解决方法:若希望为基于归档创建的备租户(B_a)继续创建备租户,可选择基于归档的方式创建备租户,具体操作可参见官网《OceanBase 安装部署工具》文档 使用指南/命令行/集群管理/OceanBase 集群主备租户/创建备租户 中 基于归档创建备租户。
OBD-2020:Multiple observer nodes on the same server are not supported by the auto start feature
错误原因:同一个服务器上启动多个 observer 进程时开启了 observer 进程自启动功能(enable_auto_start 为 true)。
解决方法:有如下两种解决方法,请根据实际情况选择。
方法一:执行
obd cluster edit-config <deploy name>命令打开配置文件,修改enable_auto_start为false关闭 observer 进程自启动功能。方法二:控制一个服务器上只启动一个 observer 进程。
OBD-2021:Permission denied. Current user {user} on server {ip} requires sudo privileges
错误原因:配置的用户未拥有 sudo 权限。
解决方法:有如下两种解决方法,请根据实际情况选择。
方法一:为对应节点机器中的用户配置 sudo 权限。
方法二:单击 上一步,在 节点配置 页面更新用户配置,使用拥有 sudo 权限的用户。
说明
填写用户时需确保用户在每个节点中都存在,且都拥有 sudo 权限。
测试相关报错
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,可使用资源规格更大的租户,或者调整 warehouses、load-workers 等参数值以减少构建压力。
对于情况 2,由于数据构建脚本是由 TPC 官网提供,可以先尝试重新执行脚本,如果问题仍然存在请到官网 问答区 提问,会有专业人员为您解答。
OBD-3003:Failed to run TPC-C benchmark
错误原因:
测试进程卡死后因为超时被杀死。
TPC-C 测试命令返回报错。
解决方法:
直接重新测试,或通过调整 terminals 等参数减少测试压力后重新测试。
如果没有使用官网提供的 obtpcc 包,请使用 obtpcc 进行测试。
如果上述方法均无法解决问题,请到官网 问答区 提问,会有专业人员为您解答。
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 <deploy_name> 命令修改配置文件中 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 <deploy_name> 命令打开配置文件,修改 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 位。
解决方法:执行 obd cluster edit-config <deploy_name> 命令打开配置文件,添加或修改 password 信息,保存后执行命令行中输出的命令使修改生效。
OCP 相关报错
OBD-4350: The Server have running task
错误原因:升级 OCP 时,OCP 中存在运行中的任务。
解决方法:为避免因升级 OCP 导致任务中断,请等待任务执行完成后,再重新进行检查。
OBD-4351: The Server have gone
错误原因:升级 OCP 时,OCP 中主机不处于在线状态。
解决方法:查询当前 OCP 管理主机的状态,详细操作可参见官网《OceanBase 云平台》文档 主机管理/管理主机/管理主机操作列表。
如果主机状态为 新提交,该主机是新添加的主机,请等添加主机任务完成后,重新进行检查。
如果主机状态为 离线,可以尝试重装 OCP Agent,详细操作可参见官网《OceanBase 云平台》文档 主机管理/管理主机/重装 OCP Agent。
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 时间不一致。
解决方法:您可参照如下步骤进行排查处理。
在对应主机上执行如下命令确认服务器是否安装时钟同步服务(Chrony 或 NTP)。
rpm -qa | grep chrony # 检查是否安装了 Chrony 服务 rpm -qa | grep ntp # 检查是否安装了 NTP 服务根据输出结果有如下两种处理方式。
若返回相关版本信息,说明已安装对应时钟同步服务,请继续执行步骤 2。
若无返回信息,说明未安装对应时钟同步服务。若 Chrony 和 NTP 服务均未安装,请先安装时钟同步服务。Chrony 和 NTP 服务的安装与配置可参考互联网上分享的案例。此处只做简要说明。
执行如下命令安装时钟同步服务,Chrony 或 NTP 中任选一个安装即可。
sudo yum install -y chrony # 安装 Chrony 服务 sudo yum install -y ntp # 安装 NTP 服务执行如下命令启动时钟同步服务。
systemctl start chronyd # 启动 Chrony 服务 systemctl start ntpd # 启动 NTP 服务重新进行预检查,若仍然报错,您可到官网 问答区 进行提问,会有专业人员为您解决。
执行如下命令检查时钟同步进程(chronyd 或 ntpd)是否异常退出。
systemctl status chronyd # 检查 Chrony 服务状态 systemctl status ntpd # 检查 NTP 服务状态根据返回结果有如下两种处理方式。
OBD-4354: {user}@{server}: Not exist
错误原因: OCP 启动用户不存在。
解决方法:使用其他启动用户或者在 OCP 所在主机上创建启动用户,创建用户的操作可参见官网《OceanBase 云平台》文档 部署 OceanBase 云平台/部署社区版 OceanBase 云平台/安装规划/用户规划。
OBD-4355: {user}@{ip}: user xxx not in sudoers or sudoers file not exist
错误原因: 用户不能免密执行 sudo 命令。
解决方法: 为用户配置 sudo 免密或者使用其他有免密 sudo 权限的用户。设置 sudo 权限的步骤可参见官网《OceanBase 云平台》文档 部署 OceanBase 云平台/部署社区版 OceanBase 云平台/安装规划/用户规划。
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
错误原因:服务器上没有足够内存
解决方法:分为以下几种解决方法。
若机器本身内存不足,可调小
memory_size配置项的值,或更换其他内存足够的机器。根据部署方式的不同有如下两种调小memory_size配置项值的方法。命令行部署时,执行
obd cluster edit-config <deploy name>命令打开配置文件,调小memory_size配置值,保存后执行命令行中输出的命令使修改生效。图形化界面部署时,可单击 上一步,在 MetaDB 配置 页面,打开 集群配置 中的 更多配置,减小
memory_size配置项的值。
若是机器剩余内存资源不足,如果存在可以释放的 cached,您可以先使用以下命令尝试释放。
sudo sysctl -w vm.drop_caches=1 # 或 sudo echo 1 > /proc/sys/vm/drop_caches
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
错误原因:
原因一:obconfigserver 启动时,出现 obconfigserver 内部运行错误,服务终止运行。
原因二:目标部署服务器中,obconfigserver 的监听端口未开启,导致不能访问。
解决方法:您可登录目标部署服务器后,执行如下命令判断错误原因。
ps -ef | grep $home_path/bin/ob-configserver
$home_path 为配置的 obconfigserver 工作目录,如果输出中没有正在运行的 obconfigserver 进程,那么错误原因为原因一,反之则为原因二。
对于原因一,您可在 $home_path/log/ob-configserver.log 文件中查看错误信息关键字,多数情况为在使用 sqlite3 数据库类型的情况下 connection_url 配置错误,将相应错误配置修改正确即可。若排查后无法解决,您可到官网 问答区 进行提问,会有专业人员为您解答。
对于原因二,有以下两种解决方法。
若您使用的是云服务器,请登录相应云服务器进行服务器端口白名单添加。
若您使用的是自行搭建的服务器,请根据相应操作系统版本开启端口监听。
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 需要使用对应版本的组件。
解决方法:执行 obd cluster edit-config <deploy_name> 命令打开配置文件,修改报错对应组件的版本(version),保存后执行命令行中输出的命令使修改生效。
Binlog 服务相关报错
OBD-4601:OBBinlog {obbinlog_version} needs to use {comp} with version {min_version} or above
错误原因:元数据库中 OceanBase 数据库的版本过低。当使用 OceanBase 数据库充当元数据库时,目前要求 OceanBase 数据库需为 V4.2.1.0 或以上版本。
解决方法:您可执行 obd cluster edit-config <deploy name> 命令打开配置文件,在 oceanbase-ce 组件下配置版本信息,格式如下所示:
oceanbase-ce:
version: 4.3.3.0
配置并保存后执行打印的 obd cluster redeploy <deploy name> 命令重新部署 Binlog 服务。
注意
该命令会销毁集群,重新部署,您集群中的数据会丢失,请先做好备份。
OBD-4602:Deploy <deploy_name> need depends ob-configserver
错误原因:当前业务集群中未部署 obconfigserver。
解决方法:有如下两种解决方法。
方法一:为
obd binlog create命令配置--rs选项,使用集群的 OBServer 节点列表(SHOW PARAMETERS LIKE 'rootservice_list';命令查看value值)为指定的租户创建 Binlog 实例。说明
obd binlog create命令的--rs选项自 obd V4.2.0 新增,且仅在 obbinlog 为 V4.3.5 或之后版本时支持配置。方法二:可以执行
obd cluster component add <deploy_name> -c <ob-configserver.config>命令新增 obconfigserver 组件,具体操作可参见官网《OceanBase 安装部署工具》文档 使用指南/命令行/集群管理/扩容与组件变更 中 组件新增 部分。如果 ODP 为单独部署,新增组件后可使用 root@proxysys 用户连接 ODP 并执行如
alter proxyconfig set obproxy_config_server_url='10.10.10.1:8080/services?Action=GetObProxyConfig';命令,配置后重启 ODP 即可。说明
命令示例中的
10.10.10.1:8080分别为 obconfigserver 的 IP 和端口,您需根据实际 IP 和端口进行替换。
OBD-4603:The Binlog service for the community version can only be used with the community version of the OceanBase database
错误原因:社区版 Binlog 服务只能用于 OceanBase 数据库社区版。
解决方法:如需对 OceanBase 数据库企业版使用 Binlog 服务,请部署企业版 Binlog 服务。部署操作可参见官网《OceanBase 安装部署工具》文档 使用指南/命令行/组件部署/部署 obbinlog。
OBD-4604:The Binlog service for the enterprise version can only be used with the enterprise version of the OceanBase database
错误原因:企业版 Binlog 服务只能用于 OceanBase 数据库企业版。
解决方法:如需对 OceanBase 数据库企业版使用 Binlog 服务,请部署企业版 Binlog 服务。部署操作可参见官网《OceanBase 安装部署工具》文档 使用指南/命令行/组件部署/部署 obbinlog。
OMS 相关报错
OBD-4701:failed to connect meta db
错误原因:在使用外部数据库作为 MetaDB 部署 OMS 时,无法连接 MetaDB。
解决方法:请执行 obd cluster edit-config <deploy_name> 命令打开并排查配置文件中 MetaDB 配置是否正确。若内容有误,请根据正确信息更新。
OBD-4702:failed to connect influxdb
错误原因:根据配置的时序数据库的访问信息无法连接到对应时序数据库。
解决方法:请执行 obd cluster edit-config <deploy_name> 命令打开并排查配置文件中时序数据库部分配置是否正确。若内容有误,请根据正确信息更新。
OBD-4703:({ip}) {disk} not enough disk space
错误原因:选择在线升级方式升级 OMS 时,需要指定存放升级文件的路径,指定的路径磁盘空间不足。
解决方法:请配置为磁盘空间充足的目录。
OBD-4704:HA is enabled, please disable it before upgrade
错误原因:升级前需禁用高可用模块(High Available,简称 HA)。HA 为数据传输链路的稳定性和连续性提供保障,具体介绍可参见官网《OceanBase 迁移服务》文档 OMS 社区版简介/OMS 社区版高可用(HA)介绍。
解决方法:升级前请关闭 HA 功能,您可参考如下操作关闭:
登录 OMS 社区版控制台。
在左侧导航栏,单击 系统管理 > 系统参数。
在 系统参数 页面,找到
ha.config。单击该参数名称 取值 后的编辑图标。
在 修改取值 对话框中,设置
enable为false,关闭 HA 功能。
SQL 相关报错
OBD-5000:sql execute failed
错误原因:SQL 执行失败。
解决方法:需根据具体情况确定解决方法。
obdiag 相关报错
OBD-6000: Failed to executable obdiag command, you may not have obdiag installed
错误原因:未安装 obdiag 组件。
解决方法:您可参考如下命令安装 obdiag 组件。
obd tool install obdiag
source ~/oceanbase-diagnostic-tool/init.sh
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 参数格式,示例如下。
# example
obd obdiag gather -h
obd obdiag gather log -h
OBD-6003:Failed to excute obdiag function xxx
错误原因:obdiag 执行命令失败,大概率是执行了不存在的 obdiag 命令项。
解决方法:您可执行如下命令查看 obd 支持的 obdiag 命令项。
obd obdiag -h
非预期报错
OBD-9999: Unexpected exception: need to be posted on "https://ask.oceanbase.com", and we will help you resolve them
错误原因:操作过程中出现了非预期的异常。
解决方法:您可到官网 问答区 进行提问,会有专业人员为您解决。