Oracle-GIRU patch upgrade

1. Environmental Information

key value
operating system

RHEL7.2

Database Version 12.2.0.1
Giro 26610291
The number of instances 4

2. Implementation Process

1) Check the current status of the database service

2) upload patch kit

3) Collision Detection

4) Application patch

5) update the data dictionary

6) Check

3. The implementation process

3.1 check the database state

su - grid
crsctl status res -t -init
crsctl status res -t

tail -100f $(orabase)/diag/asm/+ASM/trace/alert*.log

# Run CVU checks
cd /ups/oracle/12.2/grid/ ./runcluvfy.sh stage -pre crsinst -n orc1,orc2 -fixup -verbose
su - oracle
tail -100f $(orabase)/diag/rdbms/$DB_NAME/$SID/trace/alert*.log

3.2 update patch tool - all nodes

# 更新OPatch工具
su - root
mv /ups/oracle/12.2/grid/OPatch /ups/oracle/12.2/grid/OPatch_20171010

cd /ups/soft
unzip p6880880_122010_Linux-x86-64.zip -d /ups/oracle/12.2/grid
chown -R grid:oinstall /ups/oracle/12.2/grid/OPatch
chmod -R +x /ups/oracle/12.2/grid/OPatch


su - oracle
cd /ups/soft
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_$(date +%Y%m%d)
unzip p6880880_122010_Linux-x86-64.zip -d /ups/oracle/database/product/12.2/db_1/

3.3 patch conflict detection - all nodes

# 1. 解压RU补丁
su - grid
unzip p26610291_122010_Linux-x86-64.zip -d /ups/soft/

# 2. For Grid Infrastructure Home, as home user:
su - grid
 
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609817
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609966
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/25586399
 
# 3.For Database home, as home user:
su - oracle
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609817
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609966

# 4. For Grid Infrastructure Home, as home user:
su - grid
cat >> /tmp/patch_list_gihome.txt << EOF
/ups/soft/26610291/25586399
/ups/soft/26610291/26609966
/ups/soft/26610291/26609817
EOF
 
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
 
# 5. For Database home, as home user:
su - oracle
cat >> /tmp/patch_list_dbhome.txt << EOF
/ups/soft/26610291/26609966
/ups/soft/26610291/26609817
EOF

# 6. 补丁应用分析-并不进行软件更新
su - root
. /home/grid/.bash_profile && export GI_HOME=${ORACLE_HOME} && export UNZIPPED_PATCH_LOCATION=/ups/soft
${GI_HOME}/OPatch/opatchauto apply ${UNZIPPED_PATCH_LOCATION}/26610291 -analyze
OR
${GI_HOME}/OPatch/opatchauto rollback ${UNZIPPED_PATCH_LOCATION}/26610291 -analyze


3.4 apply the patch - each node in order to perform

su - root
# 1. Add the directory containing the opatchauto to the $PATH environment variable. For example:
export PATH=$PATH:/ups/oracle/12.2/grid/OPatch
# 2. To patch the GI home and all Oracle RAC database homes of the same version:
/ups/oracle/12.2/grid/OPatch/opatchauto apply /ups/soft/26610291
# 3. To patch only the GI home:
opatchauto apply <UNZIPPED_PATCH_LOCATION>/26610291 -oh <GI_HOME>
# 4. To patch one or more Oracle RAC database homes:
opatchauto apply <UNZIPPED_PATCH_LOCATION>/26610291 -oh <oracle_home1_path>,<oracle_home2_path>
# 5. To roll back the patch from the GI home and each Oracle RAC database home:
# opatchauto rollback <UNZIPPED_PATCH_LOCATION>/26610291
# 6. To roll back the patch from the GI home:
# opatchauto rollback <UNZIPPED_PATCH_LOCATION>/26610291 -oh <path to GI home>
# 7. To roll back the patch from the Oracle RAC database home:
# opatchauto rollback <UNZIPPED_PATCH_LOCATION>/26610291 -oh <oracle_home1_path>,<oracle_home2_path>

3.5 update the data dictionary (all nodes to be selected from a patch update completes execution example)

su - oracle
srvctl start instance -d orcl -i orcl1
sqlplus /nolog
connect / as sysdba
alter pluggable database all open instances=all; 
quit;

cd $ORACLE_HOME/OPatch
./datapatch -verbose

3.6 Check

# Detection dictionary updates 
su - the Oracle 
cd $ ORACLE_BASE / cfgtoollogs / sqlpatch / 26,610,291 / <UNIQUE Patch ID> 
26610291_apply_ <Database SID> _ <CDB name> _ <timestamp> .log 

# check the database service 
su - Grid 
crsctl Status RES - t 

# check the patch application 
su - Grid 
opatch lspatches 

su - the Oracle 
opatch lspatches 


# inspection view 

sqlplus "/ AS sysdba" 
 the SET Lines 168 Pages and the 999 
 COL the DESCRIPTION for A40 
 COL Status for A10 
 COL Version for A10 
 the SELECT patch_id, PATCH_UID, the STATUS, VERSION , bUNDLE_ID, to_char (ACTION_TIME, ' yyyy-mm-dd hh24: mi: ss') ACTION_TIME, DESCRIPTION from dba_registry_sqlpatch; 
   PATCH_ID PATCH_UID the STATUS VERSION bundle_ID ACTION_TIME the DESCRIPTION 
 ----- ----- ---------- ---------- ------------ ---------- --- ---------------- ---------------------------------- ------
   26609817   21483023 SUCCESS    12.2.0.1         170814 2017-10-11 09:37:18 DATABASE RELEASE UPDATE 12.2.0.1.170814
  
 SQL>


Step 4. rollback

# Rollback software patch 
su - root 
<GI_HOME> / OPatch / opatchauto ROLLBACK <UNZIPPED_PATCH_LOCATION> / 26,610,291 

# rollback data dictionary update 
su - the Oracle 
sqlplus / nolog 
Connect / AS sysdba 
the Startup 
the ALTER Pluggable Database All Open; 
quit; 

cd $ (orabasehome ) / OPatch 
./datapatch -verbose 

# fail if the object exists, the script execution repair 

cd $ ORACLE_HOME / the RDBMS / ADMIN 
sqlplus / nolog 
SQL> the CONNECT / AS SYSDBA 
SQL> @? / the RDBMS / ADMIN / utlrp.sql

Guess you like

Origin www.cnblogs.com/binliubiao/p/12607798.html