Contents
Key takeawaysThe three sourcesRunning the scriptsEnterprise Manager and packsCSI records and ownershipBuilding the baselineWhat we have seenWhat to do nextFAQOracle has no license dashboard. You check your position by reconciling three sources: the measurement scripts its auditors use, Enterprise Manager usage data, and the entitlement records behind your CSI numbers. The gap between them is your audit risk.
- There is no single view. Entitlements live in contracts and the support portal, deployments live on your servers, and you have to join them yourself.
- The scripts are yours to run. The database script options_packs_usage_statistics.sql is read only and published for customers, so you can see the auditor's view before the auditor does.
- Usage history outlasts the flag. CURRENTLY_USED reflects one weekly sample, while an audit reads every recorded use of a priced option.
- Enterprise Manager can bill you. Its Diagnostics and Tuning screens are open by default on Enterprise Edition, and one click by a DBA is recorded as pack usage.
- Support records are not ownership. CSI lines include shelfware and leave out perpetual licenses whose support you dropped, so the ordering documents decide what you own.
- Every baseline we checked had gaps. Across 30 to 40 baselines from 2024 to 2026, Diagnostics, Tuning or Partitioning ran without entitlement on 20 to 40 percent of databases.
How do you check Oracle license information?
You check it by comparing three sources yourself, because Oracle offers no dashboard that joins what you own to what you run. The measurement scripts read your databases. Enterprise Manager shows feature usage across everything it monitors. My Oracle Support holds the Customer Support Identifier (CSI) records for what you pay support on.
Each source covers a different part of the answer and misleads in its own way. Your license position is the reconciliation of all three, written down, dated and owned by a named person.
| Source | What it reads | Handle with care |
|---|---|---|
| The measurement scripts | Installs, options, packs and hardware counts, read directly from each environment | Run them internally on your own schedule. Never run Oracle supplied discovery for the first time during an audit. |
| Enterprise Manager | Feature usage and database inventory across every monitored target | The Diagnostics and Tuning packs it exposes are licensable. Set pack access controls before anyone explores. |
| My Oracle Support, the CSI records | Supported quantities, metrics and end dates per contract | Treat it as a lead. It carries shelfware and omits perpetual licenses whose support you dropped. |
Why doesn't Oracle give you a license dashboard?
Oracle licensing is contractual, and the software enforces none of it. An Enterprise Edition binary will run Partitioning, Advanced Compression and every management pack whether or not you hold a single line of entitlement for them.
Deployment facts sit on your servers and entitlement facts sit in your contracts. Oracle provides no tool that joins the two, and its audit function earns its results from the gap, which takes three common forms:
- unentitled options running in production
- support renewing on shelfware
- contracts that can no longer be found
How to Negotiate Your Oracle SaaS Renewal: The Five Moves at the Table
How do you run Oracle's measurement scripts yourself?
Download the database script from My Oracle Support and run it on every database before anyone asks you to. Oracle's license management function, GLAS (formerly License Management Services, or LMS), measures databases with a documented script set. The database side centers on options_packs_usage_statistics.sql.
The script is published under MOS Doc ID 1317265.1 and applies to Oracle Database 11.2 and later. It is read only. It needs a user with the SELECT ANY DICTIONARY privilege, runs in SQL*Plus, and spools its results to options_packs_usage_statistics.txt in the current directory.
- Connect to the root on multitenant databases. Run from CDB$ROOT, the script lists every open pluggable database and detects whether the Multitenant option is needed. Run from inside a PDB, it sees only that PDB.
- Keep the raw output. The two reports, PRODUCT USAGE and FEATURE USAGE DETAILS, list options, packs and the features behind each finding. Store the file with the date and the host name.
- Check the pack parameter it prints. The script also reports the current value of CONTROL_MANAGEMENT_PACK_ACCESS, which tells you whether Diagnostics and Tuning features are open on that database.
- Cover every environment. Test, development, standby and disaster recovery copies count too.
Running the scripts internally is the single most valuable habit in Oracle license management. It shows you what an audit would find, before an audit finds it, and on a timetable you control.
How do you read the feature usage results?
The script reads DBA_FEATURE_USAGE_STATISTICS, and the sampling rules in that view are where most self assessments go wrong. The database samples feature usage once a week, so recent use can take up to 7 days to appear.
- CURRENTLY_USED reads one weekly sample. The flag reflects only the most recent collection. A feature that runs monthly can show FALSE on the day you look.
- The history is the finding. A priced option invoked once, two years ago, still sits in the usage history, and Oracle's position is that invocation is use. Clearing the deployment does not clear the record.
- Accidental enablement counts. A restore from a compressed backup, a default installer or a DBA exploring a menu can light up an option. Intent is no licensing defense, so the reconciliation has to explain the record instead.
The script sorts each finding into CURRENT_USAGE, PAST_USAGE, PAST_OR_CURRENT_USAGE or NO_CURRENT_USAGE. Anything other than no usage needs either an entitlement or a documented explanation.
| Column | What it records | How to use it |
|---|---|---|
| DETECTED_USAGES | How many samples found the feature in use | A count of 1 points to a one off event, such as a restore or a test |
| FIRST_USAGE_DATE | The first sample that detected use | Match it to change tickets, upgrades and migrations |
| LAST_USAGE_DATE | The latest sample that detected use | If it keeps moving, the feature is still being invoked |
| CURRENTLY_USED | Whether the last sample detected use | Read it with the dates above, never on its own |
| LAST_SAMPLE_DATE | When the database last checked | An old date means sampling stopped and the view is stale |
The full interpretation guide, script by script and column by column, is in the compliance scripts guide. Our notes on first and last sample dates go further on the date columns.
What does the wider GLAS collection gather?
The database script is one part of the set. The GLAS collection also records hardware and processor details, middleware installs and user counts, and the script analysis covers what each tool gathers beyond the database.
The same discipline is the backbone of Java audit defense, where the inventory question arrives by letter and the evidence has to exist before the letter does.
Oracle measurement scripts guide
What each script collects and how GLAS reads the output, with a run book for internal use.
Get the white paper →Does Enterprise Manager show Oracle license usage?
Yes, and it is the one source that can create the liability it measures. Enterprise Manager gives the view across all monitored databases that the scripts give one database at a time: feature usage, database inventory and trend data. It is the fastest way to see everything together.
The console's base functionality ships with the database at no extra cost. The management packs behind many of its screens do not. The Diagnostics and Tuning packs are separately priced products, licensed per processor or named user on the target database, and they require Enterprise Edition underneath.
- Diagnostics Pack. Covers AWR, ADDM and the performance pages built on them. The list price is $7,500 per Processor or $150 per Named User Plus.
- Tuning Pack. Covers SQL Tuning Advisor and SQL Access Advisor. The list price is $5,000 per Processor or $100 per Named User Plus, and it requires a Diagnostics Pack license.
On Enterprise Edition, the database parameter CONTROL_MANAGEMENT_PACK_ACCESS defaults to DIAGNOSTIC+TUNING. Both packs are open from the day the database is created, and a DBA who clicks into a performance page has invoked one. That invocation lands in the same usage history the scripts read.
How much does an accidental pack finding cost?
Say an audit finds Diagnostics and Tuning usage on three production databases, each on a host that counts as 8 Processor licenses, plus Partitioning on one of them. The numbers below use Oracle's current Technology Global Price List, before any discount. Annual support is 22 percent of the license fee.
| Finding | Processor licenses | List per Processor | License fee | Annual support |
|---|---|---|---|---|
| Diagnostics Pack on 3 hosts | 24 | $7,500 | $180,000 | $39,600 |
| Tuning Pack on 3 hosts | 24 | $5,000 | $120,000 | $26,400 |
| Partitioning on 1 host | 8 | $11,500 | $92,000 | $20,240 |
| Total | $392,000 | $86,240 |
The two packs alone, the part a DBA can trigger from a performance page, come to $300,000 in license fees and $66,000 a year in support at list. Partitioning adds $92,000 more. The Diagnostics and Tuning Pack guide covers how Oracle prices these findings in detail.
In Enterprise Manager, go to Setup, then Management Packs, then Management Pack Access. Disable the packs you do not own per target, and change the Default Settings so newly discovered targets arrive with those packs off.
On each database, set CONTROL_MANAGEMENT_PACK_ACCESS to NONE, or to DIAGNOSTIC where you own only that pack. Record the date you did it, because that date separates a usage history you can explain from one you pay for. The management pack licensing guide covers the pack by pack pricing and rules.
What does My Oracle Support show about your Oracle licenses?
It shows what you pay support on, per CSI, which is related to what you own but reliably different from it. Each CSI carries the supported products, license metrics, quantities and end dates from its originating contract. It is the closest thing to an entitlement inventory Oracle offers, and it diverges from ownership in both directions.
- It overstates through shelfware. CSI lines renew every year whether or not a deployment exists behind them. Support paid on licenses no one runs is recoverable spend, and it hides inside every long standing CSI.
- It understates through dropped support. Perpetual licenses whose support lapsed disappear from the portal but remain owned. Companies that treat the portal as their ownership record under count their own entitlements.
- It fragments through history. Acquisitions, resellers and decades of amendments scatter entitlements across CSIs and legal entities.
Which documents prove what you own?
The ordering documents do. Pull the order behind every CSI, including the ones from acquired companies, and read each against the master agreement it references, usually an Oracle Master Agreement or an older Oracle License and Services Agreement.
Consolidate them into one entitlement register with a row per license line: product, metric, quantity, the CSI it sits on, the legal entity that bought it, and any usage restriction. The Oracle SAM guide covers the register structure. The 22 Oracle audit secrets guide shows how Oracle uses the same fragmentation against unprepared customers.
Can you cut support on shelfware you find?
Yes, but read Oracle's Software Technical Support Policies first. You cannot leave a subset of licenses in a license set unsupported. You reduce the set by terminating those licenses, and Oracle then reprices support on the remaining lines at current list support minus the standard discount.
That new price cannot exceed what you paid before, plus any annual country adjustment, and it cannot fall below the previous fees for the licenses you keep. Lines bought at a deep discount can therefore reprice upward, so the saving is often smaller than the dropped lines suggest.
- Before you give notice. Ask Oracle for the repriced quote in writing and model it line by line.
- Before you drop a whole license set. Coming back later is worse: reinstatement costs 150 percent of the last annual support fee, prorated over the lapsed period, on top of the new year of support.
Our guide to dropping Oracle support works through both cases.
How do you turn three views into one license baseline?
You join them in one dated document: deployments from the scripts and Enterprise Manager, entitlements from the ordering documents, and the difference between them. Each line then gets an owner and a decision. That baseline is the only license position you can stand behind, and it is what every Oracle negotiation ultimately rests on.
| Field | Example |
|---|---|
| Deployment | Production database on a host counting as 8 Processor licenses |
| Usage evidence | Diagnostics Pack, PAST_USAGE, script output dated and filed |
| Entitlement | None found in any ordering document |
| Delta | 8 Processor licenses of Diagnostics Pack unentitled |
| Decision and owner | Pack access set to NONE, usage explained, owner and date recorded |
Why we disagree with checking only the CURRENTLY_USED flag
A common shortcut in internal reviews is to filter the feature usage view for CURRENTLY_USED = TRUE and treat everything else as clean. We advise against it. The flag reflects one weekly sample, while Oracle's auditors read the whole history, including features invoked once years ago.
A review built on the flag misses exactly the findings that surprise customers in an audit. Read DETECTED_USAGES, FIRST_USAGE_DATE and LAST_USAGE_DATE for every priced option, and write down the cause of each historic hit while the people who caused it still work for you.
The output that matters is a dated, owned baseline, signed by someone who will keep it current.
What will Oracle's auditors say, and how should you answer?
Once an audit starts, the conversation turns on whose data describes your position. These are the lines we hear most often.
| What GLAS says | What to say back |
|---|---|
| "Please run our scripts on all servers and return the output." | Agree the servers in scope first, run the scripts yourselves, and review the output before it leaves the building. |
| "The usage data shows the Diagnostics Pack, so it needs licensing." | Ask for the specific feature rows and dates. Oracle's own script states its data may include false positives from sample schemas and internal usage. |
| "Your support records show what you are licensed for." | Support records show what you pay support on. Present the ordering documents, including licenses whose support lapsed. |
What have we seen in Oracle license baselines from 2024 to 2026?
The three views never agreed on the first pass. Across roughly 30 to 40 Oracle license baselines I built or reviewed between 2024 and 2026, the scripts, Enterprise Manager and the CSI records told three different stories every time, until someone reconciled them deliberately.
- Unentitled options. Diagnostics, Tuning or Partitioning was enabled on 20 to 40 percent of databases without a matching entitlement, mostly through defaults and exploration. Enterprise Manager exploration was a leading cause.
- Shelfware on support. Support renewed year after year on licenses with no deployment behind them.
- Scattered contracts. Entitlements sat in acquisition era contracts that had never been consolidated, and the company could not state what it owned until the documents were brought together.
- Measurement without an owner. The scripts had been run once by a contractor, and the output could not be found.
The quieter findings cost as much as the loud ones. A baseline that is not owned and dated decays into exactly the ambiguity an audit letter exploits, which is why ownership belongs in the document itself. Our comparison of building a position before or during an audit shows the difference in cost.
How often should you refresh the baseline?
Tie the refresh to the support renewal date, because that is when you pay for whatever the baseline gets wrong.
| Before renewal | What to do |
|---|---|
| 12 months | Confirm the baseline owner, check that pack access controls are still in place, and list any acquired entities not yet in the register |
| 6 months | Run the measurement scripts on every environment and file the output with dates |
| 3 months | Reconcile deployments to the entitlement register and flag shelfware candidates |
| 1 month | Check the renewal quote line by line against the register before you pay it |
What to do next
- Run the measurement scripts internally. Cover every environment on a schedule you own, and keep the raw output, since it is your evidence either way.
- Lock Enterprise Manager pack access first. Then use its usage views across all targets, and document the date the controls went on.
- Consolidate the entitlement register. Build it from the ordering documents behind every CSI, including acquisition era contracts and perpetual licenses with lapsed support.
- Reconcile the three views into one dated baseline. Record deployments, entitlements, the delta and an owner. Run it again before every support renewal and every true up.
- Act on the delta yourself. Remove or license unentitled usage, cut support on verified shelfware, and keep the baseline current so an Oracle audit meets a document instead of a scramble. Our Oracle practice and Vendor Shield keep it current between renewals.
Want a second opinion on your Oracle position? Our Oracle licensing consultants are former Oracle insiders who now work only for buyers.
Frequently asked questions
Is there a dashboard that shows my Oracle licenses?
No. Oracle has no tool that matches what you bought to what you run. The CSI records in My Oracle Support cover the purchase side, and the scripts and Enterprise Manager cover the deployment side. Joining them is your job, and in our experience the first attempt always exposes differences.
Can I run Oracle's audit scripts myself?
Yes. options_packs_usage_statistics.sql and the rest of the measurement set are read only and available to customers, and running them internally shows what a GLAS audit would find. Avoid running Oracle supplied discovery for the first time during a live audit, on Oracle's schedule, before you have seen the results yourself.
Why does a feature we never use show as used?
The feature usage view keeps every detected invocation, and Oracle treats invocation as use. A default installer, a restore from a compressed backup or a DBA opening a Diagnostics page can create the record, and it stays after the cause is gone. Document the cause and the date for each historic entry.
Does Enterprise Manager require extra licenses?
The console's base functionality comes with the database. The Diagnostics and Tuning packs behind its performance screens are separately priced, per processor or named user on each target, and are easy to invoke by accident. Check Management Pack Access for every target, including newly discovered ones, and keep a dated record of each change.
Is what My Oracle Support shows the same as what we own?
No. The portal shows what you pay support on. That overstates ownership where shelfware keeps renewing and understates it where perpetual licenses lost their support. Your actual rights sit in the ordering documents behind each CSI, gathered into one register.
How often should the license baseline be refreshed?
Refresh it before every support renewal, every true up and any audit response, with a named owner and a date on each version. A baseline built once and left alone decays as servers, staff and contracts change, and the people who could explain each usage record move on.
Does Standard Edition 2 need a Diagnostics Pack license?
No. The Diagnostics and Tuning packs are sold only for Enterprise Edition, and CONTROL_MANAGEMENT_PACK_ACCESS defaults to NONE on other editions. If a Standard Edition 2 database shows pack usage, someone changed that parameter. Set it back, document the cause, and remember there is no pack license that covers it short of moving the database to Enterprise Edition.