Home » Oracle Exadata Patching (Oracle Homes)

Exadata Patch – Part 1/5: Patching GI & RDBMS Homes

Author: Sami A | Category: Exadata Patching | Tags: Oracle Exadata, OPatch, GI, RDBMS

Introduction

This article is the first part of a five-step Exadata patching series. In this step, we will patch the Grid Infrastructure (GI) and Oracle RDBMS homes. The patching strategy uses a 2-by-2 node approach: patch two servers (target_nodes) while the other two remain online. The patch will be triggered from one online node (source_node).

Always review the official patch README files before proceeding, as some patches require special handling.

Target Patches

  • GI & RDBMS Home Patch: p37641958_190000_Linux-x86-64.zip
  • OJVM Patch (if required): p37499406_190000_Linux-x86-64.zip
  • Recommended DB Patches:
    • p34774667_1927000DBRU_Linux-x86-64.zip
    • p34672698_1927000DBRU_Linux-x86-64.zip

Step 1: Configure SSH Equivalence

Ensure passwordless SSH between nodes. From the source_node (VM_1):


dcli -g /u01/stage/target_Nodes -l root -k -s '-o StrictHostKeyChecking=no'
dcli -g /u01/stage/target_Nodes -l root hostname

Step 2: Prepare and Copy Patches

Create required directories and assign permissions, from the source_node (VM_1)


dcli -g /u01/stage/target_Nodes -l root mkdir -p /u01/stage/GI_DB_OJVM_19c/ 

Copy patch zip files to all nodes:


dcli -g /u01/stage/target_Nodes -l root -f /u01/stage/GI_DB_OJVM_19c/p37641958_190000_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/
dcli -g /u01/stage/target_Nodes -l root -f /u01/stage/GI_DB_OJVM_19c/p37499406_190000_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/
dcli -g /u01/stage/target_Nodes -l root -f /u01/stage/GI_DB_OJVM_19c/p34774667_1927000DBRU_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/
dcli -g /u01/stage/target_Nodes -l root -f /u01/stage/GI_DB_OJVM_19c/p34672698_1927000DBRU_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/
dcli -g /u01/stage/target_Nodes -l root chown -R oracle:oinstall /u01/stage/GI_DB_OJVM_19c/
dcli -g /u01/stage/target_Nodes -l root chmod -R 666 /u01/stage/GI_DB_OJVM_19c/ 

Unzip patches:


dcli -g /u01/stage/target_Nodes -l grid "unzip -oq /u01/stage/GI_DB_OJVM_19c/p37641958_190000_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/"
dcli -g /u01/stage/target_Nodes -l oracle "unzip -oq /u01/stage/GI_DB_OJVM_19c/p37499406_190000_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/"
dcli -g /u01/stage/target_Nodes -l oracle "unzip -oq /u01/stage/GI_DB_OJVM_19c/p34774667_1927000DBRU_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/"
dcli -g /u01/stage/target_Nodes -l oracle "unzip -oq /u01/stage/GI_DB_OJVM_19c/p34672698_1927000DBRU_Linux-x86-64.zip -d /u01/stage/GI_DB_OJVM_19c/" 

    

Step 3: Pre-Checks

Check patch conflicts and required space, from the source_node (VM_1):

Below checking patch conflicts:


dcli -g /u01/stage/target_Nodes -l grid /u01/app/19.0.0.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/stage/GI_DB_OJVM_19c/37641958/37642901 

Then we have to check required space for the patch,

Create file which has patch location and copy it to all servers


#
cat /tmp/patch_list_gihome.txt
/u01/stage/GI_DB_OJVM_19c/37641958/37642901
/u01/stage/GI_DB_OJVM_19c/37641958/37654975
/u01/stage/GI_DB_OJVM_19c/37641958/37643161
/u01/stage/GI_DB_OJVM_19c/37641958/37762426
/u01/stage/GI_DB_OJVM_19c/37641958/36758186
 

 dcli -g /u01/stage/target_Nodes -l root -f /tmp/patch_list_gihome.txt -d /tmp/
 dcli -g /u01/stage/target_Nodes -l root chown grid:oinstall /tmp/patch_list_gihome.txt 

Check required space for the patches:


dcli -g /u01/stage/target_Nodes -l grid /tmp/patch_list_gihome.txt prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt 

Step 4: Stop Oracle Homes

We will stop the Oracle background processess on out target servers (Target_Node_1 & Target_Node_2 only):


$ srvctl stop home -oraclehome /u01/app/oracle/product/19.0.0.0/dbhome_1 -statefile /tmp/orahome1 -node Target_Node_1 -stopoption immediate
$ srvctl stop home -oraclehome /u01/app/oracle/product/19.0.0.0/dbhome_1 -statefile /tmp/orahome2 -node Target_Node_2 -stopoption immediate
 

Step 5: Apply the Patches

Login to Target_Node_1 & Target_Node_2 from sperated terminals , then Apply GI_HOME and Oracle Home patches in parallel:


# As root, Apply GI Home Patch
    

/u01/app/19.0.0.0/grid/OPatch/opatchauto apply /u01/stage/GI_DB_OJVM_19c/37641958 -oh /u01/app/19.0.0.0/grid 

# As root, apply RDBMS Home patch


/u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatchauto apply /u01/stage/GI_DB_OJVM_19c/37641958 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 

Step 6: Verify Applied Patches

    
su – grid 
 
$ /u01/app/19.0.0.0/grid/OPatch/opatch lsinventory -oh /u01/app/19.0.0.0/grid | grep “applied on” 

su – oracle 
 
$ /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch lsinventory -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 | grep “applied” 

Step 7: Apply OJVM Patch (Optional)

If OJVM is installed and required:

su – oracle 
 
$ cd /u01/stage/GI_DB_OJVM_19c/37499406
$ /u01/app/oracle/product/19.0.0.0/dbhome_1/OPatch/opatch apply
 

Step 8: Post-Patch Activities

Open all the DBs and all the pluggable DBs

su – oracle 
sqlplus / as sysdba 

SQL> startup
SQL> alter pluggable database all open;

Run datapatch

su – oracle 
 export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
 cd $ORACLE_HOME/OPatch
./datapatch -sanity_checks
./datapatch -verbose 

Check data dictionary

su – oracle 
sqlplus / as sysdba 

SQL> select PATCH_ID,ACTION,STATUS,ACTION_TIME,TARGET_VERSION from dba_registry_sqlpatch;

🔖 Next: Part 1/5 – Oracle Exadata Patching (Oracle Homes)

🔖 Next: Part 2/5 – Oracle Exadata Patching (RoCE Switches)

🔖 Next: Part 3/5 – Oracle Exadata Patching (Cell Storage)

🔖 Next: Part 4/5 – Oracle Exadata Patching (KVM Host)

🔖 Next: Part 5/5 – Oracle Exadata Patching (KVM Guest)

5/5 - (1 vote)

Share this post:

You May Also Like

DB_NT_Tuning
Data Guard

Understanding Oracle SDU, TCP Socket Buffer Sizes, and Linux Network Queue Parameters for Database Performance

Modern database performance is shaped not only by CPU and storage, but also by how efficiently data moves. Parameters in DB, Linux and network device are playing a critical role in determining throughput, latency, and overall connection stability, when these layers are properly aligned, huge result can achieve. This article explores which and how these parameters can be tune.

Read More »

Comments

Get the latest Oracle Database and Exadata tips delivered to your inbox

Leave a Reply

Discover more from DBA exadata

Subscribe now to keep reading and get access to the full archive.

Continue reading