首批通过分布式安全可靠测评,为关键业务系统打造
创建索引卡住,长时间不返回直到超时的原因及解决方法
更新时间:2026-05-22 08:56
问题现象
空表创建索引卡住,长时间不返回直到超时,如下图所示。

关键日志信息。
[2024-04-19 14:16:56.991410] ERROR [STORAGE] process (ob_partition_service_rpc.cpp:2033) [29372][1244][xxxxx-xxxxx] [lt=20] [dc=0] observer has disk error, cannot be migrate src(ret=-4375) BACKTRACE:0xdeded8d 0x3e2c684 0x3e7fd09 0x3e80281 0x97f4be9 0x98c8164 0x3bc08ff 0x3bbde34 0x3bb8beb 0xb0bcf4d 0x4531988 0xdc91c3e 0xdc8f2a9 0xdc8d0af
问题原因
这里先大概说一下创建索引的逻辑,创建索引的逻辑是先创建一个基线数据(可以理解为主),然后再把基线数据复制迁移到其他节点,这里是有磁盘 error 导致 migrate 报错,然后导致索引没有创建成功,__all_virtual_disk_stat 中显示有一台主机的 is_disk_valid=0。
问题的风险及影响
创建索引失败。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V3.x 版本。
解决方法
首先检查磁盘到底是否正常,正常的话可以手动把磁盘置为 valid。
ALTER SYSTEM SET DISK VALID SERVER 'ip address:ip_port';