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

    Sunday, April 19, 2026

    Oracle Patching Interview Questions 🚀 | GI, Oracle Home & Database

    Lab1: OH
    =============
    1. Patch Oracle Home - OPatch Tool ------------------- done 
    2. Patch Database DEVDB - datapatch tool ------------------- done 

    Lab2: GI/ASM & OH 
    ==================
    1. Patch GI Home - OPatch Tool ----------------------- done 
    2. Patch Oracle Home - OPatch Tool ------------------- done 
    3. Patch Database TESTDB - datapatch tool ------------------- done 
     

    1. datapatch taking more time? or datapatch is hang?
    - dba_registry (Invalid) 
    - dba_object (Invalid) 
    - lots of user session or Tx

    2. OPatch Vs OPatchauto 
    opatch ---- manual patching 
    opathauto --- automatic patching 

    GI:
    /u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent /u01/patches/19.17/34416665/34419443
    /u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent /u01/patches/19.17/34416665/34444834
    /u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent /u01/patches/19.17/34416665/34428761
    /u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent /u01/patches/19.17/34416665/34580338
    /u01/app/19.0.0.0/grid/OPatch/opatch apply -oh /u01/app/19.0.0.0/grid -local -silent /u01/patches/19.17/34416665/33575402

    /u01/app/19.0.0.0/grid/OPatch/opatchauto apply /u01/patches/19.17/34416665 -oh /u01/app/19.0.0.0/grid

    DB:
    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch apply -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 -local -silent /u01/patches/19.17/34416665/34419443
    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch apply -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 -local -silent /u01/patches/19.17/34416665/34444834

    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatchauto apply /u01/patches/19.17/34416665 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1

    GI + DB 
    /u01/app/19.0.0.0/grid/OPatch/opatchauto apply /u01/patches/19.17/34416665


    Conflict pre checks:
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/19.17/34416665/34419443 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/19.17/34416665/34444834 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/19.17/34416665/34428761 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/19.17/34416665/34580338 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/19.17/34416665/33575402 -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/19.17/34416665/34419443 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckSystemSpace -phBaseDir /u01/patches/19.17/34416665/34444834 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckSystemSpace -phBaseDir /u01/patches/19.17/34416665/34428761 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckSystemSpace -phBaseDir /u01/patches/19.17/34416665/34580338 -oh /u01/app/19.0.0.0/grid
    /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckSystemSpace -phBaseDir /u01/patches/19.17/34416665/33575402 -oh /u01/app/19.0.0.0/grid


    Conflict pre checks:
    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/19.17/34416665/34419443 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1
    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patches/19.17/34416665/34444834 -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/19.17/34416665/34419443 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1
    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch prereq CheckSystemSpace -phBaseDir /u01/patches/19.17/34416665/34444834 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1


    /u01/app/19.0.0.0/grid/OPatch/opatchauto apply /u01/patches/19.17/34416665 -analyse 


    3. How to minimise downtime?
    - Out of place patching 

    Lab1: OH
    =============
    1. Patch Oracle Home - OPatch Tool ------------------- done (Downtime) 
    2. Patch Database DEVDB - datapatch tool ------------------- done (Online)

    Lab2: GI/ASM & OH 
    ==================
    1. Patch GI Home - OPatch Tool ----------------------- done (Downtime) 
    2. Patch Oracle Home - OPatch Tool ------------------- done (Downtime)  
    3. Patch Database TESTDB - datapatch tool ------------------- done (Online)

    OH - /u01/app/oracle/product/19.0.0.0/dbhome_1
    DB - DEVDB 

    a. copy dbhome_1 as dbhome_2
    b. clone OH dbhome_2 using clone.pl 
    - https://mallik034.blogspot.com/2020/02/cloning-oracle-home.html
    c. apply patches on dbhome_2 using opatch
    d. stop DB - DEVDB/TESTDB on dbhome_1 and start from dbhome_2 --- minimum downtime 
    e. run datapatch for DB - DEVDB/TESTDB - online 


    4. CDB and PDB patching 

    DEVCDB >>>> PDB1, PDB2, PDB3 (PDB1 - closed) 
    . oraenv >>> DEVCDB 
    ./datapatch -verbose 

    later we have option to patch only PDB 
    . oraenv >>> DEVCDB 
    ./datapatch -PDBS PDB1 -verbose 


    5. Standby or DR 
    +++++++++++++++++++++++++++++++++++++
    1. Apply patch on OH at DR 
    - We don't do database patching at DR 

    2. Apply patch on OH at PROD
    3. Patch PROD database using datapatch 
    - When log shipping happens from PROD to DR then DR database will get patched 


    1. Apply patch on GI at DR 
    2. Apply patch on OH at DR 
    - We don't do database patching at DR 

    3. Apply patch on GI at PROD 
    4. Apply patch on OH at PROD
    5. Patch PROD database using datapatch 
    - When log shipping happens from PROD to DR then DR database will get patched 


    6. Rollback 
    ++++++++++++++++

    lab1: rollback
    =============== 
    19.3 -> 19.17 >>>> Apply / patch 
    19.17 -> 19.3 >>>> Rollback 

    [oracle@oraclelab1 OPatch]$ /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lspatches
    34419443;Database Release Update : 19.17.0.0.221018 (34419443)
    34444834;OCW RELEASE UPDATE 19.17.0.0.0 (34444834)

    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch rollback -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 -local -silent -id 34444834
    /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch rollback -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 -local -silent -id 34419443

    19.3 -> 19.17 >>>> Apply / patch 
    19.3 - become inactive but will not be removed 
    19.17 - active 
    when you rollback 19.17 then whatever old patch (19.3) will become active again 

    Where these patches are stored either old inactive or active?

    7. Patch Storage
    ====================
    Where are these patches stored?
    /u01/app/19.0.0.0/grid/.patch_storage/
    /u01/app/oracle/product/19.0.0.0/dbhome_1/.patch_storage/

    8. Central Inventory & Local Inventory:
    Central Inventory (/u01/app/oraInventory) 
    - Software Information or what all softwares are installed on a server like GI, 12c OH or 19c OH 

    cat /etc/oraInst.loc 
    cat /u01/app/oraInventory/ContentsXML/inventory.xml

    Local Inventory
    - Patch Information applied on that GI home or Oracle Home 
    - each GI home and OH will be having its own local inventory 

    lab1:
    /u01/app/oracle/product/19.0.0.0/dbhome_1/inventory/ContentsXML/comps.xml 

    lab2:
    /u01/app/19.0.0.0/grid/inventory/ContentsXML/comps.xml 
    /u01/app/oracle/product/19.0.0.0/dbhome_1/inventory/ContentsXML/comps.xml 

    9. Can we run the opath or opatchauto parallelly 
    - No 

    10. Can we run multiple datapatch 
    - Yes

    12. Can I run opath/opatchauto online 
    - No 

    13. Can I run datapatch online 
    - Yes (Its always online)  

    14. Can I patch DR first or PROD first 
    - Any order (Best practice is always patch DR first)

    15. On lab2 Can I patch DB home first or ASM home first 
    - Any order (Best practice is always patch ASM Home first)

    16. What are different patches?
    - Many 

    ONEOFF patch 
    merge patch 
    RU patch 
    CPU patch 
    quarterly patch 
    intrem patch 
    overlay patch 
    JAVA patch 
    perl patch 
    JDBC patch 
    HOT patch 
    online patch 

    17. In case any inventory corruption - what happens?
    - Patching will fail 
    - Work with oracle support and rebuild inventory 

    18. What are possible patching failure 
    - active process 
    - lower OPatch version 
    - Space issue 
    - network issue 
    - process got killed 
    - patching failed with relink issue 
    - patching may fail due to permission issue 


    - in any failure read the patching and fix the issue 
    - re-run the patch command again 


    19. Opatch is slow 
    - Patch Storage is issue 
    - there are lot of inactive patches 
    - Opatch remove inactive patches (DoID/steps) 

    19.3 -> 19.17 -> 19.20 -> 19.23 -> 19.25 -> 19.29 -> 19.30 

    $ $ORACLE_HOME/OPatch/opatch util listorderedinactivepatches
    $ $ORACLE_HOME/OPatch/opatch util deleteinactivepatches

    20. Manual way of relinking oracle home 
    - relink 
    /u01/app/oracle/product/19.0.0.0/dbhome_1/bin/relink all  

    Regards,
    Mallikarjun / Vismo Technologies
    WhatsApp: +91 9880616848 / +91 9036478079
    Cell: +91 9880616848 / +91 9036478079
    Email: mallikarjun.ramadurg@gmail.com / vismotechnologies@gmail.com

    No comments:

    Post a Comment

    🌟 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 ...