Step 1: Download the Required Files
Download the Grid Infrastructure (GI) Patch 19.29 and the latest OPatch.
[oracle@dba-simplified ~]$ cd /u01/patch/ [oracle@dba-simplified patch]$ ls -ltr total 3989540 drwxrwxr-x 2 oracle oinstall 6 Nov 22 00:34 backup -rwxrwxr-x 1 oracle oinstall 72884918 Nov 22 2025 p6880880_190000_Linux-x86-64.zip -rwxrwxr-x 1 oracle oinstall 4012398257 Nov 23 2025 p38298204_190000_Linux-x86-64.zip
Step 2: Unzip the Patch Files
Unzip the patch file and change its permissions after extraction.
[oracle@dba-simplified patch]$ unzip -oq p38298204_190000_Linux-x86-64.zip [oracle@dba-simplified patch]$ [oracle@dba-simplified patch]$ ls -ltr total 3992524 drwxr-x--- 8 oracle oinstall 4096 Oct 16 04:59 38298204 -rw-rw-r-- 1 oracle oinstall 3047618 Oct 21 21:14 PatchSearch.xml drwxrwxr-x 2 oracle oinstall 6 Nov 22 00:34 backup -rwxrwxr-x 1 oracle oinstall 72884918 Nov 22 2025 p6880880_190000_Linux-x86-64.zip -rwxrwxr-x 1 oracle oinstall 4012398257 Nov 23 2025 p38298204_190000_Linux-x86-64.zip [oracle@dba-simplified patch]$ [oracle@dba-simplified patch]$ chmod -R 775 38298204 [oracle@dba-simplified patch]$ [oracle@dba-simplified patch]$ [oracle@dba-simplified patch]$ ls -ltr total 3992524 drwxrwxr-x 8 oracle oinstall 4096 Oct 16 04:59 38298204 -rw-rw-r-- 1 oracle oinstall 3047618 Oct 21 21:14 PatchSearch.xml drwxrwxr-x 2 oracle oinstall 6 Nov 22 00:34 backup -rwxrwxr-x 1 oracle oinstall 72884918 Nov 22 2025 p6880880_190000_Linux-x86-64.zip -rwxrwxr-x 1 oracle oinstall 4012398257 Nov 23 2025 p38298204_190000_Linux-x86-64.zip
Step 3: Upgrade OPatch in Both the Oracle Home and Grid Home
Before upgrading OPatch in both homes, make sure to take a backup of the existing OPatch utility. Then upgrade OPatch in both the Oracle Home and Grid Home. For correct ownership, Oracle Home’s OPatch files should belong to oracle:oinstall, and Grid Home’s OPatch files should belong to grid:oinstall.
[oracle@dba-simplified patch]$ cd /u01/app/oracle/19/db_home [oracle@dba-simplified db_home]$ mv OPatch OPatch_bkp [oracle@dba-simplified db_home]$ [oracle@dba-simplified db_home]$ unzip -oq /u01/patch/p6880880_190000_Linux-x86-64.zip [oracle@dba-simplified db_home]$ cd OPatch [oracle@dba-simplified OPatch]$ ./opatch version OPatch Version: 12.2.0.1.48 OPatch succeeded. [oracle@dba-simplified OPatch]$ cd /u01/app/grid/19/grid_home [oracle@dba-simplified grid_home]$ ls -ld OPatch drwxr-x--- 14 grid oinstall 4096 Nov 21 18:09 OPatch [oracle@dba-simplified grid_home]$ [oracle@dba-simplified grid_home]$ su Password: [root@dba-simplified grid_home]# mv OPatch OPatch_bkp [root@dba-simplified grid_home]# unzip -oq /u01/patch/p6880880_190000_Linux-x86-64.zip [root@dba-simplified grid_home]# [root@dba-simplified grid_home]# ls -ld OPatch drwxr-x--- 15 root root 4096 Oct 7 19:45 OPatch [root@dba-simplified grid_home]# chown -R grid:oinstall OPatch [root@dba-simplified grid_home]# [root@dba-simplified grid_home]# ls -ld OPatch drwxr-x--- 15 grid oinstall 4096 Oct 7 19:45 OPatch [root@dba-simplified grid_home]# [root@dba-simplified grid_home]# cd OPatch [root@dba-simplified OPatch]# ./opatch version OPatch Version: 12.2.0.1.48 OPatch succeeded.
Step 4: Take a TAR Backup of Oracle Home and Grid Home
For safety purposes, ensure you take a TAR backup of both the Oracle Home and Grid Home. In case anything goes wrong during patching, you can easily revert to the previous homes. For additional safety, you can also take a full RMAN backup of the database.
[oracle@dba-simplified ~]$ cd /u01/patch/backup [oracle@dba-simplified backup]$ nohup tar -cvzf dbhome_bkp.tar.gz /u01/app/oracle/19/db_home & [1] 19974 [oracle@dba-simplified backup]$ nohup: ignoring input and appending output to ‘nohup.out’ [oracle@dba-simplified backup]$ [oracle@dba-simplified backup]$ jobs [1]+ Running nohup tar -cvzf dbhome_bkp.tar.gz /u01/app/oracle/19/db_home & [oracle@dba-simplified backup]$ [oracle@dba-simplified backup]$ jobs [1]+ Done nohup tar -cvzf dbhome_bkp.tar.gz /u01/app/oracle/19/db_home & [oracle@dba-simplified backup]$ [oracle@dba-simplified backup]$ su - grid Password: Last login: Sat Nov 22 01:43:37 IST 2025 [grid@dba-simplified ~]$ cd /u01/patch/backup/ [grid@dba-simplified backup]$ nohup tar -cvzf gridhome_bkp.tar.gz /u01/app/grid/19/grid_home & [1] 20441 [grid@dba-simplified backup]$ nohup: ignoring input and appending output to ‘nohup.out’ [grid@dba-simplified backup]$ jobs [1]+ Running nohup tar -cvzf gridhome_bkp.tar.gz /u01/app/grid/19/grid_home & [grid@dba-simplified backup]$ [grid@dba-simplified backup]$ jobs [1]+ Done nohup tar -cvzf gridhome_bkp.tar.gz /u01/app/grid/19/grid_home & [grid@dba-simplified backup]$
Step 5: Analyze the Patch Before Applying
Analyze the patch to check for conflicts, missing dependencies, and compatibility issues. This quick verification ensures a smooth patching process and helps avoid errors during the actual application. Make sure you run these commands from the Grid Home’s OPatch directory.
[root@dba-simplified ~]# cd /u01/app/grid/19/grid_home/OPatch [root@dba-simplified OPatch]# ./opatchauto apply /u01/patch/38298204 -analyze OPatchauto session is initiated at Sat Nov 22 00:49:39 2025 System initialization log file is /u01/app/grid/19/grid_home/cfgtoollogs/opatchautodb/systemconfig2025-11-22_12-49-53AM.log. Session log file is /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/opatchauto2025-11-22_12-50-09AM.log The id for this session is BXEZ Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/19/db_home Patch applicability verified successfully on home /u01/app/oracle/19/db_home Executing patch validation checks on home /u01/app/oracle/19/db_home Patch validation checks successfully completed on home /u01/app/oracle/19/db_home Verifying SQL patch applicability on home /u01/app/oracle/19/db_home SQL patch applicability verified successfully on home /u01/app/oracle/19/db_home Executing OPatch prereq operations to verify patch applicability on home /u01/app/grid/19/grid_home Patch applicability verified successfully on home /u01/app/grid/19/grid_home Executing patch validation checks on home /u01/app/grid/19/grid_home Patch validation checks successfully completed on home /u01/app/grid/19/grid_home OPatchAuto successful. --------------------------------Summary-------------------------------- Analysis for applying patches has completed successfully: Host:dba-simplified SIDB Home:/u01/app/oracle/19/db_home Version:19.0.0.0.0 ==Following patches were SKIPPED: Patch: /u01/patch/38298204/38311528 Reason: This patch is not applicable to this specified target type - "oracle_database" Patch: /u01/patch/38298204/36758186 Reason: This patch is not applicable to this specified target type - "oracle_database" Patch: /u01/patch/38298204/38380425 Reason: This patch is not applicable to this specified target type - "oracle_database" ==Following patches were SUCCESSFULLY analyzed to be applied: Patch: /u01/patch/38298204/38322923 Log: /u01/app/oracle/19/db_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_00-51-20AM_1.log Patch: /u01/patch/38298204/38291812 Log: /u01/app/oracle/19/db_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_00-51-20AM_1.log Host:dba-simplified SIHA Home:/u01/app/grid/19/grid_home Version:19.0.0.0.0 ==Following patches were SKIPPED: Patch: /u01/patch/38298204/36758186 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_00-55-41AM_1.log Reason: /u01/patch/38298204/36758186 is not required to be applied to oracle home /u01/app/grid/19/grid_home ==Following patches were SUCCESSFULLY analyzed to be applied: Patch: /u01/patch/38298204/38322923 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_00-55-41AM_1.log Patch: /u01/patch/38298204/38311528 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_00-55-41AM_1.log Patch: /u01/patch/38298204/38380425 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_00-55-41AM_1.log Patch: /u01/patch/38298204/38291812 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_00-55-41AM_1.log OPatchauto session completed at Sat Nov 22 00:58:09 2025 Time taken to complete the session 8 minutes, 16 seconds [root@dba-simplified OPatch]#
Step 6: Apply the Patch
Apply the patch from the Grid Home; it will automatically patch both the Grid Home and Oracle Home using OPatch. Ensure all prerequisites are completed before proceeding to avoid errors during the patching process.
[root@dba-simplified OPatch]# ./opatchauto apply /u01/patch/38298204 OPatchauto session is initiated at Sat Nov 22 01:02:48 2025 System initialization log file is /u01/app/grid/19/grid_home/cfgtoollogs/opatchautodb/systemconfig2025-11-22_01-03-02AM.log. Session log file is /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/opatchauto2025-11-22_01-03-12AM.log The id for this session is VJAM Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/19/db_home Patch applicability verified successfully on home /u01/app/oracle/19/db_home Executing patch validation checks on home /u01/app/oracle/19/db_home Patch validation checks successfully completed on home /u01/app/oracle/19/db_home Verifying SQL patch applicability on home /u01/app/oracle/19/db_home SQL patch applicability verified successfully on home /u01/app/oracle/19/db_home Executing OPatch prereq operations to verify patch applicability on home /u01/app/grid/19/grid_home Patch applicability verified successfully on home /u01/app/grid/19/grid_home Executing patch validation checks on home /u01/app/grid/19/grid_home Patch validation checks successfully completed on home /u01/app/grid/19/grid_home Preparing to bring down database service on home /u01/app/oracle/19/db_home Successfully prepared home /u01/app/oracle/19/db_home to bring down database service Bringing down database service on home /u01/app/oracle/19/db_home Database service successfully brought down on home /u01/app/oracle/19/db_home Performing prepatch operations on CRS - bringing down CRS service on home /u01/app/grid/19/grid_home Prepatch operation log file location: /u01/app/grid/crsdata/dba-simplified/crsconfig/hapatch_2025-11-22_01-11-27AM.log CRS service brought down successfully on home /u01/app/grid/19/grid_home Performing prepatch operation on home /u01/app/oracle/19/db_home Prepatch operation completed successfully on home /u01/app/oracle/19/db_home Start applying binary patch on home /u01/app/oracle/19/db_home Binary patch applied successfully on home /u01/app/oracle/19/db_home Running rootadd_rdbms.sh on home /u01/app/oracle/19/db_home Successfully executed rootadd_rdbms.sh on home /u01/app/oracle/19/db_home Performing postpatch operation on home /u01/app/oracle/19/db_home Postpatch operation completed successfully on home /u01/app/oracle/19/db_home Start applying binary patch on home /u01/app/grid/19/grid_home Binary patch applied successfully on home /u01/app/grid/19/grid_home Running rootadd_rdbms.sh on home /u01/app/grid/19/grid_home Successfully executed rootadd_rdbms.sh on home /u01/app/grid/19/grid_home Performing postpatch operations on CRS - starting CRS service on home /u01/app/grid/19/grid_home Postpatch operation log file location: /u01/app/grid/crsdata/dba-simplified/crsconfig/hapatch_2025-11-22_01-32-50AM.log CRS service started successfully on home /u01/app/grid/19/grid_home Starting database service on home /u01/app/oracle/19/db_home Database service successfully started on home /u01/app/oracle/19/db_home Preparing home /u01/app/oracle/19/db_home after database service restarted No step execution required......... Trying to apply SQL patch on home /u01/app/oracle/19/db_home SQL patch applied successfully on home /u01/app/oracle/19/db_home OPatchAuto successful. --------------------------------Summary-------------------------------- Patching is completed successfully. Please find the summary as follows: Host:dba-simplified SIDB Home:/u01/app/oracle/19/db_home Version:19.0.0.0.0 Summary: ==Following patches were SKIPPED: Patch: /u01/patch/38298204/38311528 Reason: This patch is not applicable to this specified target type - "oracle_database" Patch: /u01/patch/38298204/36758186 Reason: This patch is not applicable to this specified target type - "oracle_database" Patch: /u01/patch/38298204/38380425 Reason: This patch is not applicable to this specified target type - "oracle_database" ==Following patches were SUCCESSFULLY applied: Patch: /u01/patch/38298204/38291812 Log: /u01/app/oracle/19/db_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_01-12-45AM_1.log Patch: /u01/patch/38298204/38322923 Log: /u01/app/oracle/19/db_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_01-12-45AM_1.log Host:dba-simplified SIHA Home:/u01/app/grid/19/grid_home Version:19.0.0.0.0 Summary: ==Following patches were SKIPPED: Patch: /u01/patch/38298204/36758186 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_01-08-08AM_1.log Reason: /u01/patch/38298204/36758186 is not required to be applied to oracle home /u01/app/grid/19/grid_home ==Following patches were SUCCESSFULLY applied: Patch: /u01/patch/38298204/38291812 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_01-22-36AM_1.log Patch: /u01/patch/38298204/38311528 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_01-22-36AM_1.log Patch: /u01/patch/38298204/38322923 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_01-22-36AM_1.log Patch: /u01/patch/38298204/38380425 Log: /u01/app/grid/19/grid_home/cfgtoollogs/opatchauto/core/opatch/opatch2025-11-22_01-22-36AM_1.log OPatchauto session completed at Sat Nov 22 01:43:38 2025 Time taken to complete the session 40 minutes, 37 seconds [root@dba-simplified OPatch]#
Step 7: Verify the Patch Installation
After applying the patch, verify the patch details using the DBA_REGISTRY_SQLPATCH view. This confirms that the patch has been successfully applied to the database.
SQL> SELECT INSTALL_ID, PATCH_ID, PATCH_UID, ACTION, DESCRIPTION FROM DBA_REGISTRY_SQLPATCH; INSTALL_ID PATCH_ID PATCH_UID ACTION DESCRIPTION ---------- ---------- ---------- ------- ------------------------------------------------------- 1 29517242 22862832 APPLY Database Release Update : 19.3.0.0.190416 (29517242) 2 37960098 27635722 APPLY Database Release Update : 19.28.0.0.250715 (37960098) 3 38291812 28130960 APPLY Database Release Update : 19.29.0.0.251021 (38291812)
Conclusion: Patching Oracle 19c in a standalone environment is straightforward when the workflow is followed in the right sequence. By preparing the system, updating Grid Home and Oracle Home, and validating the post-patch status, you ensure a secure, stable, and fully optimized Oracle 19c database. Consistent patching not only strengthens performance and reliability but also keeps your environment aligned with Oracle’s latest updates.
