Wednesday, February 4, 2026

How to Monitor When Oracle Management Packs Are Activated or Used in Oracle database ?

 

How to Monitor When Oracle Management Packs Are Activated or Used

Oracle provides multiple internal views, advisor logs, and AWR/ADDM activity indicators that reveal accidental or unauthorized use of:

  • Diagnostics Pack
  • Tuning Pack

Below is a complete monitoring framework.


✅ 1. Check if Diagnostic/Tuning Features Were Used (Primary Indicator)

Oracle logs all usage in DBA_FEATURE_USAGE_STATISTICS.

Run:

SELECT name, detected_usages, total_samples, last_usage_date
FROM dba_feature_usage_statistics
WHERE name IN (
'Automatic Workload Repository',
'ADDM',
'SQL Tuning Advisor',
'SQL Access Advisor',
'ASH',
'AWR Baseline',
'Real-Time SQL Monitoring'
)
ORDER BY last_usage_date DESC;

What to look for:

  • DETECTED_USAGES > 0 → feature was used
  • LAST_USAGE_DATE not null → pack was accessed
  • If you disabled packs but this still updates → OEM or some script is still invoking features

This is the most authoritative licensing indicator.


✅ 2. Monitor the Management Pack Parameter (Active Status)

Run:

SHOW PARAMETER control_management_pack_access;

Expected safe value:

NONE

If it changes to:

  • DIAGNOSTIC
  • DIAGNOSTIC+TUNING

➡️ Packs are active and billable.

For automated monitoring, query:

SELECT value
FROM v$parameter
WHERE name='control_management_pack_access';


✅ 3. Check if AWR Snapshots Are Being Generated (Diagnostics Pack Usage)

If snapshots exist, AWR is active → Diagnostic Pack is considered used.

SELECT snap_id, begin_interval_time, end_interval_time
FROM dba_hist_snapshot
ORDER BY snap_id DESC
FETCH FIRST 10 ROWS ONLY;

If you see new snapshots after disabling:

➡️ Something is still collecting AWR data.


✅ 4. Monitor ADDM Execution (Diagnostics Pack)

SELECT task_name, created, status
FROM dba_advisor_tasks
WHERE advisor_name='ADDM';

If any task appears → Diagnostics Pack used.


✅ 5. Monitor SQL Tuning Advisor Activity (Tuning Pack)

SELECT task_name, created, status
FROM dba_advisor_tasks
WHERE advisor_name='SQL TUNING ADVISOR';

If tasks ran → Tuning Pack usage triggered.

Also check:

SELECT COUNT(*) FROM DBA_ADVISOR_LOG WHERE advisor_name='SQL TUNING ADVISOR';


✅ 6. Monitor SQL Access Advisor Activity (Tuning Pack)

SELECT task_name, created, execution_start
FROM dba_advisor_tasks
WHERE advisor_name='SQL ACCESS ADVISOR';

Any appearance = Tuning Pack usage.


✅ 7. Detect Automatic SQL Monitoring (Diagnostics + Tuning Pack)

SQL Monitoring is part of Tuning Pack.

Check ASH/SQL Monitor usage:

SELECT sql_id, status, sid, username, elapsed_time
FROM v$sql_monitor;

If rows appear → Tuning Pack active.


✅ 8. OEM Activity Monitoring (Common Source of Accidental Usage)

OEM may trigger pack usage even if DBAs don't run anything manually.

Check OEM repository:

For AWR/ASH report generation:

SELECT * FROM mgmt$awr_reports ORDER BY time_start DESC;

For SQL Tuning Advisor tasks created by OEM:

SELECT task_name, created
FROM dba_advisor_tasks
WHERE task_name LIKE 'SYS_AUTO_SQL%';

If OEM is generating:

  • AWR Reports
  • ADDM Reports
  • SQL Tuning tasks

➡️ Packs are being used even if parameter says NONE.


✅ 9. Enable Audit Monitoring for Parameter Changes

Track if someone re-enabled packs:

AUDIT ALTER SYSTEM;

Then check:

SELECT username, timestamp, sql_text
FROM dba_audit_trail
WHERE sql_text LIKE '%control_management_pack_access%';

This is extremely valuable during SOX audits.


📈 10. Recommended Scheduled Monitoring Script

Run daily/weekly through OEM/cron.

SELECT 'FEATURE_USAGE', name, detected_usages, last_usage_date
FROM dba_feature_usage_statistics
WHERE detected_usages > 0
UNION ALL
SELECT 'AWR_SNAP', snap_id, begin_interval_time, end_interval_time
FROM dba_hist_snapshot
WHERE begin_interval_time > SYSDATE-1;

Generate alerts if ANY usage is detected.


🎯 Summary – What You Must Monitor

Check AreaWhat It DetectsIndicates Usage
DBA_FEATURE_USAGE_STATISTICSCore featuresPrimary licensing indicator
DBA_HIST_SNAPSHOTAWR snapshotsDiagnostics Pack
ADDM TasksDiagnostics PackYes
SQL Tuning AdvisorTuning PackYes
SQL Access AdvisorTuning PackYes
SQL MonitoringTuning PackYes
OEM ActivityAuto usage triggersVery common
Audit of parameter changeRe-enabling packsCompliance breach



No comments:

Post a Comment

About the Author : Anurag Pandey | Database cloud Architect | Oracle | SQL Server | PostgreSQL | AI and Data Platform Enthusiast

Anurag Pandey is a Database Architect with expertise in Oracle, PostgreSQL, SQL Server, Linux, and enterprise database platforms and specializes in database architecture, performance tuning, high availability, disaster recovery, cloud modernization, and operational excellence. With extensive experience in enterprise-scale environments, Anurag is passionate about leveraging AI, automation, and modern data platforms to improve reliability, scalability, and business outcomes. He actively contributes to technical communities through knowledge sharing, architecture guidance, and thought leadership in database and data engineering domains.

Follow more articles at

Visit Blog

Create Resource Manager , Resource Group / Consumer groups in Oracle Database to limit CPU resources

  Step to create Resource Manager  consumer groups in Oracle Database  1. First confirm the exact PROGRAM values     SELECT program, ...