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

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

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