DB升级 23.26.2:/opt 空间临界导致 OPatch 失败的处理记录
2026-07-24 22:37 AlfredZhao 阅读(0) 评论(0) 收藏 举报这次尝试升级到 23.26.2 时,笔者又遇到了一个很典型的问题:/opt 空间看起来差不多够,但 OPatch 实际执行时仍然容易失败。记录一下处理过程,方便后续遇到类似情况时快速判断。
01 | 问题出在“刚好够”的 /opt 空间
当时 /opt 的精确可用空间是:
13652123648 bytes
也就是大约 13.65 GB。而 OPatch 检查到需要:
12787.7 MB
从数字上看,好像还有一点余量,但这类场景并不稳。OPatch 在实际 apply 时,还需要额外空间用于解压、备份、rollback 和临时文件,所以“检查时看着差不多,真正执行时失败”很常见。
当时查看 /opt:
[root@aibs ~]# df -Th /opt
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroupVm-LogVolOpt ext4 25G 11G 13G 46% /opt
这里的关键不是只看 Avail 是否大于 OPatch 提示值,而是要给补丁过程留出实际操作空间。
02 | 扩容后重新检查并继续打补丁
笔者给 /opt 增加了 5G 空间:
lvextend -L +5G /dev/VolGroupVm/LogVolOpt
resize2fs /dev/VolGroupVm/LogVolOpt
扩容后再次查看:
[oracle@aibs ~]$ df -h /opt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroupVm-LogVolOpt 30G 11G 18G 38% /opt
随后重新执行 OPatch 空间检查:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace \
-phBaseDir /u01/media/39093711
检查通过后继续安装补丁,结果成功:
Patch 39093711 successfully applied.
Sub-set patch [38743669] has become inactive due to the application of a super-set patch [39093711].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /opt/oracle/product/26ai/dbhome_1/cfgtoollogs/opatch/opatch2026-07-17_10-31-55AM_1.logOPatch succeeded.
接下来按照 readme 打开数据库,包含所有 PDB,并继续执行 datapatch 等必做步骤。
datapatch 执行完成后,可以看到补丁在各个容器中都应用成功:
Patch 39093711 apply (pdb CDB$ROOT): SUCCESS
Patch 39093711 apply (pdb PDB$SEED): SUCCESS
Patch 39093711 apply (pdb DATACLAWPDB): SUCCESS
SQL Patching tool complete on Fri Jul 17 10:45:21 2026
之后编译无效对象:
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql
最后登录确认版本和 PDB 状态:
SQL*Plus: Release 23.26.2.0.0 - Production on Fri Jul 17 10:48:08 2026
Version 23.26.2.0.0Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.2.0.0 - Production
Version 23.26.2.0.0SQL> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 DATACLAWPDB READ WRITE NO
这次问题的核心很简单:OPatch 提示的空间需求不是最终唯一标准,实际 apply 过程还需要额外余量。对于接近临界值的 /opt,先扩容再打补丁,处理过程会更稳。
关注我,和AI一起成长~
AlfredZhao©版权所有「从Oracle起航,领略精彩的IT技术。」
转载请注明原文链接:https://www.cnblogs.com/jyzhao/p/21894824
转载请注明原文链接:https://www.cnblogs.com/jyzhao/p/21894824
👋 感谢阅读,欢迎关注我的公众号 「赵靖宇」
