首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库集群启动备份出现 -4006,The object is not initialized 异常,日志出现 throttle is not initialized 的原因及解决方法
更新时间:2026-05-11 09:51
问题现象
OCP 页面操作集群启动备份,备份命令下发正常,但是备份启动一段时间之后出现 -4006 异常。

同时日志伴随出现如下异常。
[2024-12-18 09:54:02.473073] WDIAG [COMMON] limit_and_sleep (utility.cpp:1409) [2024492][T1006_BACKUP_ME][T1006][xxxxx-xxxxx-xxxxx-xxxxx] [lt=37][errcode=-4006] throttle is not initialized.(ret=-4006)
[2024-12-18 09:54:02.473082] WDIAG [COMMON] limit_out_and_sleep (utility.cpp:1570) [2024492][T1006_BACKUP_ME][T1006][xxxxx-xxxxx-xxxxx-xxxxx] [lt=8][errcode=-4006] failed to limit out_throttle_(ret=-4006)
[2024-12-18 09:54:02.473088] WDIAG [STORAGE] flush_buffer_ (ob_backup_file_writer_ctx.cpp:140) [2024492][T1006_BACKUP_ME][T1006][xxxxx-xxxxx-xxxxx-xxxxx] [lt=5][errcode=-4006] failed to limit out and sleep(ret=-4006)
问题原因
OceanBase 数据库集群内部存在限流机制(ObBandwidthThrottle),备份时需要依赖该机制进行流控,当集群内的 OceanBase 数据库节点的 ObBandwidthThrottle 初始化异常时,备份检测不通过,就会导致该异常,ObBandwidthThrottle 初始化不通过的原因常见的有如下几个。
sys_bkgd_net_percentage参数设置小于等于 0。系统网卡的
/sys/class/net/$dev_name(网卡名称)/speed文件为空,导致识别主机的网卡速率失败。/home/admin/oceanbase/etc/nic.rate.config文件内设置的值不正确,导致识别主机的网络速率失败,nic.rate.config文件本身并不存在于 OceanBase 内,属于人工创建,目的是解决 OceanBase 无法正确识别主机网卡速率的问题。
问题的风险及影响
与限流相关的功能无法正常运行。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V2.x、V3.x、V4.x 版本。
解决方法
需要具体问题具体分析初始化异常原因,进行对应解决。
规避方式
设置合理的
sys_bkgd_net_percentage。检查集群内主机各个网卡的速率是否正确:推荐从
/home/admin/oceanbase/etc/nic.rate.config配置文件中获取网卡速率的设置。