Announcements

Oracle training based on real-time expertise as per industry standards. Upcoming batch details are here.

View batch schedule

Free Oracle mock interview. Register using the link.

Register

#DBAchallenge: submit your questions.

Ask questions
Swipe for more →
Browse by Topic
Latest Posts

    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

    2 comments:

    1. Hi. Good work, but better and faster is using opatchauto
      /u01/app/19.0.0.0/grid/OPatch/opatchauto apply /u01/patches/37257886
      All steeps above are doing automaticly

      ReplyDelete

    🌟 Proud to be an Oracle ACE Pro! 🚀

    🌟 Proud to be an Oracle ACE Pro! 🚀 I’m excited to share my official Oracle ACE Profile with the Oracle community. 👨‍💻 Mallikarjun ...