A cluster can be defined as a set of server instances that appear to be a single server to the customer. Clustering delivers two main benefits: improved availability and better performance. Users can connect through any server in the cluster so if one server goes down, the other servers will take over the failed server workload. Performance is improved by the ability to run work in parallel over several instances on different servers, and if necessary, extra servers can be added to the cluster to improve performance (or removed from the cluster if too much resource is allocated).
Oracle RAC (Real Application Clusters) is a database or set of databases that are clustered on a set of servers using Oracle supplied software called Oracle Clusterware and Oracle Automatic Storage Management (ASM). Oracle RAC was first introduced with Oracle 9i. An Oracle RAC cluster can have up to 100 instances and each Oracle instance usually runs on a separate server. At its simplest, Oracle RAC is a single database that is accessed and shared by several Oracle instances running on separate servers as shown below.
Since all instances in a RAC access the same database, the overall system must guarantee data integrity so that a computer always retrieves the current version of any data even if it was just updated by another instance in the cluster. This process is called Cache Fusion, as Oracle RAC essentially "fuses" the in-memory data cached physically separately on each server into a single, global cache. Each instance has a buffer cache in its System Global Area (SGA). Using Cache Fusion, Oracle RAC environments logically combine each instance's buffer cache to enable the instances to process data as if the data resided on a logically combined, single cache. If an instance wants to get data that has already been retrieved by another instance, Cache Fusion delivers the data from the cache copy, rather than retrieving it from disk again. Cache Fusion communicates between instances using a dedicated inter-connect network.
While it is possible set up a RAC cluster with servers in different data centres, RAC Oracle RAC is usually used to cluster a database within a single datacentre. If you need to cluster between datacentres for site resilience, then Oracle Dataguard is the better option. It is also possible to combine both and run Data Guard on a RAC cluster.
An Oracle RAC database is a shared everything database. All data files, control files, SPFILEs, and redo log files in Oracle RAC environments must reside on cluster-aware shared disks so that all of the cluster database instances can access these storage components. All database instances must use the same interconnect, which can also be used by Oracle Clusterware. Because Oracle RAC databases use a shared everything architecture, Oracle RAC requires cluster-aware storage for all database files.
TSM just acts as a datastore when working with RMAN, Oracle RMAN does all the work of initiating and managing the backups. When using TSM with Oracle RAC, a TSM client must be installed on every node, or server in the RAC cluster. The TSM page for Oracle details how to set up a standard Oracle client. There is nothing special about configuring TSM to work with Oracle RAC, except that you must:
If you are running a combined RAC / Data Guard cluster, then you would usually run your primary database from one data centre and the secondary database from the other. See the Data Guard page for details