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