Microsoft SQL Server Licensing Simplified into 7 Rules
Posted: April 29, 2015 Filed under: Licensing, Microsoft SQL Server | Tags: Licensing, Microsoft SQL Server Leave a commentMicrosoft SQL Server Licensing Simplified into 7 Rules
DB2 licensing checks
Posted: March 28, 2015 Filed under: DB2, Licensing | Tags: DB2, Licensing Leave a commentDB2 License compliance report returns a VIOLATION status against a certain feature
Run license compliant report
db2licm -g /tmp/report.out ; cat /tmp/report.out
LIC1440I License compliance report generated successfully.
License Compliance Report
DB2 Enterprise Server Edition In compliance
DB2 Database Partitioning: “Not used”
DB2 Performance Optimization ESE: “Not used”
DB2 Storage Optimization: “Violation”
DB2 Advanced Access Control: “Not used”
DB2 Geodetic Data Management: “Not used”
IBM Homogeneous Replication ESE: “Not used”
So the DB2 Storage Optimization feature is in “VIOLATION”
Check if violation item is licensed
db2licm -l
Product name: “DB2 Enterprise Server Edition”
License type: “CPU Option”
Expiry date: “Permanent”
Product identifier: “db2ese”
Version information: “9.7”
Enforcement policy: “Soft Stop”
Features:
DB2 Performance Optimization ESE: “Not licensed”
DB2 Storage Optimization: “Not licensed”
DB2 Advanced Access Control: “Not licensed”
DB2 Geodetic Data Management: “Not licensed”
IBM Homogeneous Replication ESE: “Not licensed”
It would mean that the license for the feature in “Violation” has not been applied.
Run queries to check what is using the features in violation
For the DB2 Advanced Access Control Feature:
Check for tables that use label based access control (LBAC).
Run the following command against every database in every instance in the DB2 copy:
SELECT TABSCHEMA, TABNAME
FROM SYSCAT.TABLES
WHERE SECPOLICYID>0
For the DB2 Performance Optimization Feature:
Check whether there are any materialized query tables.
Run the following command against every database in every instance in the DB2 copy:
SELECT OWNER, TABNAME
FROM SYSCAT.TABLES WHERE TYPE=’S’
Check whether there are any multidimensional cluster tables.
Run the following command against every database in every instance in the DB2 copy:
SELECT A.TABSCHEMA, A.TABNAME, A.INDNAME, A.INDSCHEMA
FROM SYSCAT.INDEXES A, SYSCAT.TABLES B
WHERE (A.TABNAME=B.TABNAME AND A.TABSCHEMA=B.TABSCHEMA)
AND A.INDEXTYPE=’BLOK’
Check whether any of your instances use query parallelism (also known as interquery parallelism).
Run the following command once in each instance in the DB2 copy:
SELECT NAME, VALUE
FROM SYSIBMADM.DBMCFG
WHERE NAME IN (‘intra_parallel’)
Check if connection concentrator is enabled. Run the following command against every instance in the DB2 copy:
db2 get dbm cfg
This command displays the current values of database manager configuration parameters including
MAX_CONNECTIONS and MAX_COORDAGENTS. If the value of the MAX_CONNECTIONS is greater than the
value of the MAX_COORDAGENTS then connection concentrator is enabled. If you are not using
DB2 Enterprise Server Edition, DB2 Advanced Enterprise Server Edition, or DB2 Connect™ Server
products, ensure that connection concentrator is disabled. This is because connection concentrator
is only supported for DB2 Enterprise Server Edition, DB2 Advanced Enterprise Server Edition, or
DB2 Connect Server products.
For the DB2 Storage Optimization Feature:
Check if any tables have row level compression enabled.
Run the following command against every database in every instance in the DB2 copy:
SELECT TABSCHEMA, TABNAME
FROM SYSCAT.TABLES
WHERE COMPRESSION IN (‘R’, ‘B’)
Check if any indexes have compression enabled.
Run the following command against every database in every instance in the DB2 copy:
SELECT TABSCHEMA, TABNAME, INDNAME, COMPRESSION
FROM SYSCAT.INDEXES
WHERE COMPRESSION = ‘Y’
Check if any compression dictionary still exists for a table that has row level compression deactivated.
Run the following command against every database in every instance in the DB2 copy:
SELECT TABSCHEMA, TABNAME
FROM SYSIBMADM.ADMINTABINFO
WHERE DICTIONARY_SIZE <> 0 OR XML_DICTIONARY_SIZE <> 0
Note: This query might be resource intensive and might take a long time to run.
Run this query only if Storage Optimization license violations are being reported
even though there are no tables that have row level compression enabled.