April 15, 2026

How to Patch Oracle 19c to Release 19.30 on Windows – A Complete Step-by-Step Blog

 

As soon as  Oracle released quarterly patch for Jan 2026 , I had to patch one of my Oracle 19c databases from 19.25 to 19.30. Since this is something we DBAs do almost on every quarter, I decided to write down the exact steps I followed. The procedures are the same for all 19c versions.

Note: On production systems, always apply on test/dev first. Never patch production directly without testing!

Prerequisites

  • Oracle 19c database installed on Linux x86-64
  • Access to Oracle Support (MOS account)
  • OS user with ORACLE_HOME and ORACLE_BASE permissions
  • At least 12 GB free disk space in /home
  • WinSCP or similar tool to transfer files to the server
  • Scheduled maintenance window (database downtime required)

 

Step 1: Download the Patch and OPatch Utility

Log in to Oracle Support and download the following:

  • Patch file: 38597735 → p38597735_190000_MSWIN-x86-64.zip
  • OPatch utility: 6880880 → p6880880_190000_MSWIN -x86-64.zip

Steps to download: Select Patches & Updates → enter patch number → select platform Linux x86-64 → download both files and review the README.

 

Step 2: Check and Update OPatch

On the server, check your current OPatch version:

cd $ORACLE_HOME/OPatch

./opatch version

 

 

You need version 12.2.0.1.48 or higher. If it's older, update it:

cd %ORACLE_HOME%

ren OPatch OPatch_backup1

robocopy copy p6880880_190000_MSWIN -x86-64.zip   %ORACLE_HOME%

cd %ORACLE_HOME%

unzip p6880880_190000_MSWIN -x86-64.zip

 

 

Step 3: Run Pre-checks

Before applying the patch, check for conflicts with existing patches:

C:\Users\Administrator>cd C:\software\oracle_patch_19.30\38597735

 

C:\software\oracle_patch_19.30\38597735>D:\oracle\product\19.3.0\dbhome_1\OPatch\opatch prereq CheckConflictAgainstOHWithDetail -ph ./

Oracle Interim Patch Installer version 12.2.0.1.49

Copyright (c) 2026, Oracle Corporation.  All rights reserved.

 

PREREQ session

 

Oracle Home       : D:\oracle\product\19.3.0\dbhome_1

Central Inventory : C:\Program Files\Oracle\Inventory

   from           :

OPatch version    : 12.2.0.1.49

OUI version       : 12.2.0.7.0

Log file location : D:\oracle\product\19.3.0\dbhome_1\cfgtoollogs\opatch\opatch2026-04-14_19-40-37PM_1.log

 

Invoking prereq "checkconflictagainstohwithdetail"

 

Prereq "checkConflictAgainstOHWithDetail" passed.

 

OPatch succeeded.

 

As we see "OPatch succeeded", we are good to go. If there are conflicts, resolve them before proceeding.

Step 4: Stop the Database and Listener

sqlplus / as sysdba

 

SQL> shutdown immediate

SQL> exit

 

lsnrctl stop

 

 

Verify all services are completely down before moving to the next step.

Step 5: Clean Up Inactive Patches (Optional but Recommended)

This frees up Oracle Home space before applying the new patch:

cd $ORACLE_HOME/OPatch

./opatch util listOrderedInactivePatches

./opatch util deleteInactivePatches

 

 

Step 6: Check Available Disk Space

Do not proceed if space is insufficient in oracle home

Step 7: Apply the Patch

C:\software\oracle_patch_19.30\38597735>D:\oracle\product\19.3.0\dbhome_1\OPatch\opatch apply

Oracle Interim Patch Installer version 12.2.0.1.49

Copyright (c) 2026, Oracle Corporation.  All rights reserved.

 

 

Oracle Home       : D:\oracle\product\19.3.0\dbhome_1

Central Inventory : C:\Program Files\Oracle\Inventory

   from           :

OPatch version    : 12.2.0.1.49

OUI version       : 12.2.0.7.0

Log file location : D:\oracle\product\19.3.0\dbhome_1\cfgtoollogs\opatch\opatch2026-04-14_19-41-27PM_1.log

 

Verifying environment and performing prerequisite checks...

 

--------------------------------------------------------------------------------

Start OOP by Prereq process.

Launch OOP...

 

Oracle Interim Patch Installer version 12.2.0.1.49

Copyright (c) 2026, Oracle Corporation.  All rights reserved.

 

 

Oracle Home       : D:\oracle\product\19.3.0\dbhome_1

Central Inventory : C:\Program Files\Oracle\Inventory

   from           :

OPatch version    : 12.2.0.1.49

OUI version       : 12.2.0.7.0

Log file location : D:\oracle\product\19.3.0\dbhome_1\cfgtoollogs\opatch\opatch2026-04-14_19-44-33PM_1.log

 

Verifying environment and performing prerequisite checks...

OPatch continues with these patches:   38597735

 

Do you want to proceed? [y|n]

y

User Responded with: Y

All checks passed.

 

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.

(Oracle Home = 'D:\oracle\product\19.3.0\dbhome_1')

 

 

Is the local system ready for patching? [y|n]

y

User Responded with: Y

Backing up files...

Applying interim patch '38597735' to OH 'D:\oracle\product\19.3.0\dbhome_1'

ApplySession: Optional component(s) [ oracle.tomcat.crs, 19.0.0.0.0 ] , [ oracle.has.cfs, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.has.deconfig, 19.0.0.0.0 ] , [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.assistants.asm, 19.0.0.0.0 ] , [ oracle.wlm.dbwlm, 19.0.0.0.0 ] , [ oracle.rhp.crs, 19.0.0.0.0 ] , [ oracle.has.cvu, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.usm, 19.0.0.0.0 ] , [ oracle.ons.daemon, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.assistants.usm, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.options.olap.awm, 19.0.0.0.0 ] , [ oracle.has.crs, 19.0.0.0.0 ]  not present in the Oracle Home or a higher version is found.

 

Patching component oracle.has.common.cvu, 19.0.0.0.0...

 

Patching component oracle.has.rsf, 19.0.0.0.0...

 

Patching component oracle.assistants.server, 19.0.0.0.0...

 

Patching component oracle.ons, 19.0.0.0.0...

 

Patching component oracle.rdbms.plsql, 19.0.0.0.0...

 

Patching component oracle.rdbms.util, 19.0.0.0.0...

 

Patching component oracle.sqlplus.ic, 19.0.0.0.0...

 

Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...

 

Patching component oracle.perlint, 5.28.1.0.0...

 

Patching component oracle.swd.oui.core.min, 12.2.0.7.0...

 

Patching component oracle.sqlplus, 19.0.0.0.0...

 

Patching component oracle.dbjava.jdbc, 19.0.0.0.0...

 

Patching component oracle.network.listener, 19.0.0.0.0...

 

Patching component oracle.odbc.ic, 19.0.0.0.0...

 

Patching component oracle.rdbms.rman, 19.0.0.0.0...

 

Patching component oracle.dbjava.ucp, 19.0.0.0.0...

 

Patching component oracle.perlint.modules, 5.28.1.0.0...

 

Patching component oracle.precomp.common.core, 19.0.0.0.0...

 

Patching component oracle.oracore.rsf, 19.0.0.0.0...

 

Patching component oracle.ntoledb.odp_net_2, 19.0.0.0.0...

 

Patching component oracle.has.db, 19.0.0.0.0...

 

Patching component oracle.ntoramts, 19.0.0.0.0...

 

Patching component oracle.marvel, 19.0.0.0.0...

 

Patching component oracle.xdk.parser.java, 19.0.0.0.0...

 

Patching component oracle.network.client, 19.0.0.0.0...

 

Patching component oracle.blaslapack, 19.0.0.0.0...

 

Patching component oracle.tfa.db, 19.0.0.0.0...

 

Patching component oracle.ctx, 19.0.0.0.0...

 

Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...

 

Patching component oracle.ldap.rsf, 19.0.0.0.0...

 

Patching component oracle.assistants.deconfig, 19.0.0.0.0...

 

Patching component oracle.sqlj.sqljruntime, 19.0.0.0.0...

 

Patching component oracle.ldap.owm, 19.0.0.0.0...

 

Patching component oracle.duma, 19.0.0.0.0...

 

Patching component oracle.precomp.lang, 19.0.0.0.0...

 

Patching component oracle.ntoledb, 19.0.0.0.0...

 

Patching component oracle.rdbms.rsf, 19.0.0.0.0...

 

Patching component oracle.rdbms.install.common, 19.0.0.0.0...

 

Patching component oracle.ldap.security.osdt, 19.0.0.0.0...

 

Patching component oracle.sdo, 19.0.0.0.0...

 

Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...

 

Patching component oracle.wwg.plsql, 19.0.0.0.0...

 

Patching component oracle.rdbms.lbac, 19.0.0.0.0...

 

Patching component oracle.oraolap, 19.0.0.0.0...

 

Patching component oracle.precomp.rsf, 19.0.0.0.0...

 

Patching component oracle.ntoledbolap, 19.0.0.0.0...

 

Patching component oracle.assistants.acf, 19.0.0.0.0...

 

Patching component oracle.rhp.common, 19.0.0.0.0...

 

Patching component oracle.javavm.server, 19.0.0.0.0...

 

Patching component oracle.precomp.common, 19.0.0.0.0...

 

Patching component oracle.network.rsf, 19.0.0.0.0...

 

Patching component oracle.ovm, 19.0.0.0.0...

 

Patching component oracle.install.deinstalltool, 19.0.0.0.0...

 

Patching component oracle.rdbms.oci, 19.0.0.0.0...

 

Patching component oracle.rsf, 19.0.0.0.0...

 

Patching component oracle.clrintg.ode_net_2, 19.0.0.0.0...

 

Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...

 

Patching component oracle.xdk.server, 19.0.0.0.0...

 

Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...

 

Patching component oracle.ctx.atg, 19.0.0.0.0...

 

Patching component oracle.javavm.client, 19.0.0.0.0...

 

Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...

 

Patching component oracle.rdbms.deconfig, 19.0.0.0.0...

 

Patching component oracle.dbjava.ic, 19.0.0.0.0...

 

Patching component oracle.rdbms.dv, 19.0.0.0.0...

 

Patching component oracle.aspnet_2, 19.0.0.0.0...

 

Patching component oracle.ldap.client, 19.0.0.0.0...

 

Patching component oracle.usm.deconfig, 19.0.0.0.0...

 

Patching component oracle.dbdev, 19.0.0.0.0...

 

Patching component oracle.ons.ic, 19.0.0.0.0...

 

Patching component oracle.mgw.common, 19.0.0.0.0...

 

Patching component oracle.oracler.server, 19.0.0.0.0...

 

Patching component oracle.has.common, 19.0.0.0.0...

 

Patching component oracle.xdk.rsf, 19.0.0.0.0...

 

Patching component oracle.xdk, 19.0.0.0.0...

 

Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...

 

Patching component oracle.rdbms.olap, 19.0.0.0.0...

 

Patching component oracle.rdbms, 19.0.0.0.0...

 

Patching component oracle.sdo.locator, 19.0.0.0.0...

 

Patching component oracle.rdbms.scheduler, 19.0.0.0.0...

 

Patching component oracle.xdk.xquery, 19.0.0.0.0...

 

Patching component oracle.nlsrtl.rsf.lbuilder, 19.0.0.0.0...

 

Patching component oracle.jdk, 1.8.0.201.0...

Patch 38597735 successfully applied.

Sub-set patch [36878821] has become inactive due to the application of a super-set patch [38597735].

Please refer to Doc ID 2161861.1 for any possible further required actions.

Log file location: D:\oracle\product\19.3.0\dbhome_1\cfgtoollogs\opatch\opatch2026-04-14_19-44-33PM_1.log

 

OPatch succeeded.

 

Watch the output carefully. You should see success messages for each component. The full process typically takes 20–30 minutes.

Sample successful output as above.

 

Step 8: Start the Database and Run DataPatch

Start the database first:

sqlplus / as sysdba

 

SQL> startup

 

 

 

Then run DataPatch to register the patch inside the database dictionary:

cd %ORACLE_HOME%/OPatch

datapatch -verbose

 

 

This step is mandatory — without it the patch is applied at the binary level but not registered in the database.

 

Step 9: Verify the Patch

No comments:

Post a Comment

How to Patch Oracle 19c to Release 19.30 on Windows – A Complete Step-by-Step Blog

  As soon as   Oracle released quarterly patch for Jan 2026 , I had to patch one of my Oracle 19c databases from 19.25 to 19.30. Since this ...