Oracle Critical Patch Update on 19c - April 2020
Oracle Critical Patch Update (CPU)
Patch 30783556 - Combo of OJVM Component Release Update 19.7.0.0.200414 + Grid Infrastructure Apr 2020 Release Update 19.7.0.0.200414
PURPOSE: All documents are provided on this Blog just for educational purposes only. Please make sure that you run it in your test environment before to move on to production environment.
Execute the following commands:
STEP 1
Patch 30899722 - GI Release Update 19.7.0.0.200414
1)
NOTE: IMPORTANT
GI Home:
You need to update first opatch to the higer or letest version.
You can download letest version from the following link.
Download lest OPatch from "https://updates.oracle.com/download/6880880.html"
Latest OPatch copy files.
cd /u02/oracle/home/product/19.0.0/grid_19
mv OPatch OPatch_old
cd /oracle/download/OPatch_latest/OPatch
cp -r OPatch /u02/oracle/home/product/19.0.0/grid_19
You Need to do the same on ORACLE_HOME
Oracle ORACLE_HOME
Latest OPatch copy files
cd /u01/oracle/home/product/19.0.0/dbhome_19
mv OPatch OPatch_old
cd /oracle/download/OPatch_latest/OPatch
cp -r OPatch /u01/oracle/home/product/19.0.0/dbhome_19
Unzip patch file downloaded
p30463609_190000_Linux-x86-64.zip
Check the conflict:
From Grid_home
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30869156
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2020, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u02/oracle/app/home/product/19.0.0/grid_19
Central Inventory :/u02 /oracle/app/oraInventory
from :/u02 /oracle/app/home/product/19.0.0/grid_19/oraInst.loc
OPatch version : 12.2.0.1.17
OUI version : 12.2.0.7.0
Log file location : /u02/oracle/app/home/product/19.0.0/grid_19/cfgtoollogs/opatch/opatch2020-04-20_13-40-11PM_1.log
Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.
Copyright (c) 2020, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u02/oracle/app/home/product/19.0.0/grid_19
Central Inventory :/u02 /oracle/app/oraInventory
from :/u02 /oracle/app/home/product/19.0.0/grid_19/oraInst.loc
OPatch version : 12.2.0.1.17
OUI version : 12.2.0.7.0
Log file location : /u02/oracle/app/home/product/19.0.0/grid_19/cfgtoollogs/opatch/opatch2020-04-20_13-40-11PM_1.log
Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.
I am not going to add output of all commands. The output should looks like as above.
$DOWNLOAD is a directory where the patch is located.
$DOWNLOAD is a directory where the patch is located.
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30894985
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30869304
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30898856
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30869304
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30898856
For Database home, as home user
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30869156
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30894985
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722/30894985
2)
Shut down all instances and listeners associated with the Oracle home that you are updating.
Stop a PDB from Oracle home:
alter pluggable database EMREP close immediate;
srvctl stop database -d EMCDB
srvctl status database -d EMCDB
Database is not running.
Stop Listener from GI Home
srvctl stop listener -l LISTENER
srvctl status listener -l LISTENER
Listener LISTENER is enabled
Listener LISTENER is not running
Stop ASM
srvctl stop asm -f
srvctl status asm
ASM is not running.
3)
As root user execute the following command.
You have following options
i) To patch only the GI Home
<GI_HOME>/OPatch/opatchauto apply <UNZIPPED_PATCH_LOCATION>/30899722 - oh <GI_HOME>
ii) To patch oracle_home
opatchauto apply <UNZIPPED_PATCH_LOCATION>/30899722 -oh <oracle_home1_path>
iii) Patching Oracle Home and Grid Home togather:
As root user, execute the following command on each node of the cluster:
# <GI_HOME>/OPatch/opatchauto apply <UNZIPPED_PATCH_LOCATION>/30899722
I am going to apply the path on both grid home and oracle home together.
NOTE: make sure that the Clusterware is running:
NOTE: make sure that the Clusterware is running:
crsctl status has
If it is not running, you need to start it as follow.
crsctl start has
export PATH=$PATH:/u02/oracle/app/home/product/19.0.0/grid_19/OPatch
$GRID_HOME/OPatch/opatchauto apply $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722
$GRID_HOME/OPatch/opatchauto apply $DOWNLOAD/APRL_patch_19c_2020/30783556/30899722
Post-Installation Instructions
Single/Multitenant (CDB/PDB) DB
sqlplus / as sysdba
startup
alter pluggable database all open;
quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
Any databases that have invalid objects need to execute utlrp.sql run
For example:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
-- You can check valid or invalid objects with the following command.
col COMP_NAME format a35;
select COMP_NAME, version, status from dba_registry;
STEP 2
Patch 30805684 - Oracle JavaVM Component Release Update 19.7.0.0.200414
For a Non Oracle RAC environment, shut down all databases and listeners associated with the Oracle home that you are updating.
From Oracle_home.
Normally no need to stop ASM. You need to just stop the DB and Listener
alter pluggable database EMREP close immediate;
srvctl stop database -d EMCDB
srvctl stop listener -l LISTENER
export PATH=$PATH:/usr/ccs/bin
#$ORACLE_HOME/OPatch/opatch apply /oracle/download/APRL_patch_19c_2020/30783556/30805684
Post installation Steps.
startup upgrade
alter pluggable database all open upgrade;
exit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
sqlplus / as sysdba
shutdown
startup
alter pluggable database all open;
cd $ORACLE_HOME/rdbms/admin
SQL> @utlrp.sql
==== DONE ====
Verify the patch Version and Status of the patch:
col ID format a5
col COMMENTS format a20
col VERSION format a12
col BUNDLE format a5
col ACTION_TIME format a30
col ACTION format a10
set linesize 150
select substr(action_time,1,30) action_time, substr(id,1,8) id, substr(action,1,10) action, substr(version,1,8) version, substr(comments,1,20) comments from sys.registry$history ;
set pagesize 20;
set linesize 200;
col ACTION_TIME format a30;
col DESCRIPTION format a50;
select PATCH_ID,ACTION,ACTION_TIME,DESCRIPTION,STATUS from registry$sqlpatch order by ACTION_TIME ;
select PATCH_ID,DESCRIPTION,STATUS from registry$sqlpatch order by ACTION_TIME ;
PATCH_ID ACTION ACTION_TIME DESCRIPTION STATUS
---------- ---------- ------------------------------ -------------------------------------------------------
30869156 APPLY 26-APR-20 01.27.26.847074 PM Database Release Update : 19.7.0.0.200414 (30869156) SUCCESS
30484981 ROLLBACK 26-APR-20 01.45.02.868755 PM OJVM RELEASE UPDATE: 19.6.0.0.200114 (30484981) SUCCESS
30805684 APPLY 26-APR-20 01.45.02.872990 PM OJVM RELEASE UPDATE: 19.7.0.0.200414 (30805684) SUCCESS
---------- ---------- ------------------------------ -------------------------------------------------------
30869156 APPLY 26-APR-20 01.27.26.847074 PM Database Release Update : 19.7.0.0.200414 (30869156) SUCCESS
30484981 ROLLBACK 26-APR-20 01.45.02.868755 PM OJVM RELEASE UPDATE: 19.6.0.0.200114 (30484981) SUCCESS
30805684 APPLY 26-APR-20 01.45.02.872990 PM OJVM RELEASE UPDATE: 19.7.0.0.200414 (30805684) SUCCESS
Enjoy !