Oracle does not recognize third party soft partitioning technologies when it comes to licensing database instances using the Processor metric (see Part 1 of this blog series). As a result, installing an Oracle database instance on a virtual machine (VM) hosted by a VMware ESX server could be extremely costly. It could be even more costly in a cluster environment, as all processors of all machines within the cluster must be licensed. There are a few ways to mitigate these constraints. Only the Oracle Processor license is considered below.
For small deployments and assuming no options from the Enterprise Edition are needed, the Oracle Database Standard Edition One can be used. This edition is for single server environments, limited to two processors (sockets) with a current price of $5,800 per processor. All sockets in a server must be licensed regardless if they are populated or not, but each of the two processors can contain an unlimited number of cores providing some scalability.
The Standard Edition is also licensed per socket but offers additional features. Up to 4 physical sockets can be licensed for a physical host. This edition can be installed in a cluster environment; however the total number of physical sockets across all hosts constituting the cluster cannot exceed 4. Again, in this case, each processor (socket) can contain an unlimited number of cores.
The cost of the Enterprise edition is currently $47,500 per processor (core) and the Standard Edition $17,500 per processor (socket). If a server or a cluster is equipped with Intel Xeon E7-8870 Processors, supporting up to 10 cores, the calculation for a 4 socket server or cluster is:
- Standard Edition: 4 (sockets) x $17,500 = $70,000
- Enterprise Edition: 4 (processors) x 10 (cores/processor) x 0.5 (core factor) x $47,500 = $950,000
A significant saving is obtained with the Standard Edition, and once the physical server or cluster is licensed, an ‘unlimited’ number of virtual machines supporting Oracle databases can be added. Scalability can be provided through a high number of cores on each server.
Oracle Real Application Clusters (RAC) is included in the Standard edition enabling multiple Oracle instances to share the same database: this provides scalability and fault tolerance, in case of a hardware failure or planned outages. If a server node fails, the database continues to run on the remaining servers in the pool.
For higher end Oracle databases, the Enterprise Edition is required. Database options such as Partitioning, allowing tables and indexes to be subdivided into smaller pieces, are usually mandatory to assure the performance of large databases. Management packs such as the Tuning Pack, which automates the tuning process, and the Diagnostics Pack used to diagnose and monitor performance, are used by most Oracle customers. They are not provided with the Standard editions and cannot be added to them.
A common bad practice is to have a small Oracle database on a single VMware virtual machine on a VMware ESX server, or worse, in a VMware cluster. In large organizations, I have seen this situation many times, usually as an outcome of a datacenter virtualization initiative. In this case the full server or cluster must to be licensed. One solution is to reverse the virtualization and isolate the Oracle database outside of the cluster on a physical machine; this will usually be a more affordable option. In many cases, other databases exist across the organization, and the best practice is to consolidate them all on the same server or cluster. Again, once the physical server or cluster has been fully licensed for the first Oracle database instance, an unlimited number of virtual machines supporting additional Oracle database instances can be added to the server or cluster without requiring any new Oracle (processor) licenses.
There have been a lot of questions in the past about the compatibility between Oracle and VMware. There is no mention of VMware ESX as a recognized technology in the Oracle documentation. Oracle has not certified it but will provide support for Oracle product related issues in a VMware virtualized environment. This support is limited to issues that can be reproduced on an instance of the product installed on a non-virtualized OS. Full support from VMware is available—VMware support will work with their customers toward the resolution of an issue regardless of which vendor (VMware, Oracle or others) is responsible for the resolution. Many customers have installed Oracle databases on Windows Virtual Machines hosted by VMware ESX servers. There are many documents, white papers and articles from VMware and their customers related to the performance and reliability of Oracle running on VMware ESX; all of them demonstrate the viability of this architecture. For instance the Oracle Database Scalability in VMware® ESX document demonstrates that “when running multiple virtual machines with Oracle database workloads on VMware ESX 3.5, the individual performance remains close to that of the Oracle database workload in a single virtual machine, while CPU utilization scales in a nearly linear fashion.”