Skip to content

Why Real Application Clusters?

April 4, 2012

Few Things to know:


 A) Why Real Application Clusters?
1) Database High Availability
2) Entire database available for all instances
3) Surviving instances perform recovery
4) Application failover
5) Scalability
6) Number of users
7) Size of database(s)
8) Reaching traditional hardware limits
9) Out of the box with any application
10) “Pay as you grow”
11) Maturity of Real Application Cluster
12) Easy management
13) automated tuning
14) No need for “parallel aware” DBA
15) Consolidate 2 or more databases
B) Real Application Cluster – what is it?
1) A Single Database
2) Many instances of Oracle running on many nodes
3) Multiple instances share a single physical database
4) All instances have common data, control, and initialization files
5) Each instances has individual, shared log files and rollback segments or undo tablespaces
6) All instances can simultaneously execute transactions against the single database (SHARED EVERYTHING ARCHITECTURE)
7) Caches are synchronized using Oracle’s Global Cache Management technology (Cache Fusion)


C)  Which Applications are suitable for RAC?

If your application will scale transparently on SMP, then it is realistic to expect it to scale well on RAC, without having to make any changes to the application code.

 – Scalability
     – Speed-Up
            The ability to perform the same unit of work in a smaller timeframe
     – Scale-Up
           The ability to perform more of the same unit of work in the same timeframe


D) Workload Balancing – Adaptive Parallel Query
1) Queries and DML can utilize all nodes in cluster
2) Oracle parallel optimizer spreads single queries over all nodes when applicable
3) Optimizer may choose to use only one node to satisfy request (adaptive parallel query)
4) Once started, all nodes work until entire operation is completed


E) Transparent Application Failover
1) Just a specialized configuration of listener.ora, tnsnames.ora  and a couple of parameter changes in init.ora (spfile)
2) TAF works for
            -OCI programs
            -Java JDBC thick drivers (uses OCI drivers)
            -ODBC connections
            -SELECT statements
3) TAF does not maintain
            -PL/SQL procedure states
            -alter session statements
            -Server side program variables
            -Uncommitted DML


F) Transparent Application Failover
Select Failover
1) Failover allows the application to continue execution or fetching
2) Leverages Oracle’s multi-versioning read consistency to ensure results are identical
G) RAC – Connection Load Balancing
1) Databases register with listeners when started
2) Nodes report CPU usage back to registered listeners (smon)
3) Listener chooses least used node when connection needed
4) Supports both Shared Server  and Dedicated Server configurations


H) VERITAS Cluster Membership Communication
1) Oracle provides defined interface for obtaining membership from cluster
            -Known as skgxn for System Kernel Generic Interface Node membership (skgxn)
            -Provided as a linked library with DBE/AC
            -Makes ioctl calls to membership module.
2) VCSMM: “Membership Manager”
            -Kernel layer over GAB
            -Communicates on GAB port o
            -Client-server model
            -The skgxn library acts as client
            -VCSMM provides server side


I) CFS Usage in DBE/AC for RAC
1) Cluster File System used for all data and log storage
2) File system locking bypassed for data files by ODM interface
            -CFS locking only used to add, delete or extend a data file
            -RAC maintains all locking with GCS/GES
3) Exclusive locks taken for log files and reclaimed at recovery time
4) Very low overhead in RAC environment, as essentially not used during normal operation
5) Allows complete file system semantics to DBA!
6) Supports Oracle Managed Files


J) The Problem with Third Party Cluster Software
1) No single point of support
2) High Cost
            -Multiple products to license
            -Labor intensive to install, integrate, and manage
3) Uneven quality & functionality across platforms
4) Small # of nodes for RAC
5) No common event or management APIs
K) RAC 10g Integrated Clusterware
1) Complete Oracle cluster software solution
2) Single-vendor support
3) Low Cost
            -No need to purchase additional software
            -Easy to install, manage
4) High quality and functionality across all platforms
            -64 nodes on all platforms
5) Advanced functionality
            -Failure Notification (FaN)
6) Support for third-party clusterware
L) Automatic Workload Management
1) Automatic allocation and re-allocation of servers to services based on rules
            -Automated routing of service connections to appropriate server with lowest load
            -On server failure, automated re-allocation of surviving servers to services
2) Works across all platforms
3) No application changes required
            -Services specified in TNS connect data
            -For example, using Net Easy*Connection in 10g you would connect using scott/tiger@//myVIP/myservice
4) Rules specify automatic resource allocations
            –PREFERRED instances during normal conditions
            –AVAILABLE instances should failures occur
5) Enterprise Manager provides manual service controls, e.g.,
            -Start/stop, enable/disable, relocate
M) Failure Notification (FaN) (Fast Automatic Notification)

1) Fast, coordinated recovery without human intervention

            -Oracle RAC 10g signals Application Server 10g when instances failures occur
            -Immediate recovery for mid-tiers
                        -< 4 seconds from 15 minutes
                        -self correcting
 N) Failure Notification (FaN) JDBC Fast Connection Failover Processing
1) Supports multiple connection caches
2) Datasource for each cache mapped to a service
3) Keeps track of service and instance for each connection
4) Distributes new work requests across available instances
5) When DOWN signal received from RAC 10g
            -Routes new requests to surviving instances
            -Throws exception if application was in midst of transaction
6) When UP signal received from RAC 10g
            -Creates new connections to new instances
            -Distributes new work requests evenly to all available instances


O) Notification Callouts
1) Users can write callout programs that are invoked when notifications occur
            -Notifications include node up/down, instance up/down, or service up/down
2) Example usages:
            -Send email, page
            -Log status info
            -Start / stop programs


P) Performance Enhancements
1) Faster recovery times
            -Oracle9i RAC < 1 minutes
            -Oracle RAC 10g < 8 seconds
2) Improved overall performance
            -Faster propagation of commit SCNs
            -Reduced code path
            -Message aggregation
3) Automatic adjustments to changing workloads
            -Dynamic file and cache affinity



From → RAC

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: