ob社区版升级报错

我在ocp上操作升级


中间报错了

然后看报错这个节点也停止运行了,升级log如下,麻烦帮忙分析是什么原因。

subtask_24132037.log (18.1 KB)

7 个赞

看着报错的原因是该主机上已安装的 oceanbase-ce-utils 前缀是 /usr(系统默认 RPM 路径),而 OCP 本次升级要安装到集群配置的 /data1/myoceanbase/oceanbase(OBD 自定义路径)。OCP Agent 检测到安装前缀不一致,拒绝继续安装。

  1. 在失败主机 192.168.0.33 上检查现有安装
    – 查看系统 RPM
    rpm -qa | grep oceanbase-ce-utils

–查看 OCP Agent 管理的包(如有对应命令/接口)
– 或检查 /usr 下是否有 ob 相关二进制
ls -la /usr/bin/ob* 2>/dev/null
ls -la /data1/myoceanbase/oceanbase/bin/ 2>/dev/null

  1. 清理 /usr 下的旧版 oceanbase-ce-utils
    – 若确认 /usr 下的是多余安装,可卸载
    rpm -e oceanbase-ce-utils
    – 或通过 OCP Agent 卸载(prefix 为 /usr)
4 个赞

看起来不是多余安装,当初就是安装到/usr下面的

请问现在该如何处理?

3 个赞

我上面写了步骤
2. 清理 /usr 下的旧版 oceanbase-ce-utils
– 若确认 /usr 下的是多余安装,可卸载
rpm -e oceanbase-ce-utils
– 或通过 OCP Agent 卸载(prefix 为 /usr)

3 个赞

奇怪的是rpm找不到这个包

2 个赞

可能当初是手工拷贝到这些文件吧,不记得了,直接把/usr/bin下面的几个可执行文件删除可以吗?

2 个赞

直接删除了,重试报错的步骤,还是报这个错误

2 个赞

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 重试失败子任务

3 个赞

用agentctl卸载以后,看起来可以,重试成功,已经在执行后续的步骤了。

3 个赞

按这样操作以后,升级成功了,感谢

1 个赞

都是经验啊,学习到了

1 个赞

6666

学习到了。。。

:+1: :+1: :+1:

学习一下

1 个赞

逻辑清晰,论据充分,非常有说服力。

1 个赞

学习

学习一下