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
| The external links in this article may not follow Wikipedia's content policies or guidelines. Please improve this article by removing excessive or inappropriate external links. |
- A Quick Reference for Oracle Database 10g RAC on Linux and Unix Platforms by Rich Headrick. (White paper on controlling RAC services, including discussion of startup and shutdown using the srvctl and crsctl commands. Retrieved 2007-11-08)
- Oracle Real Application Clusters (official website from Oracle Corporation)
- Oracle RAC SIG (an unofficial website on RAC)
- Oracle Blogs (several RAC-related blogs)
- A Step-By-Step Project Guide for Implementing Oracle RAC (An Oracle Technology Network site. Retrieved 2007-09-09)
- "RACing ahead with Oracle on VMware" by Tarry Singh. A simple approach to learn/test Oracle RAC. (Note: not intended for a production-environment.] Retrieved 2007-12-05
[edit] Bibliography
- Gopalakrishnan, K : Oracle Database 10g Real Application Clusters Handbook. McGraw-Hill Osborne Media (Oracle Press): 2006. ISBN 978-0071465090
[edit] References
- ^ Options and Packs
- ^ Introduction to Oracle Real Application Clusters
- ^ Thomas, Bryan (2006-05-30). Solutions for Highly Scalable Database Applications: An analysis of architectures and technologies (PDF). Microsoft. Retrieved on 2007-09-09.

