Friday, October 9, 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

Oracle Grid Infrastructure Release Update 23.26.3.0.0: Step-by-Step RAC Patching Guide

August 21, 2026
in Patch Update
0
23.26.3.0.0
0
SHARES
157
VIEWS

Oracle Grid Infrastructure Release Update 23.26.3.0.0 is delivered through Patch 39568945. This release update is cumulative, meaning the latest Grid Infrastructure bundle includes the content from previous Grid Infrastructure bundle patches.

In this article, we walk through the process of applying Oracle Grid Infrastructure Release Update 23.26.3.0.0 to a two-node Oracle RAC environment using OPatchAuto.

Table of Contents

Toggle
      • Related posts
      • When datapatch Won’t Finish: An ORA-04021 Lock on DBMS_AQADM_SYS During a 19c RU Apply
      • When “Invalid Objects” Isn’t What It Looks Like: A GSMADMIN_INTERNAL Detective Story
    • 1. Patch Information
  • 2. RAC Environment Used for Testing
  • 3. Before You Start: Backup
  • 4. Verify the OPatch Version
  • 5. Check the Existing Patch Inventory
  • 6. Perform the OPatch Conflict Check
  • 7. Understand the RAC Patching Approach
  • 8. Apply Patch 39568945 on RAC Node 1
  • 9. OPatchAuto Patching Sequence
  • 10. Apply the Patch on RAC Node 2
  • 11. Patching the CRS Home on Node 2
  • 12. One Interesting Point: Multiple Oracle Homes
  • 13. Run Datapatch Sanity Checks
  • 14. Run Datapatch
  • 15. Verify the Patch Installation
  • 16. Verify Clusterware
  • 17. Verify Database SQL Patch Status
  • 18. Check for Invalid Objects
  • 19. RAC Post-Patching Health Checks
  • 20. Lessons Learned from the Actual Patching Exercise
      • 1. Always check patch applicability first
      • 2. Do not ignore SKIPPED patches
      • 3. Check SQL patching separately
      • 4. Read the complete OPatchAuto summary
      • 5. Patch every RAC node
  • 21. Recommended RAC Patching Checklist
  • Final Thoughts

Related posts

ORA-04021

When datapatch Won’t Finish: An ORA-04021 Lock on DBMS_AQADM_SYS During a 19c RU Apply

September 25, 2026
GSMADMIN_INTERNAL

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

September 24, 2026

The procedure is based on an actual RAC patching exercise performed on:

  • rac-node1
  • rac-node2
  • Grid Infrastructure Home: /u01/app/23.26.0.0/grid
  • Oracle Database Home: /u01/app/oracle/product/23.26.0.0/dbhome_1
  • GI/Database version: 23.0.0.0.0
  • Patch: 39568945
  • OPatchAuto log level: FINEST

1. Patch Information

The patch being applied is:

Patch 39568945
Oracle Grid Infrastructure Release Update 23.26.3.0.0

Oracle identifies this as a Grid Infrastructure Release Update (GIRU) and states that GIRU patches are cumulative.

The release also contains the following CORE DST updates:

PatchDescription
36260493DSTV43 UPDATE – TZDATA2024A
37537949DSTV44 UPDATE – TZDATA2025A
39070269DSTV45 UPDATE – TZDATA2026A

Oracle also documents this patch as Data Guard Standby-First Installable, which can be useful when planning maintenance for environments using physical standby databases.


2. RAC Environment Used for Testing

The RAC environment used for this patching exercise contained two nodes:

rac-node1
rac-node2

The relevant Oracle homes were:

GI Home
/u01/app/23.26.0.0/grid

Database Home
/u01/app/oracle/product/23.26.0.0/dbhome_1

The patch was staged under:

/u01/patch/39568945

The patch was applied using:

/u01/app/23.26.0.0/grid/OPatch/opatchauto apply \
/u01/patch/39568945 \
-logLevel FINEST

3. Before You Start: Backup

Before applying the patch, Oracle recommends taking a backup of the Oracle Home binaries and Central Inventory.

For a production RAC environment, I would also recommend having backups of:

  • Grid Infrastructure Oracle Home
  • Database Oracle Home
  • OCR
  • Database configuration
  • SPFILE
  • Important database data
  • Existing patch inventory

A patching activity should never be started without a tested recovery or rollback plan.


4. Verify the OPatch Version

For Oracle RAC, Oracle recommends using the latest OPatch version appropriate for the release. The README for this patch specifically recommends OPatch 12.2.0.1.48 for the relevant environment.

Check the version:

$ORACLE_HOME/OPatch/opatch version

Example:

OPatch Version: 12.2.0.1.52
OPatch succeeded.

If the required OPatch version is not available, Oracle references Patch 6880880 for obtaining the OPatch utility.


5. Check the Existing Patch Inventory

Before applying the new GIRU, check the current Grid and Database homes.

For example:

$ORACLE_HOME/OPatch/opatch lspatches

Also verify the current Clusterware status:

crsctl stat res -t

Before proceeding, make sure that the RAC environment is healthy.

Check:

  • CRS resources
  • ASM
  • Database instances
  • SCAN listeners
  • VIPs
  • Database services
  • Cluster interconnect
  • Voting disks
  • OCR

A patch should not be used as an opportunity to troubleshoot an already unhealthy cluster.


6. Perform the OPatch Conflict Check

One of the most important pre-patching steps is checking for conflicts with existing interim patches.

Oracle provides the following conflict-check commands for Patch 39568945.

For the Grid home:

$ORACLE_HOME/OPatch/opatch prereq \
CheckMinimumOPatchVersion \
-phBaseDir <UNZIPPED_PATCH_LOCATION>/39568945/39578879

Then:

$ORACLE_HOME/OPatch/opatch prereq \
CheckConflictAgainstOHWithDetail \
-phBaseDir <UNZIPPED_PATCH_LOCATION>/39568945/39578879

Additional conflict checks include:

$ORACLE_HOME/OPatch/opatch prereq \
CheckConflictAgainstOHWithDetail \
-phBaseDir <UNZIPPED_PATCH_LOCATION>/39568945/39578865
$ORACLE_HOME/OPatch/opatch prereq \
CheckConflictAgainstOHWithDetail \
-phBaseDir <UNZIPPED_PATCH_LOCATION>/39568945/39578862
$ORACLE_HOME/OPatch/opatch prereq \
CheckConflictAgainstOHWithDetail \
-phBaseDir <UNZIPPED_PATCH_LOCATION>/39568945/39578859
$ORACLE_HOME/OPatch/opatch prereq \
CheckConflictAgainstOHWithDetail \
-phBaseDir <UNZIPPED_PATCH_LOCATION>/39568945/39578856

These checks determine whether existing interim patches conflict with the new patch or whether an existing patch is a subset of the new patch.

If OPatch reports a real conflict with an already-installed patch, do not simply continue. Investigate the conflict and obtain the appropriate Oracle-supported resolution.


7. Understand the RAC Patching Approach

Oracle provides different installation procedures depending on the RAC configuration.

The README identifies, among others:

  1. RAC with non-shared Grid and Database homes and no ACFS
  2. RAC with non-shared Grid Home and shared Oracle Home, potentially using ACFS
  3. Single-instance homes not managed by Grid Infrastructure

For the common RAC configuration where Grid and Oracle homes are not shared and ACFS is not configured, Oracle’s procedure is to run:

# cd <UNZIPPED_PATCH_LOCATION>

# <GI_HOME>/OPatch/opatchauto apply \
<UNZIPPED_PATCH_LOCATION>/39568945 \
-logLevel FINEST

on each cluster node.

In practice, this allows OPatchAuto to coordinate the patching of the Grid Infrastructure and RAC Database homes.


8. Apply Patch 39568945 on RAC Node 1

On rac-node1, the patch was started using:

/u01/app/23.26.0.0/grid/OPatch/opatchauto apply \
/home/oracle/install/39568945/ \
-logLevel FINEST

The OPatchAuto session started at:

/u01/app/23.26.0.0/grid/OPatch/opatchauto apply /home/oracle/install/39568945/ -logLevel FINEST

OPatchauto session is initiated at Mon Aug 10 12:44:37 2026

System initialization log file is /u01/app/23.26.0.0/grid/cfgtoollogs/opatchautodb/systemconfig2026-08-10_12-44-48PM.log.

Session log file is /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/opatchauto2026-08-10_12-45-26PM.log
The id for this session is 3PP8

Executing OPatch prereq operations to verify patch applicability on home /u01/app/23.26.0.0/grid
/u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/opatchauto2026-08-10_12-45-26PM.log
Patch applicability verified successfully on home /u01/app/23.26.0.0/grid


Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Patch applicability verified successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Executing patch validation checks on home /u01/app/23.26.0.0/grid
Patch validation checks successfully completed on home /u01/app/23.26.0.0/grid


Executing patch validation checks on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Patch validation checks successfully completed on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Updating OJVM libraries on all hosts for home /u01/app/oracle/product/23.26.0.0/dbhome_1
Successfully updated OJVM libraries on all hosts


Enabling two-stage patches on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Successfully enabled two-stage patches on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Verifying SQL patch applicability on home /u01/app/oracle/product/23.26.0.0/dbhome_1
SQL patch applicability verified successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Preparing to bring down database service on home /u01/app/oracle/product/23.26.0.0/dbhome_1
No step execution required.........


Performing prepatch operations on CRS - bringing down CRS service on home /u01/app/23.26.0.0/grid
Prepatch operation log file location: /u01/app/grid/crsdata/rac-node1/crsconfig/crs_prepatch_apply_inplace_rac-node1_2026-08-10_12-51-41AM.log
CRS service brought down successfully on home /u01/app/23.26.0.0/grid


Performing prepatch operation on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Prepatch operation completed successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Start applying binary patch on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Binary patch applied successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Running rootadd_rdbms.sh on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Successfully executed rootadd_rdbms.sh on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Performing postpatch operation on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Postpatch operation completed successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Start applying binary patch on home /u01/app/23.26.0.0/grid
Binary patch applied successfully on home /u01/app/23.26.0.0/grid


Running rootadd_rdbms.sh on home /u01/app/23.26.0.0/grid
Successfully executed rootadd_rdbms.sh on home /u01/app/23.26.0.0/grid



Checking shared status of home.....

Performing postpatch operations on CRS - starting CRS service on home /u01/app/23.26.0.0/grid
Postpatch operation log file location: /u01/app/grid/crsdata/rac-node1/crsconfig/crs_postpatch_apply_inplace_rac-node1_2026-08-10_01-45-01PM.log
CRS service started successfully on home /u01/app/23.26.0.0/grid


Preparing home /u01/app/oracle/product/23.26.0.0/dbhome_1 after database service restarted
No step execution required.........


Trying to apply SQL patch on home /u01/app/oracle/product/23.26.0.0/dbhome_1
No SQL patch operations are required on local node for this home

OPatchAuto successful.

--------------------------------Summary--------------------------------

Patching is completed successfully. Please find the summary as follows:

Host:rac-node1
RAC Home:/u01/app/oracle/product/23.26.0.0/dbhome_1
Version:23.0.0.0.0
Summary:

==Following patches were SKIPPED:

Patch: /home/oracle/install/39568945/39578865
Reason: This patch is not applicable to this specified target type - "rac_database"

Patch: /home/oracle/install/39568945/39578862
Reason: This patch is not applicable to this specified target type - "rac_database"

Patch: /home/oracle/install/39568945/39578856
Reason: This patch is not applicable to this specified target type - "rac_database"


==Following patches were SUCCESSFULLY applied:

Patch: /home/oracle/install/39568945/39578859
Log: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_12-55-53PM_1.log

Patch: /home/oracle/install/39568945/39578879
Log: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_12-55-53PM_1.log


Host:rac-node1
CRS Home:/u01/app/23.26.0.0/grid
Version:23.0.0.0.0
Summary:

==Following patches were SUCCESSFULLY applied:

Patch: /home/oracle/install/39568945/39578856
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_13-31-15PM_1.log

Patch: /home/oracle/install/39568945/39578859
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_13-31-15PM_1.log

Patch: /home/oracle/install/39568945/39578862
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_13-31-15PM_1.log

Patch: /home/oracle/install/39568945/39578865
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_13-31-15PM_1.log

Patch: /home/oracle/install/39568945/39578879
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_13-31-15PM_1.log


Patching session reported following warning(s):
_________________________________________________

[WARNING] The database instance 'test' from '/u01/app/oracle/product/23.26.0.0/dbhome_1', in host'rac-node1' is not running. SQL changes, if any,  will not be applied.
To apply. the SQL changes, bring up the database instance and run the command manually from any one node (run as oracle).
Refer to the readme to get the correct steps for applying the sql changes.




Following homes are skipped during patching as patches are not applicable:

/u01/app/oracle/product/19.0.0/dbhome_1



OPatchauto session completed at Mon Aug 10 13:51:32 2026
Time taken to complete the session 20 minutes, 51 seconds
[root@rac-node1 39568945]#


9. OPatchAuto Patching Sequence

The patching process then moved through the normal OPatchAuto stages.

For the Database Home:

Updating OJVM libraries
Enabling two-stage patches
Verifying SQL patch applicability
Prepatch operations
Binary patch
rootadd_rdbms.sh
Postpatch operations

The database binary patch completed successfully.

The Grid Infrastructure Home was then patched:

Binary patch applied successfully

followed by:

rootadd_rdbms.sh

and the CRS postpatch operation.

The CRS service was successfully restarted.


10. Apply the Patch on RAC Node 2

The patch was subsequently executed on rac-node2:

/u01/app/23.26.0.0/grid/OPatch/opatchauto apply \
/u01/patch/39568945 \
-logLevel FINEST

The second OPatchAuto session started at:


/u01/app/23.26.0.0/grid/OPatch/opatchauto apply /u01/patch/39568945 -logLevel FINEST

OPatchauto session is initiated at Mon Aug 10 14:43:17 2026

System initialization log file is /u01/app/23.26.0.0/grid/cfgtoollogs/opatchautodb/systemconfig2026-08-10_02-43-28PM.log.

Following home(s) will not be included as part of current opatchauto session as they do not run from the current host.
        Database Name: db
        Oracle Home: /u01/app/oracle/product/19.0.0/dbhome_1
        Host:
 rac-node1
        Database Name: sample
        Oracle Home: /u01/app/oracle/product/19.0.0/dbhome_1
        Host:
 rac-node1

To complete the patching process for the above databases, execute it on host where the databases are running.
Session log file is /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/opatchauto2026-08-10_02-44-11PM.log
The id for this session is VG15

Executing OPatch prereq operations to verify patch applicability on home /u01/app/23.26.0.0/grid
Patch applicability verified successfully on home /u01/app/23.26.0.0/grid


Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Patch applicability verified successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Executing patch validation checks on home /u01/app/23.26.0.0/grid
Patch validation checks successfully completed on home /u01/app/23.26.0.0/grid


Executing patch validation checks on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Patch validation checks successfully completed on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Enabling two-stage patches on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Successfully enabled two-stage patches on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Verifying SQL patch applicability on home /u01/app/oracle/product/23.26.0.0/dbhome_1
SQL patch applicability verified successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Preparing to bring down database service on home /u01/app/oracle/product/23.26.0.0/dbhome_1
No step execution required.........


Performing prepatch operations on CRS - bringing down CRS service on home /u01/app/23.26.0.0/grid
Prepatch operation log file location: /u01/app/grid/crsdata/rac-node2/crsconfig/crs_prepatch_apply_inplace_rac-node2_2026-08-10_02-49-50PM.log
CRS service brought down successfully on home /u01/app/23.26.0.0/grid


Performing prepatch operation on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Prepatch operation completed successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Start applying binary patch on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Binary patch applied successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Running rootadd_rdbms.sh on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Successfully executed rootadd_rdbms.sh on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Performing postpatch operation on home /u01/app/oracle/product/23.26.0.0/dbhome_1
Postpatch operation completed successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1


Start applying binary patch on home /u01/app/23.26.0.0/grid
Binary patch applied successfully on home /u01/app/23.26.0.0/grid


Running rootadd_rdbms.sh on home /u01/app/23.26.0.0/grid
Successfully executed rootadd_rdbms.sh on home /u01/app/23.26.0.0/grid




Performing postpatch operations on CRS - starting CRS service on home /u01/app/23.26.0.0/grid

Postpatch operation log file location: /u01/app/grid/crsdata/rac-node2/crsconfig/crs_postpatch_apply_inplace_rac-node2_2026-08-10_03-23-27PM.log
CRS service started successfully on home /u01/app/23.26.0.0/grid


Preparing home /u01/app/oracle/product/23.26.0.0/dbhome_1 after database service restarted
No step execution required.........


Trying to apply SQL patch on home /u01/app/oracle/product/23.26.0.0/dbhome_1
"[/bin/sh -c 'cd /u01/app/oracle/product/23.26.0.0/dbhome_1;ORACLE_HOME=/u01/app/oracle/product/23.26.0.0/dbhome_1 ORACLE_SID=orcl2 /u01/app/oracle/product/23.26.0.0/dbhome_1/OPatch/datapatch -verbose']" command failed with errors. Please refer to logs for more details. SQL changes, if any, can be applied by manually retrying the same command.

SQL patch applied successfully on home /u01/app/oracle/product/23.26.0.0/dbhome_1

OPatchAuto successful.

--------------------------------Summary--------------------------------

Patching is completed successfully. Please find the summary as follows:

Host:rac-node2
RAC Home:/u01/app/oracle/product/23.26.0.0/dbhome_1
Version:23.0.0.0.0
Summary:

==Following patches were SKIPPED:

Patch: /u01/patch/39568945/39578865
Reason: This patch is not applicable to this specified target type - "rac_database"

Patch: /u01/patch/39568945/39578862
Reason: This patch is not applicable to this specified target type - "rac_database"

Patch: /u01/patch/39568945/39578856
Reason: This patch is not applicable to this specified target type - "rac_database"


==Following patches were SUCCESSFULLY applied:

Patch: /u01/patch/39568945/39578859
Log: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_14-52-10PM_1.log

Patch: /u01/patch/39568945/39578879
Log: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_14-52-10PM_1.log


Host:rac-node2
CRS Home:/u01/app/23.26.0.0/grid
Version:23.0.0.0.0
Summary:

==Following patches were SUCCESSFULLY applied:

Patch: /u01/patch/39568945/39578856
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_15-13-01PM_1.log

Patch: /u01/patch/39568945/39578859
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_15-13-01PM_1.log

Patch: /u01/patch/39568945/39578862
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_15-13-01PM_1.log

Patch: /u01/patch/39568945/39578865
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_15-13-01PM_1.log

Patch: /u01/patch/39568945/39578879
Log: /u01/app/23.26.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2026-08-10_15-13-01PM_1.log



OPatchauto session completed at Mon Aug 10 15:31:50 2026
Time taken to complete the session 48 minutes, 23 seconds


11. Patching the CRS Home on Node 2

The CRS service was brought down as part of the prepatch operation:

CRS service brought down successfully

The Grid Infrastructure binary patch was then applied successfully.

The required rootadd_rdbms.sh operation completed successfully, followed by the CRS postpatch operation.

Finally:

CRS service started successfully

This confirms that the Clusterware stack was successfully restarted after the Grid patching phase.


12. One Interesting Point: Multiple Oracle Homes

The environment also contained an older Oracle Database Home:

/u01/app/oracle/product/19.0.0/dbhome_1

OPatchAuto identified that this home was not applicable to the 23.26.3.0.0 patch and skipped it.

The output showed:

Following homes are skipped during patching as patches are not applicable:

/u01/app/oracle/product/19.0.0/dbhome_1

On Node 2, OPatchAuto also reported databases associated with that Oracle Home that were not running from the current host and instructed the administrator to execute patching on the host where those databases were running.

This is particularly important in RAC environments containing multiple database releases.

Do not assume that running OPatchAuto for the 23ai Grid Home automatically patches every Oracle Database Home installed on the server.

Always review the OPatchAuto summary.


13. Run Datapatch Sanity Checks

Before applying the SQL patches, run:

cd /u01/app/oracle/product/23.26.0.0/dbhome_1

./datapatch -sanity_checks

The tool detected the RAC environment and verified SSH connectivity:

./datapatch -sanity_checks
SQL Patching sanity checks version 23.26.3.0.0 on Tue 11 Aug 2026 07:58:45 AM +0530
Copyright (c) 2021, 2026, Oracle.  All rights reserved.

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

RAC detected, verifying SSH connection...
Done

Running checks
JSON report generated in /u01/app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260811_075845_2069938/sqlpatch_sanity_checks_summary.json file
Checks completed. Printing report:

Check: Database component status - OK
Check: PDB Violations - OK
Check: Invalid System Objects - OK
Check: Tablespace Status - OK
Check: Backup jobs - OK
Check: Temp file exists - OK
Check: Temp file online - OK
Check: Data Pump running - OK
Check: Container status - OK
Check: Oracle Database Keystore - OK
Check: Dictionary statistics gathering - WARNING
  Patching the database without recent data dictionary statistics gathered may lead to performance issues.
  Data dictionary statistics are older than 7 days.
  Run the following queries to start gathering the dictionary statistics:
    EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
    EXEC DBMS_SYSTEM.GATHER_FIXED_OBJECTS_STATS;
  Refer to MOS 457926.1 for more details.
  PDB$SEED:
    |     LATEST      |        OPERATION        |  STATUS   |
    |-----------------+-------------------------+-----------|
    | 30-JAN-26 16:26 | gather_dictionary_stats | COMPLETED |
    |-----------------+-------------------------+-----------|
Check: Scheduled Jobs - OK
Check: GoldenGate triggers - OK
Check: GoldenGate Integrated Extract/Replicat - OK
Check: Logminer DDL triggers - OK
Check: Check sys public grants - OK
Check: Statistics gathering running - OK
Check: Optim dictionary upgrade parameter - OK
Check: Symlinks on oracle home path - OK
Check: Java Virtual Machine Enable - OK
Check: Oracle Database Vault Enabled - OK
Check: Looping Chain Synonyms - OK
Check: Duplicated ORACLE_HOME values - OK
Check: Recyclebin Empty - WARNING
  Datapatch could fail when unpurged objects remain in the recycle bin.
  No objects should be found in the recycle bin.
  Empty the recyclebin by running 'PURGE RECYCLEBIN'. For more information about purging the recyclebin please visit Oracle Help Center, then search for 'PURGccording to your database version.
  ORCLPDB1:
    | RECYCLEBIN_OBJ_COUNT |
    |----------------------|
    |          12          |
    |----------------------|
Check: Central Inventory - OK
Check: Queryable Inventory locks - OK
Check: Queryable Inventory database directories - OK
Check: Queryable Inventory external table - OK
Check: Queryable Inventory package - OK
Check: Imperva processes - OK
Check: Guardium processes - OK
Check: Locale - OK

Refer to MOS Note 2975965.1 and debug log
/u01/app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260811_075845_2069938/sanity_checks_debug_20260811_075845_2069938.log

SQL Patching sanity checks completed on Tue 11 Aug 2026 08:01:05 AM +0530

14. Run Datapatch

fter completing the sanity checks, run:

./datapatch -verbose

The SQL Patching tool reported:

SQL Patching tool version 23.26.3.0.0

The database connection was successful:

./datapatch -verbose
SQL Patching tool version 23.26.3.0.0 Production on Tue Aug 11 08:01:22 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_08_11_08_01_22_pid_2071323/sqlpatch_i

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.2.0.0 Release_Update 260428181725 successfully on 01-JUN-26 05.22.01.073474 PM
  PDB ORCLPDB1:
    Applied 23.26.2.0.0 Release_Update 260428181725 successfully on 01-JUN-26 05.30.37.566386 PM
  PDB PDB$SEED:
    Applied 23.26.2.0.0 Release_Update 260428181725 successfully on 01-JUN-26 05.30.10.688675 PM
  PDB SOURCE_DB:
    Applied 23.26.2.0.0 Release_Update 260428181725 successfully on 01-JUN-26 05.30.10.688675 PM
  PDB STAGING_DB:
    Applied 23.26.2.0.0 Release_Update 260428181725 successfully on 01-JUN-26 05.30.10.688675 PM

Adding patches to installation queue and performing prereq checks...done
Installation queue:
  For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB1 SOURCE_DB STAGING_DB
    No interim patches need to be rolled back
    Patch 39578879 (Database Release Update : 23.26.3.0.0 (39578879)):
      Apply from 23.26.2.0.0 Release_Update 260428181725 to 23.26.3.0.0 Release_Update 260705162604
    No interim patches need to be applied

Installing patches...


Patch installation complete.  Total patches installed: 5

Validating logfiles...done
Patch 39578879 apply (pdb CDB$ROOT): SUCCESS
  logfile: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/sqlpatch/sqlpatch_sid_orcl1_ts_2026_08_11_08_01_22_pid_2071323/39578879_apply_ORCL_CDBROOT_2
Patch 39578879 apply (pdb PDB$SEED): SUCCESS
  logfile: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/sqlpatch/sqlpatch_sid_orcl1_ts_2026_08_11_08_01_22_pid_2071323/39578879_apply_ORCL_PDBSEED_2
Patch 39578879 apply (pdb ORCLPDB1): SUCCESS
  logfile: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/sqlpatch/sqlpatch_sid_orcl1_ts_2026_08_11_08_01_22_pid_2071323/39578879_apply_ORCL_ORCLPDB1_
Patch 39578879 apply (pdb SOURCE_DB): SUCCESS
  logfile: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/sqlpatch/sqlpatch_sid_orcl1_ts_2026_08_11_08_01_22_pid_2071323/39578879_apply_ORCL_SOURCE_DB
Patch 39578879 apply (pdb STAGING_DB): SUCCESS
  logfile: /u01/app/oracle/product/23.26.0.0/dbhome_1/cfgtoollogs/sqlpatch/sqlpatch_sid_orcl1_ts_2026_08_11_08_01_22_pid_2071323/39578879_apply_ORCL_STAGING_D
SQL Patching tool complete on Tue Aug 11 08:35:21 2026

15. Verify the Patch Installation

After patching both RAC nodes, verify the Grid Infrastructure patch inventory.

Run:

$GI_HOME/OPatch/opatch lspatches

You should verify that the expected 23.26.3.0.0 components are present.

Also verify the Database Home:

$ORACLE_HOME/OPatch/opatch lspatches

Check the installed patch inventory on both RAC nodes.


16. Verify Clusterware

After patching:

crsctl check crs

Then:

crsctl stat res -t

Check that:

  • CRS is online
  • ASM is online
  • Database instances are online
  • VIP resources are online
  • SCAN listeners are online
  • Database services are online
  • All expected resources are ONLINE
crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac-node1                STABLE
               ONLINE  ONLINE       rac-node2                STABLE
ora.chad
               ONLINE  ONLINE       rac-node1                STABLE
               ONLINE  ONLINE       rac-node2                STABLE
ora.cvuadmin
               OFFLINE OFFLINE      rac-node1                STABLE
               OFFLINE OFFLINE      rac-node2                STABLE
ora.helper
               OFFLINE OFFLINE      rac-node1                STABLE
               OFFLINE OFFLINE      rac-node2                IDLE,STABLE
ora.net1.network
               ONLINE  ONLINE       rac-node1                STABLE
               ONLINE  ONLINE       rac-node2                STABLE
ora.ons
               ONLINE  ONLINE       rac-node1                STABLE
               ONLINE  ONLINE       rac-node2                STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac-node1                STABLE
      2        ONLINE  ONLINE       rac-node2                STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac-node1                STABLE
      2        ONLINE  ONLINE       rac-node2                STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  OFFLINE                               STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac-node1                Started,STABLE
      2        ONLINE  ONLINE       rac-node2                Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac-node1                STABLE
      2        ONLINE  ONLINE       rac-node2                STABLE
ora.cdp1.cdp
      1        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac-node1                STABLE
ora.cvuhelper
      1        OFFLINE OFFLINE                               STABLE
ora.db.db
      1        ONLINE  OFFLINE                               STABLE
ora.orcl.db
      1        ONLINE  ONLINE       rac-node1                Open,HOME=/u01/app/o
                                                             racle/product/23.26.
                                                             0.0/dbhome_1,STABLE
      2        ONLINE  ONLINE       rac-node2                Open,HOME=/u01/app/o
                                                             racle/product/23.26.
                                                             0.0/dbhome_1,STABLE
ora.orcl.orcl_orclpdb1.svc
      2        ONLINE  ONLINE       rac-node1                STABLE
      3        ONLINE  ONLINE       rac-node2                STABLE
ora.orcl.orcl_source_db.svc
      1        ONLINE  ONLINE       rac-node2                STABLE
      2        ONLINE  ONLINE       rac-node1                STABLE
ora.orcl.orcl_staging_db.svc
      1        ONLINE  ONLINE       rac-node2                STABLE
      2        ONLINE  ONLINE       rac-node1                STABLE
ora.orcl.orclpdb1.pdb
      1        ONLINE  ONLINE       rac-node1                READ WRITE,STABLE
      3        ONLINE  ONLINE       rac-node2                READ WRITE,STABLE
ora.orcl.source_db.pdb
      1        ONLINE  ONLINE       rac-node1                READ WRITE,STABLE
      2        ONLINE  ONLINE       rac-node2                READ WRITE,STABLE
ora.orcl.staging_db.pdb
      1        ONLINE  ONLINE       rac-node1                READ WRITE,STABLE
      2        ONLINE  ONLINE       rac-node2                READ WRITE,STABLE
ora.rac-node1.vip
      1        ONLINE  ONLINE       rac-node1                STABLE
ora.rac-node2.vip
      1        ONLINE  ONLINE       rac-node2                STABLE
ora.rhpserver
      1        OFFLINE OFFLINE                               STABLE
ora.scan1.vip
      1        ONLINE  OFFLINE                               STABLE
ora.test.db
      1        ONLINE  OFFLINE                               STABLE
ora.test.salse_pdb.pdb
      1        OFFLINE OFFLINE                               STABLE
ora.test.testpdb.pdb
      1        OFFLINE OFFLINE                               STABLE
--------------------------------------------------------------------------------

For a two-node RAC environment, verify both nodes individually.


17. Verify Database SQL Patch Status

The binary installation and SQL patching are separate aspects of an Oracle patch.

After the database is available, verify SQL patch registration using:

SELECT patch_id,
       patch_type,
       action_time,
       description,
       status
FROM   dba_registry_sqlpatch
ORDER BY action_time DESC;

Look for the appropriate Release Update entry and confirm:

STATUS = SUCCESS

If a database was down during OPatchAuto, this verification is especially important.


18. Check for Invalid Objects

After patching, check invalid objects:

SELECT owner,
       object_type,
       COUNT(*)
FROM dba_objects
WHERE status = 'INVALID'
GROUP BY owner, object_type
ORDER BY owner, object_type;

If required, Oracle’s standard recompilation script can be used:

@?/rdbms/admin/utlrp.sql

19. RAC Post-Patching Health Checks

Once the patch is complete, perform a complete RAC health check.

Useful checks include:

crsctl check crs
crsctl stat res -t
olsnodes -n
srvctl status database -d <db_unique_name>
srvctl status service -d <db_unique_name>

From SQL*Plus, verify the database:

SELECT instance_name,
       host_name,
       version,
       status
FROM gv$instance
ORDER BY instance_number;

Also check:

SELECT inst_id,
       name,
       open_mode
FROM gv$pdbs
ORDER BY inst_id, con_id;

20. Lessons Learned from the Actual Patching Exercise

This patching exercise highlights several practical lessons.

1. Always check patch applicability first

OPatchAuto performed applicability and validation checks successfully on both homes before modifying the environment.

2. Do not ignore SKIPPED patches

The output showed several patches as:

not applicable to this specified target type - "rac_database"

That was expected because those components were applied to the Grid Infrastructure Home rather than the RAC Database target.

3. Check SQL patching separately

Node 1 demonstrated that a database being down can prevent SQL changes from being applied.

4. Read the complete OPatchAuto summary

The final summary gives a clear picture of:

  • Successful patches
  • Skipped patches
  • Warnings
  • Database homes not included
  • SQL patching status

5. Patch every RAC node

Completing the patch on one node does not complete the RAC maintenance activity.

In this exercise, both:

rac-node1
rac-node2

were patched successfully.


21. Recommended RAC Patching Checklist

Before patching:

[ ] Confirm patch number: 39568945
[ ] Read the current README
[ ] Check supported configuration
[ ] Verify OPatch version
[ ] Check CRS health
[ ] Check database health
[ ] Check existing patch inventory
[ ] Perform conflict checks
[ ] Backup Oracle Homes
[ ] Backup OCR/SPFILE/database as required
[ ] Confirm rollback/recovery plan

During patching:

[ ] Patch node 1
[ ] Monitor OPatchAuto logs
[ ] Verify CRS restart
[ ] Review patch summary
[ ] Check SQL patch status
[ ] Patch node 2
[ ] Review node 2 patch summary
[ ] Check SQL patch status

After patching:

[ ] Verify opatch lspatches
[ ] Verify CRS
[ ] Verify ASM
[ ] Verify RAC instances
[ ] Verify VIP/SCAN
[ ] Verify database services
[ ] Verify DBA_REGISTRY_SQLPATCH
[ ] Check invalid objects
[ ] Perform application validation
[ ] Review OPatchAuto logs

Final Thoughts

Oracle Grid Infrastructure Release Update 23.26.3.0.0 (Patch 39568945) can be applied to an Oracle RAC environment using OPatchAuto.

The most important part of the process is not simply executing:

opatchauto apply

The real work is the preparation and validation around it.

Before patching, perform conflict checks, verify the RAC health, maintain current backups, and confirm the correct OPatch version. During patching, monitor the OPatchAuto session carefully. After patching, verify both the binary patch inventory and the database SQL patch status.

In the two-node RAC exercise described here, both rac-node1 and rac-node2 completed the Grid Infrastructure patch successfully. The detailed logs also demonstrated why SQL patch status and OPatchAuto warnings must be reviewed separately rather than assuming that a final “OPatchAuto successful” message means every database-related task was completed.

Oracle’s README for Patch 39568945 should remain the authoritative installation reference, particularly for environment-specific configurations, known issues, and any changes to the installation procedure.

Tags: 23.26.3.0.0GI RUGrid Infrastructure PatchingOpatchOPatchAutoOracle 23aiOracle AI DatabaseOracle ClusterwareOracle database patchingOracle DBAOracle Grid InfrastructureOracle RACPatch 39568945RAC Patching
Previous Post

Oracle 23.26.3.0.0 August 2026 GI MRP Patching Using OPatchAuto on Oracle RAC

Next Post

ORA-28001: The Password Has Expired – WebLogic Server Startup Failure

Next Post
ORA-28001: The Password Has Expired – WebLogic JPS-01055

ORA-28001: The Password Has Expired – WebLogic Server Startup Failure

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
  • Oracle Database 19.32 Release Update (RU) Patching Guide – Patch 39472050

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

    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