Today I’ve chosen to blog about Oracle database licensing policy for two reasons. First, My experience with Oracle databases always revolved around the performance tuning work, so I never had to bother about licensing bits. In last few months quite number of times some friends in my network approached me about how Oracle license its products. In latest situation, at my workplace I’ve been asked to review the Oracle licenses for a large data center with virtualized environment. Secondly technology has evolved very fast in recent years. Virtualization and Cloud computing has really made the licensing policies more complex. This triggered me to dig into the details and write about it.
My intent is to discuss about Oracle policies for educational purpose and if you are planning to buy/renew Oracle license for your environment, I strongly recommend to refer official Oracle policies. Some of the links, I have mentioned at the end for your reference.
With the intention to make this post self-contained, I have discussed some additional things which are related to licensing policies like different Oracle database editions, hardware terminology, Cloud computing etc.
Without further ado, let’s start our discussion with licensing for an Oracle database running on physical servers (non-virtualized environments). Licensing requirements in this case depends on database edition, software environment and whether you want to license based on named users or number of processors. Before delving into actual details, let me quickly touch base on these criteria.
Database environment: Typically we can differentiate database environments into three categories:
- Development Environment
- Test Environment
- Production Environment
You can use full database licenses for development OR optionally you can download absolutely free database software from Oracle Technology Network (OTN). In order to download an Oracle product from OTN, you have to accept the OTN Development License. According to this agreement, user can use the licensed product for development purpose and has not the right to deploy applications. Please refer references section for further details on OTN licensing. Test and Production environments must be fully licensed and OTN option is only available for development environments.
Now a brief discussion about various Oracle database editions. Oracle database comes in five flavors or edition, each suitable for different scenario.
- Express Edition: This is an entry-level, small-footprint database that’s free. Of course it comes with certain restrictions, It can be installed on any size host machine with any number of CPUs (one database per machine), but can store up to 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine.
- Personal Edition: This edition of an Oracle Database is designed to provide software developers a cost effective, yet full featured Oracle Database environment without technical limits.
- Standard Edition One: It is an affordable, full-featured database for servers with up to two sockets.
- Standard Edition: Standard Edition is an affordable, full-featured database for servers with up to four sockets.
- Enterprise Edition: The Oracle Database Enterprise Edition (EE) offers industry-leading database solution without any restriction.
For further differences between various database editions, refer MOS Doc ID 465455.1
Now let’s take a step further, and discuss hardware terminologies:
- Socket: Physical receptacles on server main boards that accommodate CPU packages. Our laptop has 1 socket.
- CPU package: A silicon die which fit into socket.
- CPU core: The core is a self contained execution unit on the silicon die and capable of doing processing. Multi-core CPUs have multiple execution cores on the single piece silicon die.
These days most of the processors are of multicore capability (dual and quad core, also called 2-way and 4-way respectively). This means that a single physical package has more than one execution core. Thus a server can have multiple physical sockets and a single physical socket in turn can accommodate a package with more than one execution core. This means a machine with 2 physical sockets, can accommodate 4 CPUs; and if each package is dual core, we have 8 cores of execution.
License Metrics: Oracle database can be licensed using two metrics, Named User Plus or Processor with the exception of the Personal Edition which can only be licensed using the Named User Plus metric.
The Named User Plus metric is used in environments where users (or non-human devices accessing the database, for eg temperature monitoring device) can be easily identified and counted. The Processor metric is used where users cannot be easily identified and counted, such as internet-based applications. The Processor metric is also used when it is more cost effective than Named User Plus licenses.
Let’s start with Named User Plus licensing for different database editions:
- Standard Edition One can only be licensed on servers that have a maximum capacity of 2 sockets. It requires a minimum of 5 Named User Plus licenses or the total number of actual users, whichever is greater.
- Standard Edition can only be licensed on servers that have a maximum capacity of 4 sockets. It requires a minimum of 5 Named User Plus licenses or the total number of actual users, whichever is greater.
- The Enterprise Edition requires a minimum of 25 Named User Plus per Processor licenses or the total number of actual users, whichever is greater.
Example: A customer who wants to license the Database Enterprise Edition on a 4-way box will be required to license a minimum of 4 processors * 25 Named User Plus, which is equal to 100 Named User Plus.
Oracle’s processor based licensing are based on number of CPU cores but number of total CPU cores should be converted to number of processor. Oracle has a predefined core processor licensing factor which you can use for your platform. So all cores on all multi-core chips are to be aggregated before multiplying by the appropriate core processor licensing factor and all fractions of a number are to be rounded up to the next whole number.
As explained Oracle Standard One and Standard editions are licensed based on the sockets with restriction of 2 and 4 sockets respectively, for such editions a processor is counted equivalent to a socket; however, in the case of multicore-chip modules, each core in the multi-chip module is counted as one occupied socket. It means 2-socket server each having one dual-core CPU, will be considered as 4 sockets server and is not eligible for Standard One edition installation.
Let’s take another example of a multi-core chip based server with total 6 cores and an Oracle Processor Core Factor of 0.25, which would require 2 processor licenses (6 multiplied by 0.25 equals 1.50, which is then rounded up to the next whole number, which is 2).
Also a multicore hardware platform not specified in the Oracle Processor Core Factor Table, will have a core processor licensing factor of 1.0, means all the cores will be equivalent to a processor.
Now, let’s discuss licensing for virtualized environments. There can be two types of virtualized environments: soft-partitioning and hard-partitioning. In soft-partitioning, CPU capacity can be changed on runtime as additional resource is needed. This is a flexible way of managing resources. In hard-partitioning, a physical server is separated into distinct smaller systems, each with its own CPUs. Oracle licensing is straightforward. One has to license for all the CPUs configured on the system in case of soft partitioning and only for number of CPUs configured to that partition in case of hard partitioning. Here are few illustrations:
- A server has 32 CPUs installed, but it is hard partitioned and only 16 CPUs are made available to run Oracle. The customer is required to license Oracle for only 16 CPUs.
- A server comes with 30 CPUs and Oracle is installed on this server. If this server cannot be hard partitioned, the customer must obtain licenses for all 30 CPUs.
On cloud computing environment, Amazon Web Services (AWS) is the only cloud service vendor licensed to run Oracle database. AWS offering is termed as Amazon Elastic Compute Cloud (EC2). In the cloud environment, licensing is based on the number of virtual cores and each virtual core should be considered equivalent to a physical core.
It means for Oracle Standard Edition One or Standard Edition, EC2 instances with 4 or less virtual cores are counted as 1 socket, which is considered equivalent to a processor license. For EC2 instances with more than 4 virtual cores, every 4 virtual cores used (rounded up to the closest multiple of 4) equate to a licensing requirement of 1 socket. It means, under cloud computing, Standard Edition can only be licensed on EC2 instances up to 16 virtual cores and Standard Edition One can only be licensed on EC2 instances up to 8 virtual cores.
For Enterprise editions, virtual cores should be converted to number of processors using standard core processor licensing factor. For example, licensing Enterprise Edition on a single EC2 instance of 8 virtual cores (platform with core processor licensing factor of 0.5) would require 8 * 0.5 = 4 processor licenses.
Standard named user plus licensing policies are also applicable in cloud environment.
That’s the end of the story. Please feel free to post comments if you have questions or feedback to share.
References (Further Reading) …
1) Oracle Technology Network Developer License Terms