Lot of our customers seem to be confused about the licensing of Oracle management packs. As we install and configure OEM for our customers, we tell them to be careful to leverage only the features that they are licensed for. To clarify for our customers and others, I decided to detail out when you need to pay for certain licenses and what you are allowed to execute for free if you do not want to pay (or cannot afford to pay) for licenses of Oracle management packs. To start, here’s what you are allowed to monitor without paying for licenses:

• Histograms
• Metrics
• OS statistics
• Optimizer statistics
• SQL Traces
• SQL statistics
• Service statistics
• Statspack
• System statistics
• Time model
• Wait model

Starting in Oracle Database 11g, you can cautiously leverage the CONTROL_MANAGEMENT_PACK_ACCESS initialization parameter to control access or disable the packs. This parameters accepts the following parameters:


In Oracle 12c Release 1 (12.1), the default value for the CONTROL_MANAGEMENT_PACK_ACCESS parameter for Oracle Enterprise Edition is “DIAGNOSTIC+TUNING”. For Standard edition, the default value is set to NONE.

Nowadays, most of Oracle Sales folks are trained to sell the Diagnostic and Tuning pack as part of every database. You should expect this from experienced Oracle Sales folks. You may even get a response for a sales person indicating how can you successfully support or maintain a business critical database without leveraging these features.

Let’s continue our discussion to talk about the Database Diagnostic Pack. Usage of the following feature require licensing the Database Diagnostics Pack:

• Active Session History (ASH)
• Automatic Database Diagnostic Monitor (ADDM)
• Automatic Workload Repository
• Blackouts
• Dynamic metric baselines
• Event history and metric history (database and host)
• Event notifications: notification methods, rules, and schedules
• Monitoring templates
• Performance monitoring (database and host)

You will also have to pay for the database diagnostic pack if you leverage any of the following database stored procedures and packages:


If you leverage the following view, you will also end up paying for the diagnostic pack:

• Views with DBA_ADVISOR_ prefix
• Views with DBA_ADDM_ prefix
• Views with DBA_HIST_ prefix

If you leverage any of the SQL scripts from the $ORACLE_HOME/rdbms/admin directory, you will be liable for the diagnostic pack:

• aawrload.sql
• addmrpti.sql
• addmrtp.sql
• ashrpt.sql
• ashrpti.sql
• awrddrpi.sql
• awrddrpt.sql
• awrextr.sql
• awrextr.sql
• awrinfo.sql
• awrload.sql
• awrrpt.sql
• awrrpti.sql
• awrsqrpi.sql
• awrsqrpt.sql
• spawrrac.sql

Usage of the following feature require the Database Tuning Pack:

• Automatic Plan Evolution of SQL Plan Management
• Automatic SQL Tuning
• Reorganize objects
• SQL Access Advisor
• SQL Monitoring
• SQL Profiles
• SQL Tuning Advisor
• SQL Tuning Sets

The Tuning Pack has a direct dependency on the Diagnostic Pack. Stated in another way, if you license the Tuning Pack, you will have to also license the Diagnostic Pack.

Similarly, the usage of any of the stored procedures or packages, views or SQL scripts will incur license of the Database Tuning Pack:

• DBMS_ADVISOR package
• DBMS_SQLTUNE package
• sqltrpt.sql report found in the $ORACLE_HOME/rdbms/admin/ directory

Usage of the following feature require the Database Configuration Management Pack:

• Clone Database
• Clone Oracle Home
• Compare configuration
• Database and Host Configuration
• Deployments
• Patch Database and View Patch Cache
• Patch staging
• Policies
• Search configuration

If you are concerned about a potential Oracle license violation or wandering if you may be using a feature/option that you should not be, you can execute the following SQL code against your database and confirm that you have or have not used licensable features or options:

col name for a45
col description for a40 word wrapped
col feature_info for a35
set lines 266
set pages 66
select name, description, version, detected_usages,
       currently_used, first_usage_date, last_usage_date,
where detected_usages > 0

Comments are closed