Oracle RAC

From Wikipedia, the free encyclopedia

In database computing, Oracle Real Application Clusters (RAC) — an extra-charge[1] option for the Oracle Database software produced by Oracle Corporation — provides software for clustering and high availability in Oracle database environments.

Contents

[edit] Functionality

Oracle RAC allows multiple computers to run the 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 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.[2]

[edit] Cache Fusion

Prior to Oracle 9i, 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

Oracle RAC has internal complexity that can become overwhelming without expenditure on appropriate resources. While database automation makes sense for single-instance databases, it becomes even more necessary for clustered databases because of their increased complexity.

Like many other database-clustering technologies, Oracle RAC can experience difficulties when supporting a large number of database-write transactions when many nodes (typically more than 4) participate in a single cluster.[citation needed] 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 memory-operations. Conversely, 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].)

RAC requires careful application-partitioning to enhance performance. An application which scales linearly on an SMP machine may scale linearly under RAC. However, if the application can not scale linearly on SMP, it will not scale when ported to RAC.

[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.

Shared Nothing

Competitive products offering shared-nothing architectures include:


Note for the sake of comparison that the Google search-engine, although not a relational database system, exemplifies a clustered system implemented using the shared-nothing approach.[citation needed]

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.[3]

[edit] External links

[edit] Bibliography

  • Gopalakrishnan, K : Oracle Database 10g Real Application Clusters Handbook. McGraw-Hill Osborne Media (Oracle Press): 2006. ISBN 978-0071465090

[edit] References

Languages