Oracle Real Application Clusters (RAC) are a way of accessing a database from multiple database servers. This provides some added high availability (HA) features over a single-instance database.
In this post, we talk about why you might choose Oracle RAC for your Oracle databases, and the different ways to implement similar architecture on AWS while staying with Oracle, providing the HA and disaster recovery (DR) features and performance features customers seek from Oracle RAC.
Customers who are running Oracle RAC are primarily doing it to satisfy one of the following criteria:
To meet explicit SLAs
Rolling upgrade feature of RAC
Applications heavily customized to use RAC’s Oracle Notifications Services (ONS)
The current workload needs more than 128 vCPUs
There are three Oracle database migration patterns:
Rehost – From Oracle to Amazon Elastic Compute Cloud (Amazon EC2)
Replatform – From Oracle to Amazon Relational Database Service (Amazon RDS) for Oracle
Re-architect – From Oracle to open-source and AWS managed databases
If you want to migrate to AWS while retaining Oracle services or features, you can choose from several AWS options. The following questions are critical to decide if the workload will necessitate maintaining Oracle RAC services:
Is the database read intensive or write intensive?
Does the application require read replica scaling?
What are the HA and DR requirements and SLAs?
What’s the current utilization of the RAC environment?
Running an Oracle AWR report can provide the details regarding your current utilization of the Oracle RAC implementation.
Oracle RAC alternative in AWS
The functionality and features offered by RAC are similar to strategies offered in the AWS cloud. These strategies include the following:
The high availability of RAC, allowing service to persist with only a brief interruption during server failure, is an automatic feature of EC2 and RDS instances in AWS. Workloads that fail due to hardware are automatically restarted on another host. In addition, for workloads that can tolerate almost zero downtime, Amazon RDS offers a Multi-AZ option to maintain a standby copy of a database that can be failed over automatically (and nearly instantly) in the case of an outage.
The scalability of RAC can be less important in a cloud environment where additional CPU, RAM, or disk resources are only a few clicks away. The ability to scale RDS for Oracle instances up or down in size on-demand is a powerful scalability tool.
Zero downtime rolling patching, an important RAC feature for 24/7 business-critical databases, can be accomplished with Oracle GoldenGate and standby instances. This requires a separate Oracle GoldenGate license and expertise related to the implementation and configuration of Oracle GoldenGate.
AWS provides several options that are cost-effective, performant, and highly available. As with any infrastructure platform decision for Oracle, the right option for you depends on your operational goals and the nature of your applications. We discuss these options in the following sections.
Amazon RDS for Oracle
Amazon RDS for Oracle is a managed database service that helps simplify the provisioning and management of Oracle databases. Amazon RDS for Oracle makes it simple to set up, operate, and scale a relational database in the cloud by automating installation, disk provisioning and management, patching, minor version upgrades, failed instance replacement, as well as backup and recovery tasks. The push-button scaling feature of Amazon RDS allows you to efficiently scale the database instance up or down for performance and cost-effectiveness.
Amazon RDS for Oracle offers both Oracle Database Enterprise Edition and Oracle Database Standard Edition. Amazon RDS for Oracle also comes with a license-included service model, which allows you to pay per use by the hour. The License included model is only applicable to Oracle Standard Edition.
The following diagram illustrates an example architecture.
Self-managed Oracle Database directly on Amazon EC2
This option gives you full control over the setup of the infrastructure and database environment. Running the database on Amazon EC2 is very similar to running the database on your own server. You have full control of the Oracle binaries database and have operating system-level access, so you can run monitoring and management agents and use your choice of tools for data replication, backup, and restoration. Furthermore, you have the ability to use every optional module available in Oracle Database.
However, this option requires you to set up, configure, manage, and tune all of the components; including EC2 instances, storage volumes, scalability, networking, and security based on AWS architecture best practices. With fully managed Amazon RDS, this is taken care of for you.
The following diagram illustrates an example architecture.
Oracle RAC on Amazon EC2 enabled by a FlashGrid Cluster engineered cloud system
FlashGrid Cluster virtual appliances enable running self-managed Oracle RAC and Oracle RAC extended clusters (across different Availability Zones) on Amazon EC2. With FlashGrid Cluster, you also have full control of the database and have operating system-level access. The following diagram illustrates an example architecture.
Self-managed Oracle Database directly on VMware Cloud on AWS
VMware Cloud on AWS is an integrated cloud offering jointly developed by AWS and VMware. Like Amazon EC2, you have full control of the database and have operating system-level access. You can run advanced architectures like Oracle RAC and Oracle RAC extended clusters (across different Availability Zones) in VMware Cloud on AWS. The following diagram illustrates an example architecture.
How AWS provides high availability and disaster recovery
AWS manages infrastructure resources based on geographical region and data center. In AWS, a separate geographical region is an AWS Region. An Availability Zone (AZ) is a separate set of isolated resources (data centers) within a Region.
The following are infrastructure redundancy best practices for disaster recovery:
For DR purposes, it’s recommended to distribute workloads across Regions. This provides the most insulation from disaster.
To make your workload highly available in AWS, we advise distributing EC2 resources across Availability Zones. This allows for close network connectivity while providing isolated server and storage redundancy.
Although Multi-AZ in AWS makes for a good HA solution for Amazon EC2, Amazon Elastic Block Store (Amazon EBS) storage is isolated to a single Availability Zone, so the data for an application must be replicated.
AWS provides DR solutions for data replication. An EBS volume can have a snapshot taken to a different Availability Zone. Once the snapshot exists, it can be copied to a different Region. Using a snapshot of an EBS volume requires some form of configuration, recovery (potentially), and failover before it’s useful to the application, which makes snapshots a DR solution, not an HA solution.
High availability requires that the data be immediately available upon disruption to the primary data source. In other words, if the primary database goes down, you need an active copy ready to accept connections. One way to do this in AWS is to use Oracle database replication technologies to perform the data replication.
In the following sections, we provide more details regarding four service options.
Amazon RDS offers the following benefits:
With Amazon RDS Multi-AZ, you get enhanced availability and durability for database instances within a specific Region. This is often an effective DR solution for most use cases.
You can use RDS for Oracle read replicas when running mission-critical databases with a business requirement for your DR configuration to span across different Availability Zones or Regions. At the same time, you want to use your DR investments to handle some of your production read workloads in another Region closer to the users.
RDS for Oracle mounted DB replicas are ideal if you just need DR but don’t have the requirement to route your read workloads to the replica.
You can also opt for logical replication for self-managed DR via AWS Database Migration Service (AWS DMS) and Oracle GoldenGate.
The following table showcases the Recovery Point Objective (RPO) and Recovery Time Objective (RTO) that you can attain with various HA and DR capabilities Amazon RDS for Oracle.
Amazon EC2 offers the following benefits:
Oracle databases on Amazon EC2 support Oracle Data Guard, Oracle Active Data Guard, and Oracle GoldenGate options.
Third-party solutions available in AWS Marketplace also support replication for Oracle databases.
You can use both Oracle and third-party solutions to replicate databases within a Region and across Regions.
You can replicate Oracle databases to and from your on-premises data centers.
You can use AWS DMS to replicate all or a subset of tables.
GoldenGate with active/passive databases will get you similar results as compared to RAC’s level of HA.
FlashGrid Cluster engineered cloud system
FlashGrid Cluster offers the following benefits:
FlashGrid Cluster is a virtual cloud appliance that provides the infrastructure capabilities required for running Oracle RAC on Amazon EC2. This includes multicast support and shared storage.
For maximizing database uptime SLA, FlashGrid Cluster allows spreading Oracle RAC nodes across different Availability Zones.
FlashGrid Cluster is delivered as an AWS CloudFormation template with fully automated deployment of the infrastructure components and Oracle software.
FlashGrid software and support fees are billed through AWS Marketplace.
FlashGrid Cluster offers Oracle GoldenGate with active/active and active/passive databases.
VMware Cloud on AWS
VMware Cloud on AWS offers the following benefits:
Because Oracle Database is self-managed within VMware Cloud on AWS, you can use Oracle Data Guard or Oracle GoldenGate to replicate databases across Regions or to your on-premises data center.
You can use VMware native technologies such as vMotion or Hybrid Cloud Extension (HCX) to migrate databases between on-premises data centers and VMware Cloud on AWS.
For large deployments involving multiple layers of application and database VMs, consider using VMware Site Recovery Manager (SRM) to orchestrate replication and migration at site level.
You can install Oracle RAC on VMware Cloud on AWS since Oracle RAC VMware Cloud on AWS has capabilities for multicast support and shared storage.
Each Software Defined Data Center (SDDC) in VMware Cloud on AWS can run at minimum 3 AWS bare metal hosts and at maximum 16 AWS bare metal hosts.
Regardless of the infrastructure on which you’re running, AWS is designed with a high level of fault tolerance. AWS services are designed to help you eliminate lengthy unscheduled outages as much as possible.
In this post, we showed you several alternatives when implementing Oracle RAC on AWS Cloud. We discussed several RAC alternatives like RDS for Oracle, Self-managed EC2 on Oracle, VMware Cloud on AWS, and Flash Grid Cluster on AWS. We also discussed how the implementation for each one of them differ, and also the benefits of each option. This post can help you make a decision if you are looking to move Oracle RAC workloads to AWS.
If you have questions or suggestions, please leave a comment.
About the Authors
Vishal Srivastava is a Senior Partner Solutions Architect specializing in databases at AWS. In his role, Vishal works with ISV Partners to provide guidance and technical assistance on database projects, helping them improve the value of their solutions when using AWS. He also works with Public Sector ISV Partners to help them design scalable, secure, performant, robust database architectures in the AWS Cloud.
Vineet Agarwal is a Senior Database Specialist Solutions Architect with Amazon Web Services (AWS). Prior to AWS, Vineet has worked for large enterprises in financial, retail and healthcare verticals helping them with database and solutions architecture. In his spare time, you’ll find him playing poker, trying a new activity or a DIY project.
Read MoreAWS Database Blog