必须打齐补丁,否则安装中途会卡在“Prerequisite Checks”或直接报 ins-32012、PRVF-7532 等错误:AIX 5.3/6.1/7.1 安装 Oracle 11gR2(尤其 11.2.0.4)硬性依赖 bos.adt.base、bos.adt.lib、bos.adt.libm、bos.perf.libperfstat(≥对应版本)、bos.perf.perfstat、bos.perf.proctools 及 xlC.aix50.rte(5.3)或 xlC.aix61.rte(6.1,≥10.1.0.0),缺一不可且须 COMMITTED 状态。
必须打齐补丁,否则安装中途会卡在“prerequisite checks”或直接报 ins-32012、prvf-7532 等错误,甚至静默失败。
哪些补丁包是硬性依赖?
AIX 5.3/6.1/7.1 安装 Oracle 11gR2(尤其 11.2.0.4)时,以下补丁包缺一不可,版本不达标就会被 runInstaller 拒绝:
-
bos.adt.base、bos.adt.lib、bos.adt.libm:提供基础编译和链接能力,缺失会导致gcc或xlC调用失败 -
bos.perf.libperfstat和bos.perf.perfstat:Oracle 进程监控和资源采集依赖此库,AIX 6.1 要求 ≥6.1.2.1,AIX 5.3 要求 ≥5300-09-01 -
bos.perf.proctools:提供ps、svmon等诊断命令支持,影响安装时的内存/进程检查 -
xlC.aix61.rte(AIX 6.1)或xlC.aix50.rte(AIX 5.3):Oracle 二进制依赖 XL C++ 运行时,版本低于10.1.0.0会触发libC_r.so.1加载失败
验证是否已安装且版本合规,用命令:lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat bos.perf.perfstat bos.perf.proctools xlC.aix61.rte
为什么 IZ42940 这类补丁不用单独打?
这类补丁(如 IZ42940、IZ49516、IZ52331)已在 AIX 5.3 TL06 及更高版本中集成。如果你的系统是 5300-09 或 6100-05,运行 oslevel -s 输出类似 5300-09-01-1016 或 6100-05-01-1016,就无需再手动安装它们——强行安装会报 conflict 错误。
判断依据很简单:
– 若 oslevel -r 返回 5300-09 或更高,跳过旧补丁
– 若返回 5300-08,必须先升级到 5300-09(Oracle 11g 不支持 5300-08)
补丁顺序和权限容易踩的坑
补丁安装本身不是难点,但两个细节常导致后续安装失败:
- 所有补丁必须用
root用户安装,且安装后需重启src子系统(stopsrc -g cluster; startsrc -g cluster非必须,但refresh -s nim或refresh -s inetd可选) - 如果使用
smitty installp图形方式安装,务必勾选 “Commit after install”,否则补丁处于 “Applied” 状态而非 “Committed”,lslpp -l显示为APPLIED而非COMMITTED,Oracle 安装器仍会判定为未安装 -
xlC.aix61.rte安装后,建议执行/usr/vac/bin/xlC -qversion确认输出版本 ≥ 10.1;若报command not found,说明 PATH 未包含/usr/vac/bin
最常被忽略的是:补丁通过了 lslpp -l 检查,但没确认是否 COMMITTED;或者 xlC 运行时库路径没生效,导致链接阶段报 ld: 0711-317 ERROR: Undefined symbol: .pthread_mutexattr_settype —— 这类错误表面看是多线程问题,根子就在 xlC.aix61.rte 没真正就位。


















