DB2 LUW 11.5.6升级至11.5.9遇依赖检测失败及安装崩溃求助
解决Rocky RHEL8下DB2 LUW 11.5.9升级失败问题
一、修复DB2安装程序的Rocky Linux识别问题
DB2 11.5.9安装脚本默认未适配Rocky Linux的系统检测逻辑,导致触发核心转储,可通过以下两种方式解决:
方法1:临时设置环境变量模拟RHEL8
执行安装前先运行以下命令,让DB2识别当前系统为RHEL8:
export DB2_SKIP_OS_VALIDATION=1 export REDHAT_RELEASE=8.0
之后再执行./db2setup。
方法2:修改安装包内的系统检测脚本
- 解压DB2安装包后,进入
db2/linuxamd64/install目录,找到db2_check_os脚本 - 编辑该脚本,在RHEL检测区块后添加Rocky Linux的识别逻辑:
elif [ "$distro" = "Rocky" ]; then oslevel="8" osname="RedHatEnterpriseServer" - 保存脚本后重新执行
./db2setup
二、解决db2prereqcheck的依赖错误
1. 空依赖项未找到
该问题属于DB2检测脚本的变量解析bug,可跳过指定依赖检测:
db2prereqcheck -i --skip-prereq-check=LIST_OF_EMPTY_DEPENDENCIES
若不确定空依赖具体名称,可临时跳过所有依赖检测(仅建议升级场景使用):
db2prereqcheck -i --skip-all-prereq-checks
2. kernel-source未找到错误
Rocky Linux 8中需安装与当前运行内核匹配的kernel-source包:
- 查看当前内核版本:
uname -r - 安装对应版本的kernel-source:
dnf install kernel-source-$(uname -r) - 若已安装
kernel-devel,可创建软链接让DB2检测到:ln -s /usr/src/kernels/$(uname -r) /usr/src/linux
三、修复TSA依赖验证失败
TSA在RHEL8下的依赖包已更新,先安装兼容包:
dnf install openssl-libs compat-openssl10 libstdc++.i686 libgcc.i686
若社区版无需高可用功能,可直接跳过TSA组件安装:
运行./db2setup时,在安装向导中取消勾选Tivoli System Automation for Multiplatforms;或使用响应文件安装,在文件中设置COMPONENTS="BASE_CLIENT,BASE_DB2_ENGINE"(排除TSA相关组件),再执行:
./db2setup -r response_file.rsp
四、保留现有数据库的升级流程
- 备份现有数据库:在原CentOS7或迁移后的Rocky系统中执行全备份:
db2 backup database <DB_NAME> to /backup/directory - 迁移实例与数据库文件:将CentOS7上的DB2实例目录(默认
/home/db2inst1)和数据库存储目录复制到Rocky系统对应路径,修复权限:chown -R db2inst1:db2iadm1 /home/db2inst1 chown -R db2inst1:db2iadm1 /path/to/database/files - 执行升级操作:
- 以root用户运行DB2安装程序,选择升级现有实例选项
- 切换到实例用户
db2inst1,升级实例:db2iupdt db2inst1 - 升级数据库:
db2 upgrade database <DB_NAME>
- 验证升级结果:
db2level db2 list directory db2 connect to <DB_NAME>
内容的提问来源于stack exchange,提问作者JVDptt
相关产品推荐
相关产品推荐

