1.3.2 补丁安装说明
1. 回滚冲突补丁:
- 在应用补丁之前,你必须回滚任何在冲突检测中发现的冲突补丁。否则,执行
opatch apply
命令时,补丁安装可能会再次报告冲突。
2. 安装补丁的环境要求:
- Data Guard 物理备用数据库 :如果你使用的是 Data Guard 物理备用数据库,必须在主库和备用库上都安装此补丁。可以参考 My Oracle Support 文档 278641.1 了解详细步骤。
- Oracle RAC 环境 :如果你在 Oracle RAC 环境中,需要使用 OPatch 滚动安装方式进行补丁安装,以避免停机。具体操作可以参考 My Oracle Support 文档 244241.1。
- 非 RAC 环境 :如果不是 Oracle RAC 环境,需要停掉所有与 Oracle home 相关的实例和监听器。可以参考 Oracle Database Administrator's Guide 了解详细步骤。
3. 执行补丁安装:
-
在确保回滚冲突补丁后,设置当前工作目录为补丁所在目录,然后运行 OPatch 工具进行补丁安装:
bashunzip p31537677_112040_<platform>.zip cd 31537677 opatch apply
安装补丁报错,缺失fuser命令
sql
Missing command :fuser
Prerequisite check "CheckSystemCommandAvailable" failed.
OPatch failed with error code 73
安装依赖包
sql
yum install psmisc -y
1.3.3 补丁后安装步骤
安装完补丁后,你需要执行以下操作:
1.3.3.1 应用补丁冲突解决补丁
- 应用补丁冲突解决补丁:如果在"单独补丁冲突检测和解决"步骤中发现需要解决的补丁冲突,你需要应用这些补丁。这通常是为了确保新安装的补丁与现有的补丁没有冲突,避免出现兼容性问题。
1.3.3.2 加载修改后的 SQL 文件到数据库中
- 对每个数据库实例进行操作:在 Oracle RAC 环境下,这个步骤只需要在一个节点上执行。你需要使用 SQL*Plus 连接到数据库,并以 SYSDBA 用户身份执行以下步骤。
具体步骤:
-
连接到数据库:
-
以 SYSDBA 用户身份连接到数据库:
bashcd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> STARTUP
-
-
运行
catbundle.sql
脚本:-
这个脚本用于将补丁应用到数据库中。
bashSQL> @catbundle.sql psu apply SQL> QUIT
-
-
执行完成后检查
dba_registry_history
:-
catbundle.sql
脚本执行后,在dba_registry_history
视图中会有一行与补丁系列 PSU 相关的记录。sqlselect * from dba_registry_history;
-
-
如果出现无效 Java 类:
-
如果在执行
catbundle.sql
脚本后,发现无效的 Java 类(这通常发生在应用了 OJVM PSU 补丁的情况下),需要运行utlrp.sql
脚本来重新验证这些 Java 类:bashSQL> @utlrp.sql
-
-
检查日志文件:
-
检查以下路径中的日志文件,确保没有错误:
$ORACLE_HOME/cfgtoollogs/catbundle
或$ORACLE_BASE/cfgtoollogs/catbundle
目录下的日志文件,文件名以catbundle_PSU_<数据库 SID>_APPLY_<时间戳>.log
和catbundle_PSU_<数据库 SID>_GENERATE_<时间戳>.log
结尾。- 如果日志中有错误,参照已知问题文档进行排查和修复。
-
关于 OJVM Mitigation 补丁:
-
如果你已经应用过 OJVM PSU 补丁或计划应用该补丁,则不需要执行额外操作。如果没有应用 OJVM PSU 补丁,则需要使用 OJVM Mitigation 补丁进行补救。
-
执行以下步骤来应用 OJVM Mitigation 补丁(如果适用):
sqlSQL> @dbmsjdev.sql SQL> exec dbms_java_dev.disable
- 这个步骤的目的是禁用不需要的 JavaVM 功能,从而防止潜在的安全问题。
总结:
- catbundle.sql 脚本用于应用补丁,并且你需要在数据库中运行它以确保补丁成功应用。
- 如果涉及到 Java 类无效的情况,运行
utlrp.sql
来修复它们。 - 如果涉及 OJVM PSU,需要进行额外的操作来处理 JavaVM 问题。
回滚
sql
opatch rollback -id 31537677