安装了oceanbase,然后启动报这个错误了? 大佬来帮忙看看

[2025-11-25 13:35:17.789197] WDIAG [COMMON] read_from_table (ob_io_calibration.cpp:773) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=3][errcode=-4006] parse calibration data failed(ret=-4006)
[2025-11-25 13:35:17.789287] EDIAG [CLOG] do_init_ (ob_server_log_block_mgr.cpp:532) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=67][errcode=-9100] prepare_dir_and_create_meta_ failed(ret=-9100, log_pool_path="/home/admin/data/1/clog/log_pool", log_pool_tmp_path="/home/admin/data/1/clog/log_pool.tmp") BACKTRACE:0x91dffd8 0x90e38cd 0x91c8cb9 0x91c8697 0x91c85ea 0x91c8407 0xed8fd43 0xed84659 0x12012ae7 0xe99e2a8 0xe9a3d02 0x23e1aca0 0xe9a0527 0x7f5bcaea5555 0x96682aa
[2025-11-25 13:35:17.789338] EDIAG [CLOG] init (ob_server_log_block_mgr.cpp:97) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=51][errcode=-9100] do_init_ failed(ret=-9100, this={dir::"", dir_fd:-1, meta_fd:-1, log_pool_meta:{curr_total_size:0, next_total_size:0, status:0}, min_block_id:0, max_block_id:0, min_log_disk_size_for_all_tenants_:0, is_inited:false}, log_disk_base_path="/home/admin/data/1/clog") BACKTRACE:0x91dffd8 0x90e38cd 0x91c8cb9 0x91c8697 0x91c85ea 0x91c8407 0xed84a5f 0xed845d3 0x12012ae7 0xe99e2a8 0xe9a3d02 0x23e1aca0 0xe9a0527 0x7f5bcaea5555 0x96682aa
[2025-11-25 13:35:17.789370] WDIAG [CLOG] destroy (ob_server_log_block_mgr.cpp:116) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=30][errcode=0] ObServerLogBlockMgr destroy(this={dir::"", dir_fd:-1, meta_fd:-1, log_pool_meta:{curr_total_size:0, next_total_size:0, status:0}, min_block_id:0, max_block_id:0, min_log_disk_size_for_all_tenants_:0, is_inited:false})
[2025-11-25 13:35:17.789382] EDIAG [SERVER] init_io (ob_server.cpp:2571) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=6][errcode=-9100] log block mgr init failed(ret=-9100, ret=“OB_NO_SUCH_FILE_OR_DIRECTORY”) BACKTRACE:0x91dffd8 0x90e38cd 0x9194ab0 0x9194587 0x91944dd 0x9194308 0x1203f7d4 0x12013895 0xe99e2a8 0xe9a3d02 0x23e1aca0 0xe9a0527 0x7f5bcaea5555 0x96682aa
[2025-11-25 13:35:17.789408] EDIAG [SERVER] init (ob_server.cpp:344) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=24][errcode=-9100] init io failed(ret=-9100, ret=“OB_NO_SUCH_FILE_OR_DIRECTORY”) BACKTRACE:0x91dffd8 0x90e38cd 0x9194ab0 0x9194587 0x91944dd 0x9194308 0x1201fe72 0x12013736 0xe99e2a8 0xe9a3d02 0x23e1aca0 0xe9a0527 0x7f5bcaea5555 0x96682aa
[2025-11-25 13:35:17.789428] EDIAG [SERVER] init (ob_server.cpp:560) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=15][errcode=-9100] [OBSERVER_NOTICE] fail to init observer(ret=-9100, ret=“OB_NO_SUCH_FILE_OR_DIRECTORY”) BACKTRACE:0x91dffd8 0x90e38cd 0x9194ab0 0x9194587 0x91944dd 0x9194308 0x12023c32 0x120116bb 0xe99e2a8 0xe9a3d02 0x23e1aca0 0xe9a0527 0x7f5bcaea5555 0x96682aa
[2025-11-25 13:35:17.789455] ERROR [SERVER] init (ob_server.cpp:564) [3917][observer][T0][Y0-0000000000000001-0-0] [lt=11][errcode=-9100] [server_start 4/18] observer init fail. you may find solutions in previous error logs or seek help from official technicians.

您提供的日志片段显示 OceanBase 的 observer 进程在启动或运行过程中遇到了两个关键错误:

parse calibration data failed(ret=-4006)

错误码 -4006 通常与 I/O 校准(I/O calibration)数据解析失败有关。
OceanBase 在启动时可能会执行 I/O 性能校准(例如使用 ob_io_calibration 模块),用于评估磁盘性能并优化写入策略。如果之前保存的校准数据损坏、格式不正确或存储路径不可读,就会导致该错误。
可能原因:
I/O 校准配置文件损坏。
数据目录权限问题导致无法读取校准结果。
手动修改或删除了部分内部系统文件。

prepare_dir_and_create_meta_ failed(ret=-9100)

错误码 -9100 一般表示目录准备或元数据创建失败,常见于 clog(commit log)目录初始化阶段。
这通常意味着:
clog 目录路径配置错误(如 clog_dir 参数指向无效路径)。
磁盘空间不足。
文件系统权限不足,observer 进程无法在指定路径下创建目录或文件。
文件系统类型不支持(OceanBase 要求 ext4 或 xfs,见 集群启动失败报:Fail to fallocate block file 的原因及解决方法)。
磁盘损坏或挂载异常。
建议排查步骤:

检查相关目录配置和权限

查看 observer 配置中的数据目录、clog 目录等

cat /etc/observer.config.bin | strings | grep -i “dir|path”

确保以下目录存在且权限正确(属主为运行 observer 的用户,通常是 admin):

data_dir
clog_dir
ilog_dir
slog_dir

确认磁盘空间和文件系统类型

df -h /path/to/clog /path/to/data
mount | grep $(df /path/to/clog | tail -1 | awk ‘{print $1}’)

确保文件系统为 ext4 或 xfs(参考:集群启动失败报:Fail to fallocate block file 的原因及解决方法)。

清理并重新初始化(测试环境可选) 如果是测试环境,可以尝试清空数据目录后重新部署:

停止 observer

kill $(pidof observer)

清理数据目录(谨慎操作!)

rm -rf /data/obdemo/*

重新启动 observer

./bin/observer …

查看完整日志定位上下文 使用 grep -A 10 -B 10 “parse calibration data failed” 查看前后日志,确认是否还有其他前置错误(如权限拒绝、磁盘满等)。

避免手动干预 I/O 校准文件 不建议手动修改或删除 __io_calibration_result.json 等内部文件。如有需要,可通过 OBD 或 OCP 工具重新执行 I/O 校准。

:warning: 注意:由于当前日志未明确指向某一具体文档,且错误码 -4006 和 -9100 未在提供的文档片段中直接提及,因此以上分析基于 OceanBase 常见运维经验。建议结合完整日志和部署方式(OBD、OCP 或手动部署)进一步诊断。

2 个赞

学习了