There’s a particular kind of anxiety that every RAC DBA knows — the feeling right before you relocate services off a node during a maintenance window and watch the interconnect traffic spike as hundreds of sessions suddenly need to rebuild their cache state somewhere else.
The patching itself is fine. It’s the movement that causes problems.
Sessions migrate to another node, Cache Fusion kicks into high gear shuttling blocks around, CPU usage climbs on the receiving nodes, and for fifteen or twenty minutes your monitoring dashboards look like something is actively wrong with the cluster even though technically everything is proceeding exactly as designed. You spend that time hoping that the spike stays below your alerting thresholds and that no one from the business happens to check their response times right now.
Oracle RAC 26ai’s Local Rolling Database Maintenance targets exactly that problem. Instead of moving workloads to another node during maintenance, it keeps them on the same physical server. Different instance, same hardware. And the difference that makes in practice is more significant than it might sound on paper.

What’s Actually Wrong With Traditional Rolling Maintenance
To appreciate what this feature does, it helps to be precise about what the traditional approach costs.
When you relocate a RAC service from Node 1 to Node 2 during patching, you’re not just moving a connection string. You’re asking sessions to re-establish against a different instance that may not have the same blocks cached locally. Those blocks get requested, shipped across the private interconnect via Cache Fusion, and loaded into Node 2’s buffer cache. Meanwhile, Node 2 is also handling its normal workload. And Node 3 might be absorbing overflow too, depending on how your services are configured.
The interconnect traffic increase is real and measurable. The CPU overhead from cluster coordination — the messaging, the lock management, the cache synchronization — is real. For a lightly loaded cluster doing a quarterly patch, it’s manageable. For a high-volume OLTP environment running thousands of concurrent sessions through a banking core or a payment processor, it becomes a meaningful event that the business feels even if it never technically constitutes an outage.
Oracle’s answer to this is architecturally clean: don’t move the workload to another node. Create a temporary instance on the same node, transfer sessions locally, and do your maintenance on the original instance while applications keep running literally on the same piece of hardware.
How It Actually Works
The mechanism involves spinning up a second Oracle Home on the same server alongside the existing one. In practice your directory structure ends up looking something like this:
bash
/u01/app/oracle/product/26ai/dbhome1 # existing home
/u01/app/oracle/product/26ai/dbhome2 # new patched home
Oracle starts a temporary instance — call it INST5 — from the new home on the same node that’s currently running INST1. Both coexist briefly on the same physical server. Oracle then transfers active workloads from INST1 to INST5. Since the transfer is happening between two instances on the same machine, there’s no cross-node interconnect traffic involved. Sessions relocate, but they’re still running on the same CPU, same memory, same network cards. The block transfers that do occur happen in memory rather than across the private network.
Once the workload is safely on INST5, you patch or upgrade INST1 from the old home. After maintenance completes, you transfer sessions back and decommission the temporary instance.
The commands to orchestrate this are straightforward:
# Point the database to the new Oracle Home and enable local rolling
srvctl modify database \
-d <dbname> \
-o /u01/app/oracle/product/26ai/dbhome2 \
-localrolling
# Initiate the local instance transfer on a specific node
srvctl transfer instance \
-d <dbname> \
-node nodeX
There’s no exotic configuration required. If you’re already comfortable with srvctl — and if you’re managing a RAC environment, you should be — this fits naturally into existing tooling.
The Resource Conversation You Need to Have First
I want to flag something that the feature documentation mentions but that deserves real emphasis: during the window when both instances coexist on the same server, that server is doing more work.
Two Oracle SGA allocations. Two sets of background processes. The workload from your active sessions plus the overhead of the temporary instance running alongside. On a well-specified Exadata node or a modern server with generous CPU and memory headroom, this is manageable and likely well within capacity. On a server that’s already running close to its memory ceiling during peak hours, it could create problems.
Before you enable this in production, run through a realistic capacity estimate for the maintenance window period. If your server has 512GB of RAM and your SGA is 100GB, you’re probably fine. If you’re squeezing 400GB into a 512GB server and your maintenance windows overlap with peak load, have that conversation with your capacity team first.
Same applies to CPU. The local instance transfer reduces interconnect overhead but it doesn’t eliminate all coordination work. Two instances on the same host will compete for CPU resources during the transfer period. In most environments that’s a brief and manageable spike. Know your numbers before you find out the hard way.
Where This Genuinely Changes the Maintenance Calculus
The scenarios where Local Rolling Maintenance delivers the clearest value are exactly the ones where traditional rolling patching was most uncomfortable.
High-density session environments — banking cores, telco subscriber databases, large ERP systems — where relocating services meant absorbing thousands of sessions onto already-loaded nodes. The local transfer keeps those sessions physically local and eliminates the cascade of cache misses that follows a traditional relocation.
Environments where interconnect bandwidth is a genuine constraint. Private network saturation during maintenance is a real risk in clusters that are sized for normal operations rather than maintenance scenarios. Keeping transfers local removes that risk category entirely.
Patch cycles where timing matters. If you can complete the maintenance on each node faster because you’re not waiting for remote sessions to stabilize after relocation, your total maintenance window compresses. That’s the difference between finishing at 4 AM and finishing at 2 AM, which matters to the people who have to be awake for it.
Where It Fits in the Oracle 26ai HA Picture
Local Rolling Maintenance sits alongside Two-Stage Rolling Updates and Smart Connection Rebalancing as part of what feels like a coherent design philosophy in Oracle 26ai: reduce the operational cost of keeping a RAC environment running well.
Two-Stage Rolling Updates reduces the set of patches that require downtime. Smart Connection Rebalancing reduces the cluster contention that builds up between maintenance cycles. Local Rolling Maintenance reduces the disruption caused by the maintenance itself. Together they address the lifecycle of a RAC environment in a way that each individual feature doesn’t.
For DBAs managing environments where uptime is measured in nines and maintenance windows are a political negotiation as much as a technical one, these features collectively make the 26ai upgrade conversation easier to have. The question “what does this release do for us operationally?” has concrete, specific answers now.
Local Rolling Database Maintenance is one of them — and if you’ve ever sat through a particularly rough service relocation watching interconnect graphs climb while hoping no one notices, you’ll understand why it made this list.




