Oracle RAC

From Wikipedia, the free encyclopedia

Jump to: navigation, search

In database computing, Oracle Real Application Clusters (RAC) — an option [1] for the Oracle Database software produced by Oracle Corporation and introduced in 2001 with Oracle9i — provides software for clustering and high availability in Oracle database environments. RAC is included with the Standard Edition of Oracle Database, but it is an extra-charge option for the Enterprise Edition. [2]

Contents

[edit] Functionality

Oracle RAC allows multiple computers to run Oracle RDBMS software simultaneously while accessing a single database, thus providing a clustered database.

In a non-RAC Oracle database, a single instance accesses a single database. Where the "database" consists of a collection of data files, control files, and redo logs located on disk; the "instance" comprises the collection of Oracle-related memory and operating system processes that run on a computer system.

In an Oracle RAC environment, two or more computers (each with an instance) concurrently access a single database. This allows an application or user to connect to either computer and have access to a single coordinated set of data.

[edit] Benefits

Since Oracle RAC allows multiple computers (instances) to access a single database simultaneously, it addresses several areas of database management. These areas include:

[edit] Implementation

Oracle RAC depends on the infrastructure component Oracle Clusterware to coordinate multiple servers and their sharing of data storage.[3]

[edit] Cache Fusion

Prior to Oracle 9, network-clustered Oracle databases used a storage device as the data-transfer medium (meaning that one node would write a data block to disk and another node would read that data from the same disk), which had the inherent disadvantage of lackluster performance. Oracle 9i addressed this issue, and RAC uses a dedicated network-connection for communications internal to the cluster.

Since all computers/instances in an RAC access the same database, the overall system must guarantee the coordination of data changes on different computers such that whenever a computer queries data it receives the current version — even if another computer recently modified that data. Oracle RAC refers to this functionality as Cache Fusion. Cache Fusion involves the ability of Oracle RAC to "fuse" the in-memory data cached physically separately on each computer into a single, global cache.

[edit] Evaluation

Relative to a single-instance Oracle database, Oracle RAC adds additional complexity that can become overwhelming without investment in appropriate training and management tools. While database automation makes sense for single-instance databases, it becomes even more necessary for clustered databases because of their increased complexity.

Oracle Real Application Clusters (RAC), introduced with Oracle9i, is the successor to Oracle Parallel Server. However it required an external clusterware (known as vendor clusterware like Veritas or Sun Cluster) for most of the Unix flavors (except for Linux and Windows where oracle provided free clusterware called Cluster Ready Services or CRS). By Oracle 10g, Oracle's clusterware product was available for all operating systems. With the release of Oracle Database 10g Release 2 (10.2), Cluster Ready Services was renamed to Oracle Clusterware. When using Oracle 10g or higher, Oracle Clusterware is the only clusterware that you need for most platforms on which Oracle RAC operates (except for Tru cluster, in which case you need vendor clusterware). You can still use clusterware from other vendors if the clusterware is certified for Oracle RAC.

In RAC the node performing the write-transaction must take ownership of the relevant area of the database: typically this involves a request across the cluster interconnection (local IP network) to transfer the data-block ownership from another node to the one wishing to do the write. This takes a relatively long time (from few milliseconds to tens of milliseconds) compared to single database-node using in-memory operations. For many types of applications, the time spent coordinating block access across systems is low relative to the many operations on the system, and RAC will scale comparably to a single system. Also, high read-transactional databases (such as data-warehousing applications) work very well under RAC, as no need for ownership-transfer exists. (Oracle 11g has made many enhancements in this area and performs a lot better than earlier versions for read-only workloads[citation needed].)

The overhead on the resource mastering (or ownership-transfer) is very minimal when you have more than three nodes, as the request for any resource in the cluster can be obtained in a maximum of three hops (owner-master-requestor). This makes Oracle RAC horizontally scalable with many nodes. Application vendors (such as SAP) use Oracle RAC to demonstrate the scalability of their application. Most of the biggest OLTP benchmarks are on Oracle RAC. Oracle RAC 11g supports up to 100 nodes[4]. Although this is the concept, in many real implementations, RAC shows negative scalability (means as the number of nodes increases, performance decreases). This is because all the nodes need to co-ordinate each other to get a resource like locks and all the nodes are supposed to update same control file, in addition to that above mentioned inter-node block transfer also creates a big bottleneck in the performance. So usage of RAC for OLTP systems and its saleability is still a debatable point.

For some applications, RAC may require careful application-partitioning to enhance performance. An application which scales linearly on an SMP machine may scale linearly under RAC. However, if the application cannot scale linearly on SMP, it will not scale when ported to RAC. In short the application scalability is based on how well the application scales in a single instance.

[edit] Competition

Shared Everything

Apart from Oracle RAC, other commercially-available databases offer a "shared-everything" architecture. IBM DB2 for z/OS (the IBM mainframe operating-system) has provided a high-performance data-sharing option since the mid 1990s when IBM released its mainframe hardware and software-clustering infrastructure.

In February 2008, Sybase released its Adaptive Server Enterprise, Cluster Edition. It is similar to Oracle RAC in its shared everything design. See Sybase ASE Cluster Edition's data sheet here for details.

Although technically not shared everything, Sybase also provides a column-based relational database focused on analytic and datawarehouse applications called Sybase IQ which can be configured to run in a shared disk mode.

Shared Nothing

Competitive products offering shared-nothing architectures include:

Shared-nothing and shared-everything architectures each have advantages over the other. DBMS vendors and industry analysts regularly debate the matter; for example, Microsoft touts a comparison of its SQL Server 2005 with Oracle 10g RAC by Performance Tuning Corporation.[5]

[edit] External links

[edit] Bibliography

[edit] References

Personal tools
Languages