Oracle补丁自动化安装步骤

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 工具进行补丁安装:

    bash 复制代码
    unzip 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 用户身份执行以下步骤。
具体步骤:
  1. 连接到数据库

    • 以 SYSDBA 用户身份连接到数据库:

      bash 复制代码
      cd $ORACLE_HOME/rdbms/admin
      sqlplus /nolog
      SQL> CONNECT / AS SYSDBA
      SQL> STARTUP
  2. 运行 catbundle.sql 脚本

    • 这个脚本用于将补丁应用到数据库中。

      bash 复制代码
      SQL> @catbundle.sql psu apply
      SQL> QUIT
  3. 执行完成后检查 dba_registry_history

    • catbundle.sql 脚本执行后,在 dba_registry_history 视图中会有一行与补丁系列 PSU 相关的记录。

      sql 复制代码
      select * from dba_registry_history;
  4. 如果出现无效 Java 类

    • 如果在执行 catbundle.sql 脚本后,发现无效的 Java 类(这通常发生在应用了 OJVM PSU 补丁的情况下),需要运行 utlrp.sql 脚本来重新验证这些 Java 类:

      bash 复制代码
      SQL> @utlrp.sql
  5. 检查日志文件

    • 检查以下路径中的日志文件,确保没有错误:

      • $ORACLE_HOME/cfgtoollogs/catbundle$ORACLE_BASE/cfgtoollogs/catbundle 目录下的日志文件,文件名以 catbundle_PSU_<数据库 SID>_APPLY_<时间戳>.logcatbundle_PSU_<数据库 SID>_GENERATE_<时间戳>.log 结尾。
      • 如果日志中有错误,参照已知问题文档进行排查和修复。
关于 OJVM Mitigation 补丁:
  • 如果你已经应用过 OJVM PSU 补丁或计划应用该补丁,则不需要执行额外操作。如果没有应用 OJVM PSU 补丁,则需要使用 OJVM Mitigation 补丁进行补救。

  • 执行以下步骤来应用 OJVM Mitigation 补丁(如果适用):

    sql 复制代码
    SQL> @dbmsjdev.sql
    SQL> exec dbms_java_dev.disable
    • 这个步骤的目的是禁用不需要的 JavaVM 功能,从而防止潜在的安全问题。
总结:
  • catbundle.sql 脚本用于应用补丁,并且你需要在数据库中运行它以确保补丁成功应用。
  • 如果涉及到 Java 类无效的情况,运行 utlrp.sql 来修复它们。
  • 如果涉及 OJVM PSU,需要进行额外的操作来处理 JavaVM 问题。
回滚
sql 复制代码
opatch rollback -id 31537677
相关推荐
Kairo_0114 分钟前
如何优化SQL查询以提高数据库性能?
数据库·sql·oracle
高铭杰1 小时前
Citus源码(1)分布式表行为测试
数据库·分布式·citus
今天又在摸鱼1 小时前
Spring Boot
java·数据库·spring boot
椰椰椰耶1 小时前
【redis】哨兵:docker搭建redis环境,容器的编排方式
数据库·redis·docker
forestsea2 小时前
PostgreSQL:索引与查询优化
数据库·postgresql
小样vvv2 小时前
【Redis】深入解析 Redis 五大数据结构
数据结构·数据库·redis
行走在云端z2 小时前
MongoDB 的索引是提高查询性能的核心机制,类似于传统关系型数据库的索引。以下是对 MongoDB 索引的详细说明:
数据库·mongodb
Wo3Shi4七3 小时前
MySQL ORDER BY、 LIMIT和DISTINCT 用法和实例
数据库·后端
WIN赢3 小时前
【持续集成和持续部署】
ci/cd·自动化
镜舟科技3 小时前
如何理解 Apache Iceberg 与湖仓一体(Lakehouse)?
数据库·数据分析