In this entry of our series on databases in the cloud, we look at some of the features provided by two leading public cloud providers and some challenges while deploying Oracle to those clouds, plus take a look at what NetApp’s Cloud Volumes ONTAP brings to cloud-based database.
What is Oracle Database?
Oracle is one of the most widely-used DBMS solutions in the enterprise arena owing to its low RTO and reliability. Other features such as scalability, platform neutrality, enterprise HA and DR features, performance capabilities, security, and multi-tenancy ensure that it is the choice of database when considering enterprise workloads such as enterprise resource planning (ERP) and data warehouse-based applications.
With all of that functionality, there are a lot of moving parts to shift over to the cloud. So how does Oracle work on AWS and Azure? Let’s take a closer look.
Running Oracle on AWS
Amazon Relational Database Service (RDS) for Oracle Database
One of the most common methods of deployment of Oracle databases in AWS is Amazon Relational Database Service (RDS) for Oracle database. This managed service model provides the simplest mechanism of deploying, managing and scaling a highly-available Oracle database in the cloud. Apart from the ease of use, it also provides automated backup and patching of the Oracle database instances.
Amazon RDS Oracle deployment is the simplest way to run Oracle on AWS, however there are several considerations to keep in mind. For example, the DBA role would not have “Alter Database” or “Grant any privilege” roles. In addition to restricting these advanced privileges, it also has an IOPS limit of 40,000 IOPS, a storage limit of 16 TB, no Telnet or SSH access to the database host, as well as restrictions in database nomenclature.
Oracle Databases on Amazon EC2 Instances
Another form of Oracle deployment on AWS that might help overcome the challenges mentioned above is the deployment of an Oracle database in the cloud using Amazon EC2 instances. In this scenario, the BYOL licensing is employed where the end-user is responsible for proper licensing, compute sizing, and management of databases. It is recommended to use security features like Oracle SSL, private subnet, and NAT gateways to properly secure your database instances. See more about how using Amazon EC2 for database can overcome some of the Amazon RDS challenges.
The AWS global infrastructure is geographically divided into regions. These regions have multiple Availability Zones (AZ) that are isolated locations consisting of one or more data centers. These AZs are interconnected through high-speed links. This allows scaling up your database instance to a high availability (HA) model using Oracle’s Data Guard Feature. This can be used for a multi-AZ deployment where your primary Oracle database instance is replicated to a secondary database in a different Availability Zone. This setup can also be employed in the Amazon EC2 model, where a primary-secondary relationship is set up between virtual machines in different AZs using various Data Guard protection modes. To extend this further for disaster recovery and greater stability, the Data Guard replication can be set up between instances in different regions.
One of the most common methods to create Oracle database backups is to use the Oracle Secure Backup module, which uses Oracle Recovery Manager (RMAN) to backup databases to Amazon S3 buckets. This can also be automated by using scheduling tools like Crontab. Another method is to take snapshots of the Amazon EBS volumes after the database instance has been shut down.
Running Oracle on Azure
Although Azure provides managed database services for SQL and NoSQL products, at the time of writing this article, there are no managed services for Oracle. Oracle instances on Azure can be deployed via Oracle published Virtual Machine Images based on Oracle Linux, which are found in the Azure Marketplace. These are licensed using the BYOL model and apart from the active Oracle Database License, the user is also charged for the compute, storage (where premium managed disks are recommended), and network costs incurred by the VM. A common use case and recommendation when it comes to storage is to use multiple managed disks and use Oracle Automatic Storage Management (ASM) to spread the data across these disks. This results in higher IOPS (collective IOPS from the attached disks).
The Oracle Linux images can be managed by either SSHing into the Linux VM or using the Oracle EM Express GUI Tool. When it comes to scaling Oracle instances horizontally using Oracle RAC, it is not supported natively but there are third-party tools in the Azure Marketplace that are certified by Azure for this purpose. Having said that, technologies such as Data Guard, Active Data Guard, and Golden Gate can be used to architect HA and DR solutions. For HA purposes, replication can be set up using the various Data Guard protection modes to replicate between a primary database in a virtual machine to a secondary database in another virtual machine. It is recommended to keep these VMs in the same virtual network and their availability set so that they are placed in different fault and upgrade domains. In this way, the database copies are protected against scheduled maintenance and unscheduled downtime.
This use case can be extrapolated further to a DR scenario where the replication happens between databases in two different regions and the virtual machine instances are connected through a VPN Gateway. These can even be implemented for hybrid scenarios where the cloud instance is treated as a DR instance or vice versa. Unlike Active Guard, Golden Gate allows bidirectional replication, thus allowing an active-active architecture. Oracle databases in Azure can also be backed up via RMAN and using application-consistent Azure Backup.
Added Value and Advantages of Cloud Volumes ONTAP
Cloud Volumes ONTAP for AWS storage or Azure storage offers additional benefits for running Oracle databases in the cloud that users just can’t get using the public cloud alone. It provides data protection and availability, which in turn translates to zero RPO and minimal RTO using a high availability mode option. With this setup, two different Cloud Volumes ONTAP nodes can be hosted in different Availability Zones. This provides an alternate option to Oracle Data Guard, although the Data Guard protection modes also integrate seamlessly with Cloud Volumes ONTAP.
Using Cloud Volumes ONTAP’s data efficiency features such as compression, inline data compaction, and deduplication can result in significant cost savings especially as data change rates in Oracle can increase rapidly. Further space management can be achieved especially in space consumed by snapshot copies by using volume-autogrow and snapshot-autodelete policies. This can prevent the failure of Oracle databases because of a lack of free space during operations like datafile extension. The data tiering feature provides further cost savings and significant performance improvement during snapshot and restore operations.
Another great feature leveraged by Cloud Volumes ONTAP is FlexClone® technology, which can significantly simplify your DevOps processes. One of the most common use cases in DevOps is to have a staging environment where tests are performed and then pushed to production. In a normal DevOps lifecycle, this would entail creating a copy of the production which can span several TBs using tools like GoldenGate or Oracle DataPump. FlexClone allows you to create instantaneous clone volumes, which is a writable layer on top of a snapshot that only consumes space for data that is changed, not for the full copy.
While both Azure and AWS provide proprietary data migration options with AWS Database Migration Service and Azure Data Factory, NetApp offers SnapMirror® data replication, which can easily migrate data from on-premises NetApp arrays into the cloud. There is also Cloud Sync, which can migrate from disparate platforms such as on-premises NFS shares or Amazon S3 buckets. These solutions provide easy-to-use, cost-effective, and highly performant alternatives.
Running an Oracle database in the cloud provides cost savings, durability, availability, and scalability options without any significant investment in equipment and hardware. While Oracle itself has begun offering Oracle cloud services with the new Oracle Cloud Platform, for the most part, Azure and AWS still dominate the cloud database market. To take advantage of either of these options, you have to ensure you understand the nuances such as RAC support, DBaaS limitations, and licensing terms before you make the jump. As we’ve seen in this installment of our series on cloud databases, Cloud Volumes ONTAP can help you do that.
For more in our series on cloud databases check out the previous entries on database challenges, SQL, and the next part which will focus on NoSQL databases.