Wednesday, 29 July 2026

Apply Oracle 19c Patch 19.30 on Linux

 

TECHNICAL IMPLEMENTATION GUIDE 

ORACLE DATABASE 19c

RELEASE UPDATE

19.30

Patch Implementation on Linux

A practical, step-by-step guide based on a live development environment implementation.

HANDS-ON IMPLEMENTATION: Oracle Database 19c — Release Update 19.30

Oracle Database Administration  |  Linux  |  Patch Management

Apply Oracle 19c Patch 19.30 on Linux

Prerequisites

Before applying the Oracle 19c Patch 19.30, ensure:

        Oracle Home path is set correctly.

        The database is running.

        Backup of the database and Oracle Home is taken.

        Latest OPatch version (12.2.0.1.40 or higher) installed.

        Sufficient disk space available.

Step 1: Download the Required Patches

        Oracle 19.30 Database RU Patch

        OJVM Patch (optional but recommended)

Current Database Version

In our case, we just install oracle 19c base version 19.3.0.0.0 only, and we will apply the latest patch on it.

PATCH_ID ACTION_TIME                         SOURCE_VERSION TARGET_VERSION STATUS

DESCRIPTION

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

29517242 29-MAR-26 01.17.15.506159 PM        19.1.0.0.0     19.3.0.0.0     SUCCESS

Database Release Update : 19.3.0.0.190416 (29517242)

Update OPatch Version

Unzip the OPatch inside the Oracle home directory, but before it take backup of the old OPatch directory.

[oracle@ardb dbhome_1]$ unzip p6880880_190000_1220146_Linux-x86-64_2.zip

Check OPatch Version now:

[oracle@ardb OPatch]$ ./opatch version

OPatch Version: 12.2.0.1.46

 

OPatch succeeded.

Step 2: Prepare Patch Directory

Patches]$ mkdir -p Patches

Patches]$ cd Patches

Patches]$ unzip p37642901_190000_1927_DB_Linux-x86-64_2.zip

Step 3: Stop Database and Listener

sqlplus / as sysdba

SHUTDOWN IMMEDIATE;

EXIT;

lsnrctl stop

Step 4: Check Current Patch Level

[oracle@Primary ~]$ cd $ORACLE_HOME/OPatch

[oracle@Primary OPatch]$ ./opatch lspatches

29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)

29517242;Database Release Update : 19.3.0.0.190416 (29517242)

 

OPatch succeeded.

[oracle@Primary OPatch]$

Step 5: Run Conflict Check

[oracle@goldstardb 37642901]$ pwd

/u01/Patches/37642901

[oracle@goldstardb 37642901]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir .

Oracle Interim Patch Installer version 12.2.0.1.46

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

 

PREREQ session

 

Oracle Home       : /u01/app/oracle/product/19.3.0/dbhome_1

Central Inventory : /u01/app/oraInventory

   from            : /u01/app/oracle/product/19.3.0/dbhome_1/oraInst.loc

OPatch version    : 12.2.0.1.46

OUI version       : 12.2.0.7.0

Log file location : /u01/app/oracle/product/19.3.0/dbhome_1/cfgtoollogs/opatch/opatch2026-04-30_14-06-29PM_1.log

 

Invoking prereq "checkconflictagainstohwithdetail"

 

Prereq "checkConflictAgainstOHWithDetail" passed.

 

OPatch succeeded.

[oracle@goldstardb 37642901]$

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir .

Step 6: Apply the Patch

cd /u01/Patches/37642901

$ORACLE_HOME/OPatch/opatch apply

[oracle@ardb 38632161]$ $ORACLE_HOME/OPatch/opatch apply

Oracle Interim Patch Installer version 12.2.0.1.49

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

 

Oracle Home       : /u01/app/oracle/product/19.3.0/dbhome_1

Central Inventory : /u01/app/oraInventory

   from            : /u01/app/oracle/product/19.3.0/dbhome_1/oraInst.loc

OPatch version    : 12.2.0.1.49

OUI version       : 12.2.0.7.0

Log file location : /u01/app/oracle/product/19.3.0/dbhome_1/cfgtoollogs/opatch/opatch2026-03-24_22-01-53PM_1.log

 

Verifying environment and performing prerequisite checks...

OPatch continues with these patches: 38632161

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 = '/u01/app/oracle/product/19.3.0/dbhome_1')

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

Note: Before applying the patch, disable all custom SYS triggers. Otherwise, you will get an error.

Step 7: Run Datapatch

Start the database first:

sqlplus / as sysdba

STARTUP;

EXIT;

Then run:

$ORACLE_HOME/OPatch/datapatch -verbose

Output:

[oracle@tardb ~]$ $ORACLE_HOME/OPatch/datapatch -verbose

SQL Patching tool version 19.30.0.0.0 Production on Wed Apr 29 23:38:23 2026

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

 

Log file for this invocation:

/u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_21179_2026_04_24_23_38_23/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.30.0.0.0 Release_Update 260126024251: Installed

 SQL registry:

  No release update patches installed

Adding patches to installation queue and performing prereq checks...done

Installation queue:

 No interim patches need to be rolled back

 Patch 38632161 (Database Release Update : 19.30.0.0.260120(REL-JAN260130) (38632161)):

   Apply from 19.1.0.0.0 Feature Release to 19.30.0.0.0 Release_Update 260126024251

 No interim patches need to be applied

Installing patches...

Patch installation complete. Total patches installed: 1

Validating logfiles...done

Patch 38632161 apply: SUCCESS

  logfile:

/u01/app/oracle/cfgtoollogs/sqlpatch/38632161/28482211/38632161_apply_INFODB_2026Mar24_23_39_39.log (no errors)

 

SQL Patching tool complete on Wed Apr 29 23:51:03 2026

If you get any error and want to filter all errors, run the following command:

grep -n "ORA-" \

/u01/app/oracle/cfgtoollogs/sqlpatch/37642901/27123174/37642901_apply_GSTARDB_GSTARPDB1_2026Apr28_17_21_03.log

Run datapatch -verbose to ignore errors if you get any:

./datapatch -ignorable_errors=ORA-01403,ORA-06512

 

Or

 

cd $ORACLE_HOME/OPatch

./datapatch -verbose -pdbs GSTPDB1 -ignorable_errors=ORA-01403,ORA-06512

Step 8: Restart Listener

lsnrctl start

Step 9: Verify Patch Applied

$ORACLE_HOME/OPatch/opatch lspatches

Output:

[oracle@stardb ~]$ $ORACLE_HOME/OPatch/opatch lspatches

37642901;Database Release Update : 19.27.0.0.250415 (37642901)

29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)

 

OPatch succeeded.

Also, verify in the database:

set lin 300 pagesize 300

col ACTION_TIME for a30

col STATUS for a12

col DESCRIPTION for a44

 

SELECT * FROM dba_registry_sqlpatch;

OR

select PATCH_ID,ACTION_TIME,SOURCE_VERSION,TARGET_VERSION,STATUS,DESCRIPTION

FROM dba_registry_sqlpatch;

Output like:

SQL> select PATCH_ID,ACTION_TIME,SOURCE_VERSION,TARGET_VERSION,STATUS,DESCRIPTION FROM dba_registry_sqlpatch;

 

PATCH_ID ACTION_TIME                    SOURCE_VERSION TARGET_VERSION STATUS   DESCRIPTION

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

29517242 04-DEC-23 09.44.05.491773 PM   19.1.0.0.0     19.3.0.0.0     SUCCESS  Database Release Update : 19.3.0.0.190416 (29517242)

 

37642901 28-APR-26 03.46.43.520484 PM   19.3.0.0.0     19.27.0.0.0    SUCCESS  Database Release Update : 19.27.0.0.250415 (37642901)