How to Apply Patches on an Oracle 19c Standalone Database (Step-by-Step Guide)

Step-by-step Oracle 19c patching guide for standalone database with commands and best practices to apply updates safely.
Applying patches is an essential part of keeping your Oracle Database secure and stable. In this guide, we will walk through how to apply a patch 19.29 on an Oracle 19c standalone database using the opatch auto method, making the process faster, easier, and fully automated.

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.

Post a Comment

© Ayaan Israr - All rights reserved. Premium By Ayaan Israr