Oracle 19c was released in January 2019 and is the final release of the Oracle 12.2 family. Customers using PowerEdge servers virtualize the server resources for running an Oracle database instance using VMware vSphere 7.0. Any lingering concerns that Oracle customers have about support for their databases on VMware vSphere were addressed at the 2019 Oracle Open World event. At the conference, Oracle representatives announced a Strategic Partner Alliance between Oracle and VMware to deliver Oracle Cloud Infrastructure VMware Solutions along with a joint support agreement. Now Oracle database customers can be sure that they will receive support from Oracle when their database has been virtualized using VMware vSphere.
The best practices for virtualizing Oracle databases and RAC nodes on VMware are well documented. For example, when allocating memory to a VM for production Oracle databases, the goal is to set a memory reservation large enough to avoid possible performance problems. A memory reservation dedicates memory to the VM, ensuring that no other VM can use that memory grant. In our test case, the memory reservation was set to the sum of the Oracle System Global Area (SGA), plus the Oracle Program Global Area (PGA), plus any database background processes and the operating system. For nonproduction databases, database administrators (DBAs) can choose to overcommit memory for greater consolidation.
Table 2. Oracle SGA and PGA sizes relative to VM vMem reservation
Node Type |
Database type |
Virtual machine number |
SGA memory size (GB) |
PGA memory size (GB) |
vMem reservations (GB) |
Production RAC node1 |
Oracle |
VM 1 |
64 |
16 |
128 |
Production RAC node2 |
Oracle |
VM 2 |
64 |
16 |
128 |
Software developers frequently want access to either a production or nonproduction environment configured with a consistent high-availability technology that is used across all configurations. The test cases that are documented in this white paper were developed to accommodate that need and validate our solution. In the first test case, we show how to configure an Oracle RAC production system with support for a separate test/dev environment that also uses Oracle RAC. Oracle RAC is a clustered database solution that uses a shared-cache architecture to accelerate access to a shared-database implementation. Oracle RAC enables multiple nodes that scale out client requests, service database job requests, and provide resiliency in case of a node failure. Oracle RAC configurations with two or more nodes can protect an Oracle instance from unplanned downtime in the event of a node failure because the remaining one or more nodes can continue to process database jobs. The figure below shows the Oracle RAC configuration that we used in our test cases.
Figure 1. Virtualized Oracle RAC architecture
We used two dedicated Dell EMC PowerEdge R740 servers to simulate a production Oracle RAC environment for testing high availability. This is a common Oracle RAC architecture that offers greater resiliency than a single instance. RAC also offers greater scalability because both nodes are always active.