Oracle has released Patch 39971287 – GI MRP 23.26.3.0.0 Sep 2026, a cumulative Grid Infrastructure Monthly Recommended Patch (GI MRP) for Oracle RAC environments.
This article walks through the key requirements for 39971287, the OPatchAuto workflow, prerequisite validation, Data Guard considerations, datapatch requirements, and a real-world OPatchAuto -analyze result from an Oracle RAC environment.
Article date: September 16, 2026
Focus: Patch 39971287 / GI MRP 23.26.3.0.0 Sep 2026
Platform: Oracle RAC / Grid Infrastructure 23c
What Is Patch 39971287?
39971287 is the September 2026 Grid Infrastructure Monthly Recommended Patch (GI MRP) 23.26.3.0.0.
The MRP is cumulative, meaning the latest MRP includes the contents of previous MRPs.
The patch can only be installed on an Oracle Home that already has Oracle Database Release Update 23.26.3.0.0.
The MRP applies to both:
- Oracle Grid Infrastructure Home
- Oracle Database Home
For RAC environments, the patch is documented as Rolling Installable, allowing the patching process to be performed without taking the entire RAC environment offline at the same time.
The patch is also documented as Data Guard Standby-First Installable, allowing organizations using Data Guard to reduce production risk and downtime by applying the patch to the standby environment first.
Patch 39971287 at a Glance
| Item | Details |
|---|---|
| Patch | 39971287 |
| MRP | GI MRP 23.26.3.0.0 Sep 2026 |
| Release Update | 23.26.3.0.0 |
| Platform | Linux x86-64 |
| Applicable to | Oracle GI Home and DB Home |
| RAC | Rolling Installable |
| Data Guard | Standby-First Installable |
| Required OPatch | 12.2.0.1.52 or later |
| Patch Type | Cumulative MRP |
Prerequisites for Patch 39971287
Before starting the installation, Oracle requires several prerequisite checks.
1. Verify OPatch Version
The environment must use OPatch 12.2.0.1.52 or later.
For example:
$ORACLE_HOME/OPatch/opatch version
In our RAC environment, the installed version was:
OPatch Version: 12.2.0.1.52
OPatch succeeded.
This satisfies the documented OPatch prerequisite.
2. Verify the Oracle Inventory
Before applying the patch, verify the Oracle inventory:
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
This is important because OPatch uses the Oracle inventory to determine the installed components and patches.
3. Confirm the Current 23.26.3.0.0 Release
Before applying the September MRP, confirm that the Oracle Home is already running the required 23.26.3.0.0 release.
For example:
$ORACLE_HOME/OPatch/opatch lspatches
In the RAC environment used for this analysis, the existing Grid Home contained:
39836748;OCW Interim patch for 39836748
39788260;Fix for Bug 39788260
39745860;Micronaut Patch Set Update: 23.26.3.0.0
39739668;RHP Patch Set Update : 23.26.3.0.0
39578879;Database Release Update : 23.26.3.0.0
39578865;ACFS RELEASE UPDATE 23.26.3.0.0
This confirms that the environment was already based on the 23.26.3.0.0 release.
Download and Extract Patch 39971287
After downloading the patch ZIP from Oracle Support, extract it into a dedicated patch directory.
Example:
cd /u01/patch
unzip p39971287_2326300DBRU_Linux-x86-64.zip
The extracted directory is:
39971287/
The package contains multiple component patches. In the environment tested, the extraction included components such as:
39909584
39739668
...
The patch package therefore should not be treated as a single simple binary patch. OPatchAuto determines which individual components are applicable to each Oracle Home.
Check for Patch Conflicts Before Installation
One of the most important steps is to run OPatchAuto in analysis mode before performing the actual installation.
For a RAC environment where both Grid Infrastructure and Database Homes are being considered, use:
$GI_HOME/OPatch/opatchauto apply /u01/patch/39971287 -analyze
The -analyze option allows OPatchAuto to validate patch applicability and identify conflicts without actually applying the patch.
Real-World OPatchAuto Analysis
For this environment, the following command was executed:
/u01/app/23.26.0.0/grid/OPatch/opatchauto apply \
/u01/patch/39971287 -analyze
The analysis started on September 16, 2026 at 14:08.
OPatchAuto successfully verified patch applicability for both the Grid Infrastructure Home and Database Home:
Patch applicability verified successfully
for:
/u01/app/23.26.0.0/grid
and:
/u01/app/oracle/product/23.26.0.0/dbhome_1
The patch validation checks also completed successfully for both homes.
The analysis concluded:
OPatchAuto successful.
This is an important point: a successful -analyze does not mean the patch has been installed. It means OPatchAuto has successfully analyzed applicability and the patching operation can proceed based on the analysis.
Which Patches Will Actually Be Applied?
One of the useful features of OPatchAuto is that it determines which components of the MRP are relevant to each Oracle Home.
For the Grid Infrastructure Home:
/u01/app/23.26.0.0/grid
the analysis identified the following patches as successfully analyzed for application:
39833225
39779540
39779336
39745860
These were identified in the OPatchAuto analysis as applicable to the Grid Home.
Other patches were skipped because they were not applicable to the cluster target type.
For example:
Patch: 39362864
Reason: This patch is not applicable to this specified target type - "cluster"
Similar messages were returned for several other components.
This illustrates why DBAs should not assume that every patch contained inside 39971287 will be installed into every Oracle Home.
Database Home Analysis
The Database Home was:
/u01/app/oracle/product/23.26.0.0/dbhome_1
For this home, OPatchAuto identified a different set of applicable components.
The following patches were successfully analyzed:
39362864
39761039
39489945
39761158
39570655
39935553
39890510
39909584
39761035
39661137
39570736
39487170
39833225
These were identified as applicable to the RAC Database Home during the analysis.
Other patches were skipped because they were already present or not required for that Oracle Home.
For example:
39779540 is not required to be applied
39788260 is not required to be applied
39836748 is not required to be applied
39739668 is not required to be applied
This is normal behavior for a cumulative MRP when some components are already installed.
What About Older Oracle Homes?
The analysis also identified another Oracle Database Home:
/u01/app/oracle/product/19.0.0/dbhome_1
OPatchAuto skipped this home because the patches were not applicable to it.
This reinforces an important operational point:
Patch 39971287 is intended for the required 23.26.3.0.0 release and should not be assumed to apply to an unrelated Oracle 19c Home.
Always allow OPatchAuto to perform the applicability checks for the specific Oracle Home.
Installing Patch 39971287
After completing the prerequisite and analysis checks, the actual installation can be started.
For simultaneous Grid Infrastructure and Database Home patching:
# $GI_HOME/OPatch/opatchauto apply /u01/patch/39971287
Before executing the production installation, ensure that:
- Oracle Home inventory is healthy
- OPatch version is supported
- Patch conflicts have been checked
- Required backups are available
- RAC services and applications have been assessed
- Data Guard status is healthy if applicable
- Maintenance/change approval has been completed
- Sufficient space is available
- The OPatchAuto logs can be monitored during execution
Datapatch After the Installation
The MRP documentation notes that an MRP can include cumulative SQL changes.
Therefore, after the binary patching phase, datapatch may need to be executed.
For a CDB environment:
sqlplus / as sysdba
Then:
startup;
alter pluggable database all open;
exit;
Run:
$ORACLE_HOME/OPatch/datapatch -verbose
./datapatch -verbose
SQL Patching tool version 23.26.3.0.0 Production on Wed Sep 16 14:45:23 2026
Copyright (c) 2012, 2026, Oracle. All rights reserved.
Log file for this invocation: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/sqlpatch/sqlpatch_sid_orcl1_ts_2026_09_16_14_45_23_pid_41125/sqlpatch_invocation.log
Connecting to database...OK
Gathering database info...done
Note: Datapatch will only apply or rollback SQL fixes for PDBs
that are in an open state, no patches will be applied to closed PDBs.
Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
(Doc ID 1585822.1)
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:
23.26.3.0.0 Release_Update 260705162604: Installed
PDB CDB$ROOT:
Applied 23.26.3.0.0 Release_Update 260705162604 successfully on 20-AUG-26 12.05.30.733491 PM
PDB ORCLPDB1:
Applied 23.26.3.0.0 Release_Update 260705162604 successfully on 20-AUG-26 12.05.31.131179 PM
PDB PDB$SEED:
Applied 23.26.3.0.0 Release_Update 260705162604 successfully on 20-AUG-26 12.05.31.131179 PM
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB1
No interim patches need to be rolled back
No release update patches need to be installed
No interim patches need to be applied
SQL Patching tool complete on Wed Sep 16 14:49:07 2026
The important point for DBAs is that binary patching and SQL patching are separate stages.
After patch installation, verify the SQL patch status using:
SELECT PATCH_ID,
PATCH_TYPE,
ACTION,
STATUS,
DESCRIPTION
FROM DBA_REGISTRY_SQLPATCH
ORDER BY ACTION_TIME DESC;
For a CDB environment, verify the relevant containers as well.
Verifying the Patch
After patching, verify the installed patches:
$ORACLE_HOME/OPatch/opatch lspatches

You should also verify the Oracle version and component versions.
For RAC environments, check both nodes.
Useful checks include:
crsctl query crs activeversion
crsctl stat res -t
and:
$ORACLE_HOME/OPatch/opatch lsinventory
For the database:
SELECT BANNER_FULL
FROM V$VERSION;
For SQL patch verification:
SELECT PATCH_ID,
PATCH_TYPE,
ACTION,
STATUS,
ACTION_TIME,
DESCRIPTION
FROM DBA_REGISTRY_SQLPATCH
ORDER BY ACTION_TIME DESC;
How Long Did the Analysis Take?
In the example RAC environment, the OPatchAuto analysis completed at:
Wed Sep 16 14:23:13 2026
The total analysis duration was:
15 minutes, 14 seconds
The session therefore completed successfully after approximately 15 minutes.
Remember that this is the analysis duration, not the expected production patching duration. Actual patch installation time can vary depending on the RAC topology, services, database count, node state, filesystem performance, and patch components involved.
Rolling Installation in RAC
One of the important characteristics of GI MRP 23.26.3.0.0 Sep 2026 is that the patch is documented as Oracle RAC Rolling Installable.
For RAC environments, DBAs should still carefully validate:
- Number of RAC nodes
- Running database instances
- Services
- Application connection behavior
- FAN/ONS configuration
- Connection pools
- Data Guard configuration
- Clusterware status
- ASM health
- Application maintenance requirements
Rolling patching reduces the need for a complete RAC-wide outage, but individual node/service impact still needs to be considered during the change.
Patch Rollback
If the patch needs to be removed, Oracle provides an OPatchAuto rollback procedure.
For simultaneous GI and DB Home patching:
# $GI_HOME/OPatch/opatchauto rollback /u01/patch/39971287
For a Database Home patched separately:
$ORACLE_HOME/OPatch/opatchauto rollback \
-binary /u01/patch/39971287 \
-oh $ORACLE_HOME \
-target_type oracle_database
After rollback, the relevant databases should be started and the SQL patch state should be reviewed.
Important DBA Checks Before Production Patching
Before applying 39971287 to a production RAC environment, I recommend preparing a checklist around the following areas.
Oracle Home
$ORACLE_HOME/OPatch/opatch version
$ORACLE_HOME/OPatch/opatch lsinventory
$ORACLE_HOME/OPatch/opatch lspatches
Clusterware
crsctl check crs
crsctl stat res -t
ASM
asmcmd lsdg
Check that all required diskgroups are mounted and healthy.
Database
SELECT INSTANCE_NAME, STATUS
FROM GV$INSTANCE;
Data Guard
Verify transport and apply status before beginning the maintenance.
SQL Patch
Before patching:
SELECT PATCH_ID,
ACTION,
STATUS,
DESCRIPTION
FROM DBA_REGISTRY_SQLPATCH
ORDER BY ACTION_TIME DESC;
OPatchAuto Analysis
Always perform:
$GI_HOME/OPatch/opatchauto apply /u01/patch/39971287 -analyze
and review the complete output before proceeding.
Key Takeaways
Patch 39971287 – GI MRP 23.26.3.0.0 Sep 2026 is a cumulative MRP intended for Oracle RAC environments running the required 23.26.3.0.0 release.
The most important operational lessons from the September 2026 patch analysis are:
- OPatch 12.2.0.1.52 or later is required.
- The Oracle Home must already be on 23.26.3.0.0.
- The patch applies to both Grid Infrastructure and Database Homes.
- The MRP is documented as RAC Rolling Installable.
- It is also documented as Data Guard Standby-First Installable.
- Always run OPatchAuto
-analyzebefore the actual patch. - Not every component inside the MRP is necessarily applicable to every Oracle Home.
- Already-installed components can be skipped by OPatchAuto.
- Older Oracle Homes such as 19c should not be assumed to be applicable.
- Datapatch may be required after the binary patching stage.
- Verify
DBA_REGISTRY_SQLPATCHafter running datapatch. - Validate RAC, ASM, database, services, and Data Guard health after patching.
In our September 16, 2026 RAC analysis, OPatchAuto successfully validated both the Grid Infrastructure and 23c Database Homes, identified the applicable components, skipped components that were not required, and completed the analysis successfully in 15 minutes and 14 seconds.
For production environments, the most important step is not simply executing the patch command—it is understanding exactly what OPatchAuto plans to apply to each Oracle Home before starting the change.
Oracle Critical Security Patch Update Advisory – September 2026
Oracle Database 19.32 Release Update (RU) Patching Guide – Patch 39472050




