我在ocp上操作升级
中间报错了
然后看报错这个节点也停止运行了,升级log如下,麻烦帮忙分析是什么原因。
subtask_24132037.log (18.1 KB)
看着报错的原因是该主机上已安装的 oceanbase-ce-utils 前缀是 /usr(系统默认 RPM 路径),而 OCP 本次升级要安装到集群配置的 /data1/myoceanbase/oceanbase(OBD 自定义路径)。OCP Agent 检测到安装前缀不一致,拒绝继续安装。
192.168.0.33 上检查现有安装–查看 OCP Agent 管理的包(如有对应命令/接口)
– 或检查 /usr 下是否有 ob 相关二进制
ls -la /usr/bin/ob* 2>/dev/null
ls -la /data1/myoceanbase/oceanbase/bin/ 2>/dev/null
/usr 下的旧版 oceanbase-ce-utils :我上面写了步骤
2. 清理 /usr 下的旧版 oceanbase-ce-utils :
– 若确认 /usr 下的是多余安装,可卸载
rpm -e oceanbase-ce-utils
– 或通过 OCP Agent 卸载(prefix 为 /usr)
可能当初是手工拷贝到这些文件吧,不记得了,直接把/usr/bin下面的几个可执行文件删除可以吗?
直接删除了,重试报错的步骤,还是报这个错误
1、 确认 Agent 记录的安装信息
– 找到 Agent 安装目录(常见路径)
ls /home/admin/ocp_agent/pkg_store/oceanbase-ce-utils/ 2>/dev/null
– 或
find / -path “/pkg_store/oceanbase-ce-utils/” 2>/dev/null
– 查看元数据里的 ToPrefix
cat /home/admin/ocp_agent/pkg_store/oceanbase-ce-utils/*.json | grep -i prefix
2、用 Agent 卸载 /usr 下的旧包
– 方式 A:agentctl
/home/admin/ocp_agent/bin/ocp_agentctl package uninstall oceanbase-ce-utils --installPath=/usr
– 方式 B:调 Agent API(端口以实际为准,日志里是 62888)
curl -X POST http://127.0.0.1:62888/api/v1/package/uninstall
-H “Content-Type: application/json”
-d ‘{“name”:“oceanbase-ce-utils”,“installPath”:"/usr"}’
3、 若 Agent 卸载后 /usr/bin 仍有残留,手动清理
ls -la /usr/bin/ob_*
– 确认无其他集群依赖后删除
rm -f /usr/bin/ob_admin /usr/bin/ob_error /usr/bin/ob_jcopy /usr/bin/ob_jdump /usr/bin/ob_opminer /usr/bin/ob_stacktrace
4、 确认 pkg_store 已清空
ls /home/admin/ocp_agent/pkg_store/oceanbase-ce-utils/
** 应为空或目录不存在
5、在 OCP 重试失败子任务
按这样操作以后,升级成功了,感谢
都是经验啊,学习到了
6666
学习到了。。。
![]()
学习一下
逻辑清晰,论据充分,非常有说服力。
学习
学习一下