기술지원 하다 보면, 고객사 compliance 문제로 지원 요청을 하는 경우가 발생한다. 우리가 쓰는 DB2가 구입한 라이센스에 적합하게 사용하는지를 알고 싶어서다. 경우에 따라서는 시스템에 DB2 서버가 설치되어 있는지 확인하는 방법에 대한 문의 요청도 들어 온다.

DB2가 설치되어 있는지 확인하는 방법은 다음에 쓰기로 하고, 라이센스 확인 및 위배 여부를 확인하는 방법을 알아 보도록 한다.

 

1. 우리가 쓰는 DB2 머신의 자원과 운영 체제 버전은 무엇인가?

    DB2에서는 OS의 정보와 자원 정보를 db2pd나 sysibmadm 스키마의 어드민 뷰를 통해 확인할 수 있다.

    다음은 sysibmadm.env_sys_info 뷰를 조회하여 확인한 os 정보 결과다.

    (db2pd는 db2pd –osinfo를 통해서 확인할 수 있다.)

SQL >>

select substr(os_name,1,10) os_name,
            substr(os_version,1,6) os_version,
            substr(os_release,1,8) os_release,
            substr(host_name,1,16) hostname,
            total_cpus,
            configured_cpus,
            total_memory 
from sysibmadm.env_sys_info ;

결과 >>

OS_NAME    OS_VERSION OS_RELEASE HOSTNAME         TOTAL_CPUS  CONFIGURED_CPUS   TOTAL_MEMORY
----------    ----------     ----------     ----------------  -----------    ---------------         ------------
AIX               6                  1                  ?????????1            2                   4                              7728

 

2. DB2 라이센스 상태는 어떻게 확인하지?

  db2licm 명령어나 sysibmadm.env_prod_info 관리 뷰를 통해 확인이 가능하다.

(db2licm 명령어는 db2licm –l 을 실행하여 확인한다.)

SQL >>

select substr(installed_prod,1,6) product,
            substr(installed_prod_fullname,1,30) product_name,
            license_installed,
            substr(prod_release,1,12) release,
            substr(license_type,1,24) licens_type  
from sysibmadm.env_prod_info ;

결과 >>

PRODUCT    PRODUCT_NAME                         LICENSE_INSTALLED   RELEASE      LICENS_TYPE            
-------       ------------------------------     --------------------    ------------ ---------------
ESE            DB2_ENTERPRISE_SERVER_EDITION                         Y     9.5               CPU_OPTION             
CONSV       DB2_CONNECT_SERVER                                           N     9.5               -
                      

 

3. 라이센스에 위배되어 사용 중인 기능(feature)가 있을까?

    db2licm –g 나 sysibmadm.env_feature_info 관리 뷰를 통해 확인할 수 있다.

SQL >>

select substr(feature_name,1,6) as feature,
        substr(feature_fullname,1,24) as feature_name,
        substr(license_installed,1,1) license ,
        substr(product_name,1,3) edition,
        substr(feature_use_status,1,12) use_status
from sysibmadm.env_feature_info



결과 >>

FEATURE FEATURE_NAME                          LICENSE EDITION USE_STATUS 
-------    ------------------------              -------   ------- ------------
DPF         DB2_DATABASE_PARTITIONIN        N          ESE       NOT_USED   
POESE    DB2_PERFORMANCE_OPTIMIZA     N          ESE       NOT_USED   
SO          DB2_STORAGE_OPTIMIZATION       N          ESE       IN_VIOLATION
AAC        DB2_ADVANCED_ACCESS_CONT    N          ESE       NOT_USED   
GEO        DB2_GEODETIC_DATA_MANAGE     N         ESE        NOT_USED   
XMLESE  DB2_PUREXML_FEATURE_FOR_     N         ESE        NOT_USED   
HFESE     IBM_HOMOGENEOUS_FEDERATI    N         ESE        NOT_USED   
HRESE    IBM_HOMOGENEOUS_REPLICAT    N         ESE         NOT_USED

     => Storage Optimization 기능이 라이센스 위배되었음을 확인할 수 있다.

         (테이블에 compress 옵션을 주었을 가능성이 높다.)

명령문 >>

db2licm –g db2licm.g

결과    >>

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"
DB2 pureXML ESE:                  "Not used"
IBM Homogeneous Federation ESE:   "Not used"
IBM Homogeneous Replication ESE:  "Not used"

 

4. 참고

  위 기능에 대해 정보센터 내용을 간략하게 정리해 보면

  (1) Advanced Access Control 기능 : LBAC

확인 >>

SELECT TABSCHEMA, TABNAME
FROM SYSCAT.TABLES
WHERE SECPOLICYID>0

  (2) HA 기능 : HADR

확인 >>

SELECT NAME, VALUE
FROM SYSIBMADM.DBCFG
WHERE NAME='hadr_db_role'

  (3) Performance Optimization : MQT, MDC, Query Parallelism (interquery parallelism)

확인 >>

SELECT OWNER, TABNAME
FROM SYSCAT.TABLES
WHERE TYPE='S' ;

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' ;

SELECT NAME, VALUE
FROM SYSIBMADM.DBMCFG
WHERE NAME IN ('intra_parallel') ;

  (4) Storage Optimization : Compression

확인 >>
SELECT TABSCHEMA, TABNAME
FROM SYSCAT.TABLES
WHERE COMPRESSION IN ('R', 'B') ;

 

보다 자세한 정보는 정보 센터를 참고 한다.

http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.admin.trb.doc/doc/t0053718.html

+ Recent posts