Friday, September 25, 2026
  • About Us
  • Contact
DBAInsight
  • Guides
    • 23ai
    • RMAN
    • 26ai
    • Patch Update
    • RMAN
    • MySQL
    • Oracle GoldenGate
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification
NEWSLETTER
No Result
View All Result
DBAInsight
Home Patch Update

How to Apply Oracle Database Release Update 19.28 on Oracle 19c (RHEL)

December 22, 2025
in Patch Update
4
How to Apply Oracle Database Release Update 19.28 on Oracle 19c (RHEL)
0
SHARES
2.9k
VIEWS

Oracle 19c Release Update 19.28 is the July 2025 Critical Patch Update (RU 19.28.0.0.250715) for Oracle Database 19c, available on Red Hat Enterprise Linux (RHEL). This release update delivers essential security patches, bug fixes, and performance improvements. In this guide, we’ll walk through the complete process of applying RU 19.28 on Oracle 19c running RHEL, including prerequisites, OPatch update, binary patching, datapatch execution, validation, and rollback steps.

Oracle Database 19.29 Patch includes additional stability fixes and enhancements. It’s recommended to upgrade to this version if your environment supports it.

Table of Contents

Toggle
    • Related posts
    • When “Invalid Objects” Isn’t What It Looks Like: A GSMADMIN_INTERNAL Detective Story
    • Oracle Database MRP 19.32.0.0.260915: Patch 39971265 Installation Guide
  • 1) Identify the right patches (Linux x86-64)
  • 2) Maintenance window checklist
  • 3) Pre-patch sanity checks
  • 4) Update OPatch (required)
  • 5) Unzip the July 2025 Database RU (and OJVM if needed)
  • 6) Stop services and take file-system backups
  • 7) Run conflict and prerequisite checks
  • 8) Apply the Database RU 19.28 binaries
  • 10) Start database and run datapatch
  • 11) Validate the patch
  • 12) Post-patch steps
  • 13) Rollback (if needed)
  • Quick command cribsheet
    • Final notes

Related posts

GSMADMIN_INTERNAL

When “Invalid Objects” Isn’t What It Looks Like: A GSMADMIN_INTERNAL Detective Story

September 24, 2026
MRP 19.32.0.0.260915

Oracle Database MRP 19.32.0.0.260915: Patch 39971265 Installation Guide

September 18, 2026

What’s in scope: Single-instance Oracle Database 19c on RHEL. RAC/GI notes are called out separately.
When it was released: July 15, 2025 (Oracle’s July 2025 CPU).

Flowchart showing the Oracle 19c Release Update 19.28 patching steps on RHEL: Identify patches → Download RU and OJVM → Update OPatch → Backup ORACLE_HOME and oraInventory → Stop database and listener → Apply RU and OJVM → Run datapatch → Validate patch → Rollback if needed.

1) Identify the right patches (Linux x86-64)

You’ll typically need three downloads:

  • OPatch (latest for 19c): p6880880_190000_Linux-x86-64.zip (e.g., 12.2.0.1.47 as of July 2025)
  • Database RU 19.28: p37960098_190000_Linux-x86-64.zip
  • OJVM RU 19.28 (optional but recommended if you use Java in DB): p37847857_190000_Linux-x86-64.zip

Patch numbers and checksums for 19.28 are documented by multiple community posts and align with the July 2025 RU drop. Always verify in MOS for your platform entitlements.

For context on what 19.28 includes and CPU coverage, see Oracle’s July 2025 CPU advisory and the 19.28 known-issues notes. Oracle+1

RAC/GI: If you run Grid Infrastructure, download GI RU 19.28 (p37957391_190000_Linux-x86-64.zip) and patch GI first, then the database homes.


2) Maintenance window checklist

  • Confirm platform: RHEL with Oracle Database 19c (19.3+).
  • Confirm enough free space in $ORACLE_HOME and patch staging dir (RU ~2+ GB).
  • Backups: Take an RMAN backup or VM snapshot. Back up ORACLE_HOME and oraInventory directories.
  • Freeze application jobs; ensure you have downtime for binary patching.
  • Ensure you can run as the Oracle software owner (not root) for DB RU.
  • Keep root available for GI or for any post-install root scripts (GI only).
  • If using PDBs, make sure all PDBs are open during datapatch.

Read first: Oracle’s 19c patch maintenance guide (what RUs/MRPs are, general steps) and “Proactive Patch Information”/“Known Issues” notes. Oracle Database 19.28 release Update July 2025 Known Issues (Doc ID 19202507.9)


3) Pre-patch sanity checks

# As oracle user
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH
export ORACLE_SID=ORCL   # set to your DB SID

Check inventory and current patch level:

opatch lsinventory
opatch version
sqlplus -v
sqlplus / as sysdba <<'SQL'
select * from dba_registry_sqlpatch order by action_time;
show pdbs
SQL

4) Update OPatch (required)

Oracle frequently requires a minimum OPatch level for each RU. Update to the latest OPatch for 19c before applying the RU.

# stage under /u02/patch for example:
mkdir -p /u02/patch && cd /u02/patch

# copy p6880880_190000_Linux-x86-64.zip here, then:
unzip -q p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch version

You must use the OPatch utility version 12.2.0.1.46 or later to apply this patch


5) Unzip the July 2025 Database RU (and OJVM if needed)

cd /u02/patch
unzip -q p37960098_190000_Linux-x86-64.zip
# optional OJVM
unzip -q p37847857_190000_Linux-x86-64.zip

6) Stop services and take file-system backups

# As sysdba, cleanly stop the instance(s)
sqlplus / as sysdba <<'SQL'
shutdown immediate;
exit
SQL

# Stop the listener if the home is shared with it
lsnrctl stop

Backups:

# backup ORACLE_HOME and oraInventory before patching
cd /u01/app/oracle
tar -pcvf /u02/backup/dbhome19_preRU1928.tgz product/19.0.0/dbhome_1

cd /u01/app/oraInventory/..
tar -pcvf /u02/backup/oraInventory_preRU1928.tgz oraInventory

(If using GI/RAC, patch GI/RAC with opatchauto or opatch per GI README first; then roll to DB homes instance by instance.)


7) Run conflict and prerequisite checks

cd /u02/patch/37960098
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

[oracle@test 37960098]$ /u01/app/oracle/product/19.0.0/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.46
Copyright (c) 2025, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/19.0.0
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.0.0/oraInst.loc
OPatch version    : 12.2.0.1.46
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.0.0/cfgtoollogs/opatch/opatch2025-10-02_10-19-45AM_1.log

Invoking prereq "checkconflictagainstohwithdetail"


Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

Resolve any conflicts per the RU README / one-off conflicts guidance. (See MOS “Proactive Patch Information” and “Important Recommended One-offs/MRPs”.) Oracle Support+1


8) Apply the Database RU 19.28 binaries

cd /u02/patch/37960098
$ORACLE_HOME/OPatch/opatch apply

[oracle@test 37960098]$ /u01/app/oracle/product/19.0.0/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.46
Copyright (c) 2025, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/19.0.0
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.0.0/oraInst.loc
OPatch version    : 12.2.0.1.46
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.0.0/cfgtoollogs/opatch/opatch2025-10-02_10-22-58AM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   37960098

Do you want to proceed? [y|n]
y
User Responded with: Y
yAll checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/19.0.0')


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

User Responded with: Y
Backing up files...
Applying interim patch '37960098' to OH '/u01/app/oracle/product/19.0.0'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.assistants.asm, 19.0.0.0.0 ] , [ oracle.crypto.rsf, 19.0.0.0.0 ] , [ oracle.precomp.companion, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.sdo.companion, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.ldap.ztk, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.pg4appc, 19.0.0.0.0 ] , [ oracle.pg4appc, 19.0.0.0.0 ] , [ oracle.pg4mq, 19.0.0.0.0 ] , [ oracle.oraolap.mgmt, 19.0.0.0.0 ] , [ oracle.java.sqlj.sqljruntime, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ] , [ oracle.jdk, 1.8.0.391.11 ]  not present in the Oracle Home or a higher version is found.

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

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

Patching component oracle.rdbms, 19.0.0.0.0...

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

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

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

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

Patching component oracle.odbc, 19.0.0.0.0...

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

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

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

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

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

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

Patching component oracle.jdk, 1.8.0.201.0...
Patch 37960098 successfully applied.
Sub-set patch [37642901] has become inactive due to the application of a super-set patch [37960098].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/oracle/product/19.0.0/cfgtoollogs/opatch/opatch2025-10-02_10-22-58AM_1.log

OPatch succeeded.

Watch for “OPatch succeeded.” in the summary.


10) Start database and run datapatch

You must run datapatch to apply SQL changes into CDB/PDBs.

# Start the instance and open all PDBs
sqlplus / as sysdba <<'SQL'
startup
alter pluggable database all open;
SQL

# Start listener if stopped
lsnrctl start

# Run datapatch (be verbose)
cd $ORACLE_HOME/OPatch
./datapatch -verbose

[oracle@test 37960098]$ /u01/app/oracle/product/19.0.0/OPatch/datapatch -verbose
SQL Patching tool version 19.28.0.0.0 Production on Thu Oct  2 10:46:07 2025
Copyright (c) 2012, 2025, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_12298_2025_10_02_10_46_07/sqlpatch_invocation.log

Connecting to database...OK
Gathering database info...done
Bootstrapping registry and package to current versions...done
Determining current state...done

Current state of interim SQL patches:
  No interim patches found

Current state of release update SQL patches:
  Binary registry:
    19.28.0.0.0 Release_Update 250705030417: Installed
  SQL registry:
    Applied 19.27.0.0.0 Release_Update 250406131139 successfully on 12-JUN-25 11.24.48.561794 AM

Adding patches to installation queue and performing prereq checks...done
Installation queue:
  No interim patches need to be rolled back
  Patch 37960098 (Database Release Update : 19.28.0.0.250715 (37960098)):
    Apply from 19.27.0.0.0 Release_Update 250406131139 to 19.28.0.0.0 Release_Update 250705030417
  No interim patches need to be applied

Installing patches...
Patch installation complete.  Total patches installed: 1

Validating logfiles...done
Patch 37960098 apply: SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37960098/27635722/37960098_apply_OEM_2025Oct02_10_48_49.log (no errors)
SQL Patching tool complete on Thu Oct  2 10:51:34 2025


11) Validate the patch

sqlplus / as sysdba <<'SQL'
set lines 200
col action_time format a25
col status format a12
select ACTION_TIME,ACTION,STATUS,SOURCE_VERSION,TARGET_VERSION from dba_registry_sqlpatch


ACTION_TIME                                ACTION          STATUS                    SOURCE_VERSION  TARGET_VERSION
----------------------------------- --------------- ------------------------- --------------- ---------------
23-APR-21 04.36.27.921101 PM                APPLY           SUCCESS                   19.1.0.0.0      19.3.0.0.0
29-MAY-25 09.03.42.783468 AM                APPLY           SUCCESS                   19.3.0.0.0      19.24.0.0.0
12-JUN-25 11.24.48.561794 AM                APPLY           SUCCESS                   19.24.0.0.0     19.27.0.0.0
02-OCT-25 10.51.01.281280 AM               APPLY           SUCCESS                  19.27.0.0.0     19.28.0.0.0

-- Quick invalid objects check:
select owner, object_name, object_type
from   dba_objects
where  status='INVALID';
SQL

opatch lsinventory

If any PDBs show as PENDING or WITH ERRORS, ensure they were open and re-run datapatch -verbose


12) Post-patch steps

  • Re-enable application jobs.
  • Recompile invalids if needed:
$ORACLE_HOME/rdbms/admin/utlrp.sql
  • Update your CMDB with the new RU level.
  • Consider applying the latest MRP (Linux x86-64) if Oracle recommends it for your stack between quarterly RUs.

13) Rollback (if needed)

You can roll back from the same patch top directories:

# Rollback OJVM first if applied
cd /u02/patch/37847857
$ORACLE_HOME/OPatch/opatch rollback -id 37847857

# Then rollback the DB RU
cd /u02/patch/37960098
$ORACLE_HOME/OPatch/opatch rollback -id 37960098

After rollback, start the DB and run datapatch -verbose again to revert SQL changes. Verify with dba_registry_sqlpatch.


Quick command cribsheet

# Vars
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH
export ORACLE_SID=ORCL

# Prechecks
opatch lsinventory
opatch version

# Update OPatch
unzip -q /u02/patch/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME

# Unzip RU (and OJVM)
cd /u02/patch
unzip -q p37960098_190000_Linux-x86-64.zip
unzip -q p37847857_190000_Linux-x86-64.zip   # optional

# Stop services & backup OH / oraInventory
sqlplus / as sysdba <<'SQL'
shutdown immediate;
exit
SQL
lsnrctl stop
tar -czf /u02/backup/dbhome19_preRU1928.tgz $ORACLE_HOME
tar -czf /u02/backup/oraInventory_preRU1928.tgz /u01/app/oraInventory

# Conflicts
cd /u02/patch/37960098
opatch prereq CheckConflictAgainstOHWithDetail -ph ./

# Apply DB RU
opatch apply

# (Optional) Apply OJVM
cd /u02/patch/37847857
opatch apply

# Start and run datapatch
sqlplus / as sysdba <<'SQL'
startup
alter pluggable database all open;
SQL
lsnrctl start
cd $ORACLE_HOME/OPatch
./datapatch -verbose

# Validate
sqlplus / as sysdba <<'SQL'
select patch_id, version, action, status, action_time
from dba_registry_sqlpatch
order by action_time;
SQL
opatch lsinventory

Final notes

  • Always compare your environment (PSUs/one-offs/EXADATA/EBS) against Oracle’s Important Recommended One-offs and Known Issues for the exact RU you’re applying.
  • If you manage multiple DB homes, consider AutoUpgrade’s patching workflows to create a new home pre-patched with the RU and move databases into it—this can simplify rollback and standardize patching.
Tags: Database Release UpdateJuly 2025 CPUOracle 19.28 RUOracle 19c
Previous Post

How to Install Oracle 19c Database on Red Hat Enterprise Linux 9

Next Post

How to Install Oracle Enterprise Manager 24AI on RHEL

Next Post
Install Oracle Enterprise Manager 24ai

How to Install Oracle Enterprise Manager 24AI on RHEL

Comments 4

  1. Pingback: How to Install Oracle Enterprise Manager 24ai on Oracle 19c
  2. Pingback: UtilSession Failed: Prerequisite Check ‘CheckMinimumOPatchVersion’ Failed” in Oracle Patching
  3. Pingback: Fix “Java (1.7) Could Not Be Located – OPatch Cannot Proceed” Due to Wrong OPatch Version
  4. Pingback: Fix “CheckActiveFilesAndExecutables Failed” During OPatch – Identify and Kill Active Processes

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

POPULAR NEWS

  • Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    0 shares
    Share 0 Tweet 0
  • How To Download And Install The Latest OPatch

    0 shares
    Share 0 Tweet 0
  • How to Install Oracle 19c Database on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • Oracle Database 19.32 Release Update (RU) Patching Guide – Patch 39472050

    0 shares
    Share 0 Tweet 0
  • Installing Oracle Database 26AI on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • About Us
  • Contact

© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

No Result
View All Result
  • Home
  • Cloud & Modern DBs
  • Guides
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification

© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

Add as a preferred source on Google
Add as preferred source on Google