Monday, June 14, 2021

19c GI Home Patching + Database Patching + Database Post Patching (datapatch)

 GI Home patching:

=================

1) Stop GI Home as root user

/u01/app/19.0.0.0/grid/bin/crsctl stop crs
/u01/app/19.0.0.0/grid/bin/crsctl start crs

2) Unlock the GI Home as root user

/u01/app/19.0.0.0/grid/crs/install/rootcrs.pl -prepatch

3) grant permision patch directory as root user

chown -R grid:oinstall /u01/patches/

4) As grid user do prechks 

su - grid
cd /u01/app/19.0.0.0/grid/
mv OPatch OPatch_backup
unzip p6880880_122010_Linux-x86-64.zip -d /u01/app/19.0.0.0/grid/
/u01/app/19.0.0.0/grid/OPatch/opatch version
/u01/app/19.0.0.0/grid/OPatch/opatch lspatches
/u01/app/19.0.0.0/grid/OPatch/opatch lsinv |grep applied
/u01/app/19.0.0.0/grid/OPatch/opatch lsinv |grep desc
/u01/app/19.0.0.0/grid/OPatch/opatch lspatches -oh /u01/app/19.0.0.0/grid

Conflict pre checks:

/u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/26022196/25869830 -oh /u01/app/19.0.0.0/grid

System space prechk:

/u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckSystemSpace -phBaseDir /u01/patches/26022196/25869830 -oh /u01/app/19.0.0.0/grid

5) Apply Patch:

/u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent -ocmrf /u01/patches/ocm.rsp /u01/patches/26022196/25869830
/u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent -ocmrf /u01/patches/ocm.rsp /u01/patches/26022196/AAAAAAA
/u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent -ocmrf /u01/patches/ocm.rsp /u01/patches/26022196/BBBBBB

6) Post verification

/u01/app/19.0.0.0/grid/OPatch/opatch lspatches
/u01/app/19.0.0.0/grid/OPatch/opatch lsinv |grep applied
/u01/app/19.0.0.0/grid/OPatch/opatch lsinv |grep desc
/u01/app/19.0.0.0/grid/OPatch/opatch lspatches -oh /u01/app/19.0.0.0/grid

7) Lock and start GI 

/u01/app/19.0.0.0/grid/rdbms/install/rootadd_rdbms.sh
/u01/app/19.0.0.0/grid/crs/install/rootcrs.pl -postpatch
/u01/app/19.0.0.0/grid/bin/crsctl check crs

DB Home patching:

=================

1) Stop DB Home as root user

ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1  /u01/app/oracle/product/19.0.0.0/dbhome_1/bin/srvctl stop home -o /u01/app/oracle/product/19.0.0.0/dbhome_1 -s /u01/patches/dbhome_1.state -n rac1

2) grant permission on patch directory as root user

chown -R oracle:oinstall /u01/patches/

3) As oracle user do prechks 

su - oracle
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch version
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lspatches
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lsinv |grep applied
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lsinv |grep desc
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lspatches -oh /u01/app/oracle/product/19.0.0.0/dbhome_1

Conflict pre checks:

/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/26022196/25869830 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1

System space prechk:

/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch prereq CheckSystemSpace -phBaseDir /u01/patches/26022196/25869830 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1

4) Apply Patch:

/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch apply -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 -silent -ocmrf /u01/patches/ocm.rsp /u01/patches/26022196/25869830

5) Post verification

/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lspatches
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lsinv |grep applied
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lsinv |grep desc
/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lspatches -oh /u01/app/oracle/product/19.0.0.0/dbhome_1

6) Start ORACLE_HOME as root user

ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1  /u01/app/oracle/product/19.0.0.0/dbhome_1/bin/srvctl start home -o /u01/app/oracle/product/19.0.0.0/dbhome_1 -s /u01/patches/dbhome_1.state -n rac1


Database Patching:

==================

1) Do database prechks

column comp_name format a40
column version format a12
column status format a15
select comp_name,version,status from dba_registry;
column owner format a15
column object_name format a40
column object_type format a20
select owner, object_name, object_type from dba_objects where status='INVALID' and owner like '%SYS%' order by object_type,owner,object_name;
@?/rdbms/admin/utlprp.sql 16

2) Run the database post steps

cd $ORACLE_HOME/OPatch
./datapatch -verbose

3) Verify the database post steps

set pagesize 20;
set linesize 200;
col ACTION_TIME format a30;
col DESCRIPTION format a50;
select PATCH_ID,BUNDLE_ID,BUNDLE_SERIES,status from dba_registry_sqlpatch;


Regards,
Mallik

1 comment:

Automation Script | Archivelog Generation Hourly Monitoring

1. List out all the running databases and pic one database where we want to monitore the archive log generation from last 1 month. [oracle@o...