Real Application Clusters
Real Application Clusters
Contents
[hide]
1 Functionality
2 Aims
3 Implementation
4 Versions
5 Evolution
6 Competitive context
6.1 Shared-Everything
6.2 Shared-Nothing
7 See also
8 References
9 External links
Functionality[edit]
Oracle RAC allows multiple computers to run Oracle RDBMS software simultaneously
while accessing a single database, thus providing clustering.
In a non-RAC Oracle database, a single instance accesses a single database. 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, 2 or more computers (each with an Oracle RDBMS
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.
Aims[edit]
The main aim of Oracle RAC is to implement a clustered database to provide
performance, scalability and resilience.
Implementation[edit]
Oracle RAC depends on the infrastructure component Oracle Clusterware to coordinate
multiple servers and their sharing of data storage.[3] The FAN (Fast Application
Notification) technology detects down-states.[4] RAC administrators can use the srvctl
tool to manage RAC configurations,[5]
Cache Fusion[edit]
Prior to Oracle 9, network-clustered Oracle databases used a storage device as the datatransfer 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: RAC uses a dedicated network
connection for communications internal to the cluster.
Since all computers/instances in a 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.
Versions[edit]
Oracle Real Application Clusters One Node (RAC One Node) applies RAC to
single-node installations running Oracle Database 11g Release 2 Enterprise
Edition.[6]
Evolution[edit]
Relative to the single-instance Oracle database, Oracle RAC adds additional complexity.
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 in 2001, supersedes
the Oracle Parallel Server (OPS) database option. Whereas Oracle9i required an external
clusterware (known as vendor clusterware like Veritas Cluster Server 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), as of 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 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 a few 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.[citation needed]
Moreover, 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 minimal for fewer than
three nodes, as the request for any resource in the cluster can be obtained in a maximum
of three hops (owner-master-requestor).[citation needed] 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.[7]
For some[which?] applications, RAC may require careful application partitioning to
enhance performance. An application that 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.
Competitive context[edit]
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.[8]
Oracle Corporation offered a Shared Nothing architecture RDBMS with the advent of the
IBM SP and SP2 with the release of 7.x MPP editions, in which virtual shared drives
(VSD) were used to create a Shared Everything implementation on a Shared Nothing
architecture.
Shared-Everything[edit]
"Shared-everything" architectures share both data on disk and data in memory between
nodes in the cluster. This is in contrast to "shared-nothing" architectures that share none
of them.
Some 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 late 2009, IBM announced DB2 pureScale, a
shared-disk clustering scheme for DB2 9.8 on AIX that mimics the parallel sysplex
implementation behind DB2 data sharing on the mainframe.
In February 2008, Sybase released its Adaptive Server Enterprise, Cluster Edition. It
resembles Oracle RAC in its shared-everything design.[9]
Although technically not shared-everything, Sybase also provides a column-based
Shared-Nothing[edit]
"Shared-nothing" architectures share neither the data on disk nor the data in memory
between nodes in the cluster. This is in contrast to "shared-everything" architectures,
which share both.
Competitive products offering shared-nothing architectures include:
ScaleBase[11]
Clustrix
HP NonStop
MarkLogic
Greenplum
Paraccel
Teradata
Vertica
Apache_Cassandra
Apache_HBase
MongoDB
Couchbase Server
Riak
SAP HANA
MapR-DB
See also[edit]
References[edit]
Jump up ^ Options and Packs
Jump up ^ Oracle Database Editions
Jump up ^ Introduction to Oracle Real Application Clusters
Jump up ^ Mensah, Kuassi (2006). Oracle database programming using Java and
Web services. Digital Press. p. 1087. ISBN 978-1-55558-329-3. Retrieved 201109-11. The Fast Application Notification (FAN) mechanism [...] allows the rapid
detection of "Instance DOWN" or "Node DOWN events [...]
Jump up ^ Stoever, Edward (2006). Personal Oracle RAC Clusters: Create Oracle
10g Grid Computing At Home. Oracle In-focus Series. Rampant TechPress. p.
119. ISBN 9780976157380. Retrieved 2013-05-30. An RAC database
configuration requires extra tools to manage the software and its instances. One
such tool is srvctl, used to startup, shutdown and check the status [of] a RAC
database.
Jump up ^ "Oracle Real Application Clusters One Node: Better Virtualization for
Databases". Find White Papers. 2009-12-09. Retrieved 2010-04-19. Oracle RAC
One Node provides: . Always on single-instance database services . Better
consolidation for database servers . Enhanced server virtualization . [,,,] should
the need arise, upgrade to a full multi-node Oracle RAC database without
downtime or disruption. [...] Oracle Real Application Clusters (RAC) One Node is
a new option to Oracle Database 11g Release 2 Enterprise Edition. It provides
enhanced high availability for singleinstance databases,
Jump up ^ "clustering". Oracle.com. Retrieved 2012-11-07.
Jump up ^ Thomas, Bryan (2006-05-30). "Solutions for Highly Scalable Database
Applications: An analysis of architectures and technologies" (PDF). Microsoft.
Retrieved 2007-09-09.
Jump up ^ "Sybase.com". Sybase.com. Retrieved 2012-11-07.
Jump up ^ "Oracle buys Finnish open-source developer". InfoWorld. October 7,
2005. "Oracle Buys SUN; MySQL is Forked". Linux Magazine. April 20, 2009.
Jump up ^ http://www.scalebase.com/products/product-architecture/