Hi Levi , Thanks for your help. I have already metalink documents for GI and database upgrade. But my question is different here. Oracle has recommended to apply 9413827 opatch before proceed 22.214.171.124 upgrade. 9413827 - as per readme.txt I'm following rolling upgrade. I have two instances running on racdb1 and racdb2 two nodes. Before start opatch on first node what should be done to preserve the existing database connections on racdb1 instance ? Is that can be relocated to other running node? I have created new service for racdb1 and relocated to other running node. After shutting down the first instance old existing connections are lost and only new connections are pointing to second node.How can we do without impact existing connections?
What you are Upgrading GI, DB or Both?
If GI you can do it without downtime, but if it's DB you will need downtime.
I'll consider you are upgrading GI only.
1. Before start opatch on first node what should be done to preserve the existing database connections on racdb1 instance?
Use Transparent Application Failover Policy (TAF)
When Oracle Net Services establishes a connection to an instance, the connection remains open until the client closes the connection, the instance is shutdown, or a failure occurs. If you configure transparent application failover (TAF) for the connection, then Oracle Database moves the session to a surviving instance when an outage occurs.
TAF can restart a query after failover has completed but for other types of transactions, such as
DELETE, the application must rollback the failed transaction and resubmit the transaction. You must also reexecute any session customizations, in other words,
ALTER SESSIONstatements, after failover has occurred. However, with TAF, a connection is not moved during normal processing, even if the workload changes over time.
2.Is that can be relocated to other running node?
Yes. By using srvctl relocate service.
3.I have created new service for racdb1 and relocated to other running node. After shutting down the first instance old existing connections are lost and only new connections are pointing to second node.How can we do without impact existing connections?
Connection are not moved but it's "recreated" (with backup connection is a little different, but i'll not go in detail about it) . So, its application must support Oracle RAC to make transparent all this changes (outages).
Fast Application Notification
For cluster configuration changes, the Oracle RAC high availability framework publishes a FAN event immediately when a state change occurs in the cluster. Instead of waiting for the application to poll the database and detect a problem, applications can receive FAN events and react immediately. With FAN, in-flight transactions can be immediately terminated and the client notified when the instance fails.
FAN also publishes load balancing advisory events. Applications can take advantage of the load balancing advisory FAN events to direct work requests to the instance in the cluster that is currently providing the best service quality.
You can take advantage of FAN events in the following three ways:
- Your application can use FAN without programmatic changes if you use an integrated Oracle client. The integrated clients for FAN events include Oracle Database JDBC, Oracle Database ODP.NET, and Oracle Database Oracle Call Interface. This includes applications that use TAF. The integrated Oracle clients must be Oracle Database 10g release 2 (10.2) or later to take advantage of the load balancing advisory FAN events.
- Applications can use FAN programmatically by using the JDBC and Oracle RAC FAN application programming interface (API) or by using callbacks with Oracle Call Interface to subscribe to FAN events and to execute event handling actions upon the receipt of an event.
- You can implement FAN with server-side callouts on your database tier.