Oracle Real Application Clusters (RAC) allows Oracle Database to run any packaged or custom application, unchanged across a server pool. This provides the highest levels of availability and the most flexible scalability. If a server in the pool fails, the Oracle database continues to run on the remaining servers. When you need more processing power, simply add another server to the pool without taking users offline. With Oracle Real Application Clusters, Oracle de-couples the Oracle Instance (the processes and memory structures running on a server to allow access to the data) from the Oracle database (the physical structures residing on the storage storing the data, commonly referred to as the datafiles).

An Oracle RAC database is a clustered database.  A cluster can be described as a pool of independent servers that co-operate as a single system. A clustered database is a single database that can be accessed by multiple instances, where each instance runs on a separate server in the server pool. A server pool is made up of 1 or more servers, each having a public LAN connection, an interconnect connection, and must be connected to a shared pool of storage. Server Pools provide improved fault resilience and modular incremental system growth over single symmetric multi-processor (SMP) systems. In the event of a system failure, clustering ensures high availability to users. Also, when additional resources are required, additional servers and instances can easily be added to the server pool with no downtime. Each server in a server pool is called a cluster node.


Figure 1 : The Oracle RAC architecture

Besides cluster nodes, an Oracle RAC database requires Oracle clusterware and shared pool storage. Oracle Clusterware provides a complete clustering solution and supports any application.  It is a prerequisite for all Oracle RAC implementations, and monitors and manages Oracle Real Application Cluster databases. When a server in the server pool is started, all instances, listeners and services are automatically started. If an instance fails, the Oracle Clusterware will automatically restart the instance so that the service is often restored before the administrator notices it was down.

Oracle Real Application Clusters is a shared everything architecture. All nodes in the cluster share all storage used for an Oracle RAC database. The type of storage pool used can be network attached storage (NAS), storage area network (SAN), or SCSI disks. Your storage choice is dictated by the server hardware choice and the hardware supported by your hardware vendor. The key to choosing an appropriate storage pool is choosing a storage system that will provide scaleable I/O for your application and an I/O system that will scale as additional servers are added to the pool.

To connect to an Oracle RAC database, applications use a virtual IP address. This IP address is assigned to each server in the cluster so that, if a node fails, the virtual IP is failed over to another node in the cluster to provide an immediate “node down”-response to incoming connection requests. This increases the availability for applications.

Owing to the high availability and load-balancing capabilities, clustered databases are often the preferred backend in many mission-critical IT infrastructures delivering key end-user services. This is why, the non-availability of a clustered database to an application, or a tablespace contention experienced by the clustered database, or an unusually high locking activity on the database, may cause the dependent end-user services to suffer. To avoid this, the Oracle RAC database should be continuously monitored. For this purpose, the eG Enterprise provides a specialized monitoring model.