obd升级ocp4.3.6 到 4.4.0报错,提示jdk包不存在

【 使用环境 】测试环境
【 OB or 其他组件 】OCP升级
【 使用版本 】4.3.6
【问题描述】使用obd对OCP进行升级时,提示No such package name: openjdk-jre,下载的是4.3.5bp5的all-in-one包
【复现路径】根据文档,升级obd,然后使用obd web upgrade进行升级,进行到安装的步骤出现错误提示
【附件及日志】
±---------------------------------------------------------------------------------------------------------+
| Packages Will Be Used |
±--------------±--------±-------------------±-------±-----------------------------------------±------+
| name | version | release | arch | md5 | mark |
±--------------±--------±-------------------±-------±-----------------------------------------±------+
| ocp-server-ce | 4.3.6 | 20250709105610.el7 | noarch | 9cb90dad471bb9ff8fe94c67402ce9560cc0b6fe | start |
| ocp-server-ce | 4.4.0 | 20251114143405.el7 | noarch | f673d693677a2c640f925ad2127a604aaebf00bf | dest |
±--------------±--------±-------------------±-------±-----------------------------------------±------+
Remote ocp-server-ce-4.4.0-20251114143405.el7-f673d693677a2c640f925ad2127a604aaebf00bf repository install ok
Remote ocp-server-ce-4.4.0-20251114143405.el7-f673d693677a2c640f925ad2127a604aaebf00bf repository lib check !!
Try to get lib-repository
[ERROR] No such package name: openjdk-jre, version: 17.0.16_8.
[ERROR] Failed to install lib package for local
[ERROR] use obd upgrade failed, reason: install upgrade plugin error to server

@论坛小助手

3 个赞

obd 哪个版本?

obd --version
3 个赞

一样的错误, 基于 oceanbase-all-in-one-4.3.5_bp5_20251117.el8.x86_64.tar.gz 执行 obd web upgrade 后失败, 这里是相关信息:

[root@obsrv1 oceanbase-all-in-one]# rpm -qa | grep openjdk
java-1.8.0-openjdk-headless-1.8.0.412.b08-2.el8.x86_64
[root@obsrv1 oceanbase-all-in-one]# obd --version
OceanBase Deploy: 4.0.0
REVISION: 44b780d08efba6de1ce19e6d4a67631eba4cff24
BUILD_BRANCH: HEAD
BUILD_TIME: Nov 17 2025 14:42:09OURCE
Copyright (C) 2025 OceanBase
License Apache 2.0: Apache version 2 or later <https://www.apache.org/licenses/LICENSE-2.0>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[root@obsrv1 oceanbase-all-in-one]# ls rpms/
alertmanager-0.28.1-32025073111.el8.x86_64.rpm                oceanbase-ce-libs-4.2.1.8-108000022024072217.el8.x86_64.rpm
grafana-7.5.17-1.el8.x86_64.rpm                               oceanbase-ce-libs-4.3.5.5-105000012025111711.el8.x86_64.rpm
obagent-4.2.4-200000022025090416.el8.x86_64.rpm               oceanbase-ce-utils-4.2.1.8-108000022024072217.el8.x86_64.rpm
ob-configserver-1.0.0-2.el8.x86_64.rpm                        oceanbase-ce-utils-4.3.5.5-105000012025111711.el8.x86_64.rpm
ob-deploy-4.0.0-10.el8.x86_64.rpm                             oceanbase-diagnostic-tool-3.7.1-12025102215.el8.x86_64.rpm
obproxy-ce-4.3.5.0-3.el8.x86_64.rpm                           ocp-agent-ce-4.4.0-20251114143405.el7.aarch64.rpm
ob-sysbench-1.0.20-21.el8.x86_64.rpm                          ocp-agent-ce-4.4.0-20251114143405.el7.x86_64.rpm
obtpcc-5.0.0-1.el8.x86_64.rpm                                 ocp-express-4.2.2-100000022024011120.el8.x86_64.rpm
obtpch-3.0.0-1.el8.x86_64.rpm                                 ocp-server-ce-4.4.0-20251114143405.el7.noarch.rpm
oceanbase-ce-4.2.1.8-108000022024072217.el8.x86_64.rpm        openjdk-jre-1.8.0_322-b09.el8.x86_64.rpm
oceanbase-ce-4.3.5.5-105000012025111711.el8.x86_64.rpm        prometheus-2.37.1-10000102022110211.el8.x86_64.rpm

3 个赞

你是做什么操作?也是升级OCP到440版本吗?

3 个赞

是的

3 个赞

手动安装

yum install java-17-openjdk

[root@obsrv1 bin]# rpm -qa | grep openjdk
java-17-openjdk-17.0.17.0.10-1.el8.x86_64
java-17-openjdk-headless-17.0.17.0.10-1.el8.x86_64
java-1.8.0-openjdk-headless-1.8.0.412.b08-2.el8.x86_64

[root@obsrv1 bin]# obd cluster list
+----------------------------------------------------+
|                    Cluster List                    |
+-------+--------------------------+-----------------+
| Name  | Configuration Path       | Status (Cached) |
+-------+--------------------------+-----------------+
| myocp | /root/.obd/cluster/myocp | upgrading       |
+-------+--------------------------+-----------------+


[root@obsrv1 bin]# obd cluster upgrade myocp
Get local repositories and plugins ok
Open ssh connection ok
Get deployment connections ok
Get standbys info ok
Remote ocp-server-ce-4.4.0-20251114143405.el7-f673d693677a2c640f925ad2127a604aaebf00bf repository install ok
Remote ocp-server-ce-4.4.0-20251114143405.el7-f673d693677a2c640f925ad2127a604aaebf00bf repository lib check !!
Try to get lib-repository
[ERROR] No such package name: openjdk-jre, version: 17.0.16_8. 
[ERROR] Failed to install lib package for local
Trace ID: ac09ff90-c6b0-11f0-9172-525400cfd305
If you want to view detailed obd logs, please run: obd display-trace ac09ff90-c6b0-11f0-9172-525400cfd305

看着自己安装的 rocky8 el8 的 java-17-openjdk 过不了 你们这个 No such package name: openjdk-jre, version: 17.0.16_8. 检查,然后 你们的all-inone 安装包里又没有 openjdk-jre_17.0.16_8 也没有知道找到去哪里下载
现在集群状态 myocp | /root/.obd/cluster/myocp | upgrading 就一直卡着这里了

能提供一下 openjdk-jre_17.0.16_8 的el8 安装包么

3 个赞

ocp-all-in-one440包里面应该有吧,升级ocp 440也应该用这个包

3 个赞

我们之前都是 去下载:

https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/8/x86_64/oceanbase-all-in-one-4.3.5_bp5_20251117.el8.x86_64.tar.gz

(因为 这个既有el8 也有el7 的版本)
然后,替换掉老的 allinone ,执行 里面的 install 就升级了 obd,然后obd web upgrade 就升级了 里面的ocp

之前都是这么操作的,不是去下载:

https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/ocp/4.4.0_CE/ocp-all-in-one-4.4.0-20251114143405.el7.x86_64.tar.gz

(这个只有el7 的)
去升级ocp

目前看是odb 这里去检查:

[root@obsrv1 rpms]# cat ~/.obd/plugins/ocp-server-ce/4.4.0/requirement.yaml 
openjdk-jre:
  version: 17.0.16_8
  min_version: 17
  max_version: 18

确认ocp-all-in-one-4.4.0-20251114143405.el7.x86_64.tar.gz 里面 有 openjdk-jre-17.0.16_8-92025080421.el7.x86_64.rpm

但是 ,我们需要openjdk-jre-17.0.16_8-92025080421.el8.x86_64.rpm el8的包

但是 oceanbase-all-in-one-4.3.5_bp5_20251117.el8.x86_64.tar.gz 这个包 只有 openjdk-jre-1.8.0_322-b09.el8.x86_64.rpm 没有 openjdk-jre-17.0.16_8-92025080421.el8.x86_64.rpm el8的包

3 个赞

ocp-all-in-one是不区分el7和el8的,升级OCP是要用这个包,ob-all-in-one区分el7和el8主要是针对ob的不是针对ocp的,因此你只升级ocp用 ocp-all-in-one包就可以了

3 个赞

同意,“因此你只升级ocp用 ocp-all-in-one包就可以了”, 但是ocp是依赖java的,java在el8 el7 上是不一样的,主要是,el8 也安装不了openjdk-jre-17.0.16_8-92025080421.el7.x86_64.rpm ,而你们的 ocp-all-in-one 就没有提供在el8 上跑的java

[root@obsrv1 rpms]# yum localinstall /home/openjdk-jre-17.0.16_8-92025080421.el7.x86_64.rpm 
上次元数据过期检查:1:56:36 前,执行于 2025年11月21日 星期五 15时03分47秒。
错误:
 问题: 冲突的请求
  - nothing provides libjli.so()(64bit) needed by openjdk-jre-17.0.16_8-92025080421.el7.x86_64 from @commandline
(尝试添加 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)

所以,能不能手工修改 ~/.obd/plugins/ocp-server-ce/4.4.0/requirement.yaml 的配置 跳过依赖检查 ,系统上已经有了jdk17

2 个赞

另外考虑 初始化安装 不是升级的问题,首页最显眼的位置下载的
https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/8/x86_64/oceanbase-all-in-one-4.3.5_bp5_20251117.el8.x86_64.tar.gz

他肯定跑不起来ocp ,因为这个包里没有 jdk17 的包,所以不说升级,就说这个oceanbase-all-in-one-4.3.5_bp5_20251117.el8.x86_64.tar.gz 包 提供的 jdk 依赖包是不够的,系统自己安装的又不能识别 通过obd的验证检查 这个也是一个bug

2 个赞

xuexi

1 个赞

这个下载地址是在哪看到的

1 个赞

老板 ,这里 https://www.oceanbase.com/softwarecenter

另外,从release notes 来看
https://www.oceanbase.com/product/oceanbase-all-in-one-rn/releaseNote#V4.3.5_BP5

这个包 计划上 就只有 OpenJDK JRE V1.8.0 没有jdk17

哦,看成这个地址了
https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/ocp/4.4.0_CE/ocp-all-in-one-4.4.0-20251114143405.el7.x86_64.tar.gz

jdk17应该是在最新的all in one包里面,我这个我要看下,另外ocp-all-in-one 440的包里面确实只有el7的 jdk17 openjdk-jre-17.0.16_8-92025080421.el7.x86_64

所以 ,麻烦老板 先给我一个 openjdk-jre-17.0.16_8-92025080421.el7.x86_64.rpm 对应的 el8 的包吧,我先跑起来 坐等使用ocp 4.4.0 呢

我问下看目前是否有这个包

嗯嗯 非常感谢 应该要有的 不然你们的allinone 包 就玩不起来了,或者去改obd的依赖检查 ,本来jdk这个 也可以放在环境前置里 用官方的包就行,不用放在allinone 的obd去检查,这样反而麻烦起来

1 个赞