Quick Guide to Oracle Database Licensing Policy

Quick Guide to Oracle Database Licensing Policy

As an Oracle DBA, you will need to understand the Oracle licensing policy very well. Part of the job scope is to provide budget costing for your manager to plan the maintenance budget for the next year. You do not want to report the Oracle licences wrongly, because that will get your company into big trouble. I do heard of Oracle guys going down to companies to do a manual audit before.

As with many applications vendor, Oracle also adopt a “CPU-Based” licensing scheme. For Corporation Usage, Oracle has mainly 3 different types of Database Edition.

Standard Edition One

  • No comments on this as I do not have any experience working with this edition.

Standard Edition (SE)

  • Can only installed on a machine up to 4 socket processor. Able to run 1 node Real Applications Cluster (RAC)

Enterprise Edition (EE)

  • For the differences between SE and EE, please refer to MOS [1084132.1]
  • Required to pay for advance features like Oracle Partitioning or Active Dataguard.
  • Please refer to this list for the Oracle EE Options.

If you are covered under Oracle database license and you want to use a separate RMAN Catalog databases or OEM Cloud Control 12c repository database, you do not have to pay PROVIDED that you do not have any other schema installed in it. You can also use DataGuard for additional HA protection too. However, RAC dis not free, you will need to pay for additional licenses.

REMEMBER, Just because a feature is enabled at the database level, it does not mean you are licensed to use it!! (For example, Oracle Active DataGuard)

Another point to note is the CPU Core-Factor. Difference processor type have different core-factor. For example, IBM Power7 processor has a core-factor of 1.0 but Oracle SPARC T4 has only a core-factor of 0.5. This means the licence cost of T4 compare to Power7 is essentially 50% cheaper! Please refer to this Oracle document to check the core-factor table.

To maximize the hardware investment and increased flexibility,  many companies will choose to virtualize their machine. Oracle only recognize and support limited Virtualization technology.

  1. Oracle Solaris Logical Domain (AKA Oracle VM for SPARC)
  2. Solaris Zones/Containers
  3. IBM Logical Partitioning
  4. Oracle VM for x86
  5. Please refer to this doc for specific information

If you wish to virtualize the machine and configured only a certain resource for the database, do take note of the following;

  1. For IBM pSeries Hardware, you are only require to pay for the LPAR configured CPU that is running Oracle database.
  2. For Oracle SPARC hardware (Either T4 or other older model), you can use Solaris LDOMs or Zones to virtualize the machine
  3. For x86 Hardware, you NEED to use Oracle VM for x86 to virtualize the box. Oracle does not recognize VMware as a hard partitioning method, thus you have to pay for the entire machine.
  4. If your x86 machine has 4 CPU socket installed but you disable half of the CPU socket, you are still require to pay for the 4 CPU license. This is actually a pretty gray area. Oracle has a document that tells you what Server/Hardware Partitioning they recognize. This “disabling of CPU core” method is not covered in the document, so we got to assume it is not supported.

Of course, all these information that I provided are merely from past experiences and information gathered online. To get the most accurate information, just talk to your Oracle Sales Rep!

This is an excellent website with specific Oracle SQL scripts to identify what options should be license in your environment.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s