补丁获取:
环境检查:
-- 检查当前Oracle版本
SELECT * FROM v$version;
-- 检查已安装的补丁
SELECT * FROM dba_registry_history;
备份策略:
# 检查OPatch版本
$ORACLE_HOME/OPatch/opatch version
# 如果需要升级OPatch
# 从MOS下载最新OPatch替换现有目录
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /path/to/patch
# 单补丁安装
$ORACLE_HOME/OPatch/opatch apply /path/to/patch
# 补丁集安装
$ORACLE_HOME/OPatch/opatch napply /path/to/patch_dir
# 交互式安装(推荐)
$ORACLE_HOME/OPatch/opatch auto /path/to/patch -ocmrf ocm.rsp
# 检查已安装补丁
$ORACLE_HOME/OPatch/opatch lsinventory
# 检查补丁应用情况
$ORACLE_HOME/OPatch/opatch lsinventory -detail
数据库字典更新:
-- 对于RDBMS补丁通常需要运行catbundle.sql
@?/rdbms/admin/catbundle.sql psu apply
-- 检查无效对象
@?/rdbms/admin/utlrp.sql
组件更新:
-- 更新特定组件(如需要)
@?/rdbms/admin/catupgrd.sql
并行补丁应用:
opatch apply -oh $ORACLE_HOME -ph /path/to/patch -local -jre $ORACLE_HOME/jdk/jre -invPtrLoc $ORACLE_HOME/oraInst.loc -opatchBug 12345678 -ocmrf ocm.rsp -delay 60 -retry 3
补丁回滚:
# 查看可回滚的补丁
opatch lsinventory -bugs_fixed
# 回滚特定补丁
opatch rollback -id 12345678
静默安装:
opatch apply -silent -ocmrf ocm.rsp /path/to/patch
多节点RAC环境:
# 在所有节点上应用补丁
opatch auto /path/to/patch -ocmrf ocm.rsp -rac
# 或使用滚动补丁方式
opatch apply -local -oh $ORACLE_HOME -ph /path/to/patch
空间不足:
opatch util cleanup
补丁冲突:
opatch resolve
解决冲突OPatch版本不兼容:
安装失败后恢复:
$ORACLE_HOME/cfgtoollogs/opatch
下的日志通过遵循这些步骤和技巧,您可以更安全、高效地完成Oracle补丁安装工作。