Dear Readers,

Trust you are doing well!!!

Today, we’ll discuss one of the most impactful features introduced in Oracle 23ai: the ability for DBAs to apply patches that were previously non-rolling on RAC databases in a rolling manner.

As a DBA at heart, I see this as a game-changer. In earlier releases, certain critical non-rolling fixes couldn’t be applied without downtime—defeating the very purpose of RAC systems, which are designed to ensure continuous availability during maintenance activities like patching.

With Oracle 23ai, this challenge is addressed through the introduction of RAC Two-Stage Rolling Patches—a new patching method that allows previously non-rolling patches to be applied in rolling stages, minimizing disruption and maximizing uptime.

Using this “Oracle RAC two-stage rolling patches feature” enables you to apply previously non-rolling patches in a rolling fashion. Procedure is divided into 2 steps:

Step 1: Applying binary patches

Once the patch is applied on the first node, the second node is patched, and so on. When all the nodes are patched, you can enable the patches. Fixes that you apply using this feature are disabled by default.

Step 2: Enabling applied fixes by SQL command

You can enable these fixes using the alter system enable RAC two_stage rolling updates all; command, after all the nodes are patched successfully. You have the option to enable two-stage rolling patches either immediately after applying the patches or later. However, these patches are automatically enabled, if another patch or Release Update (RU) is applied using two-stage rolling patching.

  • Oracle RAC two-stage rolling updates reduce the need for downtime to apply non-rolling patches.
  • With this feature, the number of Oracle RAC non-rolling patches is significantly reduced.

You can use one of the following commands to enable fixes in system :

alter system enable rac two_stage rolling updates <#patch_number>;
alter system enable rac two_stage rolling updates ALL;

“enable all” is used to have a convenient way to enable all two stage updates (fixes) without needing to know individual bug numbers. DBA’s can use <#patch_number> instead of all to enable selective patches in database.

“disable all” is not allowed as a feature, instead DBA’s need to use “ALTER SYSTEM DISABLE RAC TWO_STAGE ROLLING UPDATES ” to rollback fixes from database.

Not all Two-Stage patches can be disabled, below query should give you the list of Two-Stage fixes that can be disabled. Once disabled, rollback can be done in rolling mode.

SQL> select BUG_NUMBER from V$RAC_TWO_STAGE_ROLLING_UPDATES where ONLINE_DISABLE=’Y’;

Once identified, you can run ALTER SYSTEM DISABLE RAC TWO_STAGE ROLLING UPDATES .

Once disabled, patch rollback at binary level can be done in rolling mode.

  • The Two-Stage framework is only applicable to RAC Databases, including RAC One.
  • Feature is not applicable to SEHA, OracleRestart.
  • Feature is available only for RDBMS not for ASM/GRID.
  • Not all non-rolling fixes can be applied in RAC rolling fashion.
  • Its recommended to review the patch README file for instruction on how to apply the patch, and complete all the required steps before starting the patch upgrade.

Let me know for any questions and any further information in comments or LinkedIn.

Advertisements

Leave a comment

Advertisements
Blog Stats

559,734 hits

Advertisements
Advertisements