在应用19.9 RU后,由于HAIP网络改变,ASM无法启动,导致数据库节点故障,本文主要讲解补丁的应用步骤
一、补丁应用
1
、备份数据库和基础软件
为防止安装补丁时发生不可解决的意外,对数据库和u01基础软件目录进行备份
(1)备份数据库
对数据库执行rman备份。
(2)对基础软件进行备份
在每个节点分别执行以下操作
export GRID_HOME=/u01/app/19c/grid $GRID_HOME/bin/crsctl stop crs -f tar -cvf /oracle/backup_soft/`date +\%Y\%m\%d`_GIDB.tar /u01
2 、检测OPATCH版本
$GRID_HOME/OPatch/opatch version $GRID_HOME/OPatch/opatch lspatches $ORACLE_HOME/OPatch/opatch version $ORACLE_HOME/OPatch/opatch lspatches
OPatch 是Oracle安装补丁的工具。不同的补丁对OPatch版本要求不同。要安装p32242453_198000OCWRU,需要下载OPatch版本12.2.0.1.13及以上版本。 解压后直接替换ORACLE_HOME中的OPatch目录即可 3 、上传补丁 向数据库服务器上传补丁Patch 32242453 4 、在数据库服务器解压补丁
unzip -d <PATCH_TOP_DIR> p32242453_198000OCWRU_Linux-x86-64
5 、检测补丁冲突 检测当前环境与p32242453补丁是否存在冲突 $ cd <PATCH_TOP_DIR>/32242453 $ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ 6 、进行补丁应用 分别给每个节点进行GI和DB的补丁应用 (1)给GI应用补丁 以root用户执行以下命名
$GRID_HOME/OPatch/opatchauto apply $UNZIPPED_PATCH_LOCATION/32242453 -oh $GI_HOME -analyze $GRID_HOME/OPatch/opatchauto apply $UNZIPPED_PATCH_LOCATION/32242453 -oh $GI_HOME
(2)给DB应用补丁 以root用户执行以下命名
$ORACLE_HOME/OPatch/opatchauto apply $UNZIPPED_PATCH_LOCATION/32242453 -oh $ORACLE_HOME -analyze $ORACLE_HOME/OPatch/opatchauto apply $UNZIPPED_PATCH_LOCATION/32242453 -oh $ORACLE_HOME
7 、补丁应用验证 以grid用户执行以下命令
$opatch lsinventory -oh <GI_HOME> 以oracle用户执行以下命令 $opatch lsinventory -oh <ORACLE_HOME>
8 、数据字典应用 检查数据字典中补丁信息
set lines 500 pages 500 col description for a75 col action_time for a35 col action for a10 col comments for a50 col VERSION for a25 col NAMESPACE for a20 col BUNDLE_SERIES for a20 select * from registry$history; select patch_id,version,action,status,action_time,description from dba_registry_sqlpatch; cd $ORACLE_HOME/OPatch ./datapatch -verbose 过程见下面 sqlplus / as sysdba SQL> shutdown immediate; 检查数据字典中补丁信息 set lines 500 pages 500 col description for a75 col action_time for a35 col action for a10 col comments for a50 col VERSION for a25 col NAMESPACE for a20 col BUNDLE_SERIES for a20 select * from registry$history; select patch_id,version,action,status,action_time,description from dba_registry_sqlpatch; 9、检测失效对象 set lin 300 pages 5000 col object_name for a40 col owner for a20 select count(*) from dba_objects where status='INVALID'; select count(*) from dba_objects where status='INVALID' and owner='SYS'; select owner,object_name,object_type,status from dba_objects where status='INVALID' 如有失效对象,对失效对象进行修复 cd $ORACLE_HOME/rdbms/admin sqlplus / as sysdba SQL> @utlrp.sql
二、回退步骤 第一方案
1、以root用户执行以下命名 $GRID_HOME/OPatch/opatchauto rollback <UNZIPPED_PATCH_LOCATION>/32242453 -analyze $GRID_HOME/OPatch rollback <UNZIPPED_PATCH_LOCATION>/32242453 -oh <path to GI home> 2、补丁应用验证 以grid用户执行以下命令 $GRID_HOME/OPatch/opatch lsinventory -oh $GRID_HOME 以oracle用户执行以下命令 $GRID_HOME/OPatch/opatch lsinventory -oh $ORACLE_HOME 第二方案 在每个节点分别解压$GRID_HOME和$ORACLE_HOME tar xvf /oracle/backup_soft/`date +\%Y\%m\%d`_GIDB.tar /u01 在每个节点启动crs $GRID_HOME/bin/crsctl start crs 启动数据库 $ORACLE_HOME/bin/srvctl start instance -d <db_unique_name> -n <node_name>
-the end-
