10+ Tips for Oracle Database License Compliance

Here are few simple and very effective tips to improve the compliance of your Oracle databases in regards to installed and used options.

These tips cover most of the options commonly deployed. "Common" because they get installed during a standard installation (without probably one's knowledge) or used due to their known benefits by an application or by DBAs.

  1. Do not use Enterprise Edition, just go for the much cheaper Standard Edition. In such as case, many great features and nice options are not available anymore...
  2. On 11g or bellow, best is to start with both a new binary install and a new instance that do not have any option installed. During the installation, select 'custom setup' and untick all options, unless required. Two benefits: options are not installed, and options cannot be used. Unfortunately on 12c, it is not possible to select which options to be installed or not, all get installed. Postinstallation activity is required

    https://docs.oracle.com/database/121/NTDBI/postcfg.htm#BCGEHAJD (12c on Windows)
    https://docs.oracle.com/database/121/LADBI/post_inst_task.htm#LADBI5600 (12c on Linux)

    Another point: during instance setup (applies to any Oracle version), which is before the very first start of the database instance, set CONTROL_MANAGEMENT_PACK_ACCESS to NONE.
  3. If an instance has some options installed but not used and not required, uninstall these options. Refer to 'My Oracle Support' how to uninstall options

    This script can help you identify most standard installed options:
SELECT parameter,
FROM   v$option
WHERE  parameter IN ( 'Data Mining Scoring Engine',
                      'Data Mining',
                      'Oracle Database Vault',
                      'Oracle Label Security',
                      'Parallel Server',
                      'Real Application Clusters',
                      'Real Application Testing' )
       AND value != 'FALSE'

Spatial is a bit special as it requires to check DBA_REGISTRY view. If STATUS is VALID, then the option is installed:

SELECT status FROM dba_registry WHERE comp_name = 'Spatial'
  1. Set parameters to block the usage of some features (such as _query_on_physical to false, _oltp_compression to false)
  2. Check regularly (daily or weekly) options used following the instructions stated in the Doc ID 1317265.1 (warning: this script checks options of 11g and bellow. 12c new options are not covered). Automate this check so that an alert can be triggered when a new option is in use. In this Doc, there is a SQL clause checking about 366 days, this clause is subject to interpretation. Better adjust, or may be remove this clause, I do not know
  3. Increase frequency of statistics generation daily on non-production environments so that you can be more reactive when identifying a usage. Doc ID 1291296.1 shows how to force collection via the command 'alter session set events...'
  4. If an instance has a used option (view DBA_FEATURE_USAGE_STATISTICS), the only way to get rid of this information is to reinstall the instance (then export / import application data), or restore the instance at a recent point where the option was not used yet. This last technique can be probably used for a non-production instance if the option has just been activated
  5. Be very careful when writing your own scripts to scan option usage. The simple SELECT operation of some specific tables or views will trigger usage
  6. For day to day operations, do not let any vendor (including any Oracle Company technician [true story]) to own admin rights: be certain that within 1 hour diagnostics pack and tuning pack will be in use. Another practice: when a DBA is required to run any unknown DML or DDL script, review it first as it may trigger usage
  7. Have an inventory of all your instances with their associated deployed options. Your DBAs will then easily know if any option can be used during their day to day work
  8. If you plan to start your instance on various servers (or resize your server), understand that the instance remembers the history of the server sizing. The license quantity to be purchased is probably based on the server maximum size
  9. Set-up Oracle Enterprise Manager Database Control very carefully as it carries many EM options, from an installed and used angle. Unless you really need it, better not install (or remove) it
  10. For more advanced organization, setup a tool to track automatically option usage. The tool can send reports and alerts. Oracle EM Grid Control is one option, at your own (high) risk…
  11. You may consider hiring a consulting company to assess your situation. This is a cheap, easy and probably the safest option