As of Oracle Database 12c, "Oracle no longer uses the session "high water mark" to check for license compliance". The session "high water mark," which represents the maximum number of concurrent sessions observed at any point in time, was traditionally a key metric for enforcing licensing limits in earlier Oracle versions, particularly for older license models tied to session usage.
Key Changes in Oracle Licensing:
-
Licensing Enforcement Shift:
- Starting with Oracle 12c, Oracle moved away from relying on the session "high water mark" as a direct licensing compliance mechanism.
- The licensing model became more aligned with processor-based and named-user metrics, rather than monitoring the peak number of concurrent sessions.
-
Focus on Audits and Contracts:
- Licensing compliance is now primarily determined by Oracle's license audits and contractual agreements. Oracle expects customers to monitor their own usage to remain compliant with the agreed terms.
-
Concurrent Session Tracking for Monitoring Only:
- While Oracle still tracks the session "high water mark" in views like
V$LICENSE
, it is for informational purposes rather than enforcing license restrictions.
You can view the session "high water mark" in Oracle 12c using:
SELECT sessions_highwater
FROM v$license;
-
License Models in Oracle 12c:
- Processor-Based Licensing: Based on the number of CPUs or cores.
- Named User Plus Licensing: Based on the number of unique users accessing the database.
- Cloud Licensing Models (BYOL): These are usage-based models applicable to Oracle Cloud services.
Why the Change?
-
Flexibility for Cloud and Multi-Tenant Architectures:
Oracle 12c introduced multi-tenant architecture and cloud capabilities, which made session-based licensing impractical. Customers often have fluctuating workloads with unpredictable session peaks, especially in shared environments.
-
Encouraging Scalability:
Session-based enforcement discouraged customers from scaling their systems freely. By removing this restriction, Oracle allows more flexibility in workload management.
Best Practices for Compliance:
- Monitor your named users and processor usage instead of focusing on session counts.
- Keep track of your database usage metrics, as Oracle can request this information during an audit.
- Use tools like Oracle Enterprise Manager (OEM) or third-party tools to help with usage tracking.
Many, but not all, Oracle licenses specify a maximum number for concurrent users
accessing a database. For example, I have a client with a 220 concurrent user license. That means that client can have up to 220 user sessions open at any one time. This limit was negotiated when the client purchased the license and was recorded as part of its contract with Oracle. However, it's up to the DBA to configure the software to enforce that limit. It's also up to the DBA to monitor compliance. You can restrict the number of concurrent sessions allowed for a database by setting the
license_max_sessions
initialization parameter. To allow 220 sessions, for example, you would place the following line in your database initialization file:
license_max_sessions = 220
If you are enforcing a limit on concurrent sessions, you may want to check to see how many you are
using periodically. Oracle helps you do that by recording a
license high water mark in the alert log each time the database is shut down. Here's what that looks like:
Sat Jun 19 22:22:41 1999
Shutting down instance (normal)
License high water mark = 180
- License High Water Mark:
The license high water mark represents the maximum number of concurrent sessions that have ever been active all at once since the database was last started. The example shown here indicates that there was a maximum of 180 users connected at one time. If you notice that the license high water mark is consistently near the limit of your license, you may want to consider increasing the number of concurrent users on your license.
In the next lesson, you will list free space in a tablespace.