기술지원 하다 보면, 고객사 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

드디어 오랫동안 박스 안에서 잠자던 InfiniBand Switch를 깨워서 Rack에 태워줬다.

InfiniBand Switch 아래층에는 이번 DSF 테스트의 Main이 될 p550 서버 되시겠다.

일차적으로는 이 서버를 2개의 pureScale Member와 2개의 CF로 구성할 예정이고, 추후 p750을 추가로 붙여볼 계획이다. ( 아니면, 남아도는 p550 서버들 중에서 한두 놈 더 잡아서 DSF 테스트에 동참시킬 예정이다. )

우리 팀 하드웨어 엔지니어들의 도움을 받아 필요한 장비들을 무사히 탑승을 다 시켰다.

InfiniBand Switch의 파란색 커버가 유난히 돋보인다. ( 나머지 애들은 다 시커먼데, 혼자 튄다. )

현재 우리 팀 서버실에 총 Rack이 5개가 있는데 ( 3개는 사용 중, 2개는 전시 중 ), Rack 정리가 잘 되어있지 않아서 DB2 pureScale 테스트와 관련된 장비들이 3개의 Rack에 분산되어 있다.

( 사진은 InfiniBand Switch가 장착된 Rack )

추후에 서버실이 정리가 되면 Rack 하나에 DSF 테스트 관련 모든 장비들을 몰아놓을 예정이다.

추후에 할 일들이 점점 쌓여만 간다.

데이터 적재 작업을 하던가 DB 운영 작업을 하면 테이블만 남기고 데이터를 삭제해야 되는 경우가 발생한다.

현재 V9.7 코브라에서는 truncate 명령문을 지원하지만 그 하위 버전에서는 사용할 수 없었다. (V9.5에서는 Registry 변수 DB2_COMPATIBILITY_VECTOR  값을 설정함으로써 제한적으로 사용 가능했던 것으로 기억이 난다. 현재 9.5 정보센터를 찾아보니 검색되지 않는다.-_-;)

9.7 코브라가 나오기 전에 이런 작업을 어떻게 했는지 기록을 남겨 본다.

(1) db2 load/import 를 사용하는 방법

    (유닉스, 리눅스) db2 “load from /dev/null of del replace into 스키마명.테이블명”

    (윈도우)            db2 “load from 빈파일명 of del replace into 스키마명.테이블명”

          * 빈 파일명: notepad를 실행하여 만든 내용없는 텍스트 파일(txt) 을 의미한다.

 

(2) Alter Table 명령문의 사용하는 방법

    (유닉스,리눅스,윈도우) db2 “alter table 테이블명 activate not logged initially with emtpy table”

    * 참고: ‘not logged initially’ 키워드는 테이블 단위 로깅 옵션이다. transaction log 파일에

              로깅하지 못하게 하는 옵션이며 추가적으로 with empty table 구문을 주어 로깅없이 테

              이블의 데이터를 삭제한다.

 

DB2 적인 truncate 표현법은 alter table을 이용한 명령문이라 할 수 있겠다.

 

 

추가로, not logged initially 옵션은 Insert ~ Select 방식의 대용량의 데이터를 작업 상황에서 트랜잭션 로그 full 상황을 피하고자 할 때 사용할 수 있다.

이 경우 한 트랜잭션(작업 단위, UOW) 안에서 처리를 해야 되기에 db2 CLP 옵션을 주어야 한다.

db2 +p +c –tv <<EOF

alter table 테이블명 activate not logged initially ;

insert into 테이블명 select * from 테이블1 ;

EOF

혹은 위 SQL을 파일로 만든 후 “db2 +c –tvf 파일명” 으로 실행을 할 수도 있다.

이런 식으로 하면 대용량 데이터를 추가/변경/삭제 작업 시, transaction log full이 발생하는 것을 피할 수 있다.

단, 해당 SQL이 실행 중에 오류가 발생하거나 작업이 정상적으로 실행되지 못해 rollback되는 경우 table을 재생성 해야되므로 주의해서 사용해야 된다.

참고: http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.sql.ref.doc/doc/r0000888.html

IBM DB2 의 오랜 숙원이었던 Active-Active Feature, pureScale 이 어느덧 3번째 수정 팩까지 나왔다. ( 나온 지 벌써 6개월이 지났다. )

하지만 까다로운 Prerequisite 때문에 그 동안 기능 테스트는 고사하고 설치 조차 엄두도 못 내고 있었는데, 때마침 어느 고객에게 출가해있었던 AIX 서버가 오랜 방황을 끝내고 최근에 돌아와서, pureScale을 본격적으로 설치/구성 해보고 기능 테스트까지 해볼 수 있는 기회가 오게 되었다.

사실, AIX 서버가 임대 나가는 바람에 pureScale을 위해서 예전에 구매해놓았던 고가의 네트워크 장비인 InfiniBand Switch/Adaptor 가 1년이 넘도록 서버실 한 구석에 처박혀 있었는데… 드디어 빛을 보게 된 것이다.

우선 pureScale 설치/구성은 07월부터 본격적으로 시작하기로 하고, 오늘부터 3일 동안은 구성 계획을 수립하고 필요한 장비를 설치하는 작업을 진행할 예정이다.

현재 pureScale 구성에 가용한 장비들을 나열해 보면 다음과 같다.

▷ IBM p550 Express [ 8Core 32GB ] : 1대 ( 2 LPAR )

▷ IBM p750 [ 32Core 32GB ] : 1대

▷ QLogic InfiniBand Switch / Adapter : 1대 / 3개

▷ IBM SAN Switch : 1대

▷ IBM DS4700 : 1대

▷ IBM x3650 M2 : 2대

그리고 하드웨어 구성은 장시간의 회의 결과, 아래와 같이 할 예정이다.

물론, 진행하다가 상황에 따라 얼마든지 바뀔 수 있겠다.

오늘은 회의하다 지쳐서… 하드웨어 구성은 다음으로!

DB2 기술지원을 하다, 혹은 DB2 사용하다 문제가 생겨 DB2 진단로그(db2diag.log)를 열어 보다 보면 너무나 많은 메시지들과, 한 메시지가 여러 줄에 걸쳐져서 보기 힘들었을 것이다.

db2diag 명령어를 통하여 주요 메시지만 걸러서 볼 수는 있었지만, 시간단위 한 줄로 편히 보기에는 불편했다.

DB2 V9.7에서 db2diag 명령어의 -fmt 옵션이 추가되었는 줄 알았는데, V9.5에서도 -fmt 옵션이 지원이 되어 "사용자가 원하는 방식으로" 메시지를 정돈해서 볼 수 있게 되었다.

그래서 "특정 DB"의 메시지 레벨이 "Warning, Severe, Error"인 메시지의 PID, TID, PROC, APP핸들과 메시지를 정돈해서 볼 수 있다.

다음 명령어는 "timestamp 를 줄 단위"로 메시지를 정돈해서 볼 수 있다.

db2diag -time YYYY-MM-DD -gi db=디비명 -level Warning,Severe,Error -fmt "%{ts} [%{level}] PID:%{pid} TID:%{tid} PROC:%{proc} DB:@{database} APPHDL:@{apphdl} @{message}" >> db2diag_output.log

위 명령어 결과를 통해 "문제 시 되는 에러 메시지"를 확인하여, 해당 메시지의 "시간 대" 및 "PID" 등의 값을 통해 해당 메시지를 제대로 볼 수 도 있을 것이다.

참고로 V9.7 부터는 dbm(인스턴스) 구성 변수 중 diagsize 값(단위 MB) 설정을 통하여 진단로그 및 통지로그(nfy)가 크기가 무한정 늘어나는 것을 방지할 수 있다.

CentOS 5.6 인 경우,

1. /etc/redhat-release 파일의 내용을 다음과 같이 교체함!

Red Hat Enterprise Linux Server release 5.6 (Tikanga)

2. compat-libstdc++-33 rpm 패키지를 설치함!

yum install compat-libstdc++-33

2011.07.07 ZDNet Korea 김우용 기자 (yong2@zdnet.co.kr)

오라클과 HP의 갈등 뒤에서 조용히 미소지었던 빅블루가 움직였다. HP와 오라클 솔루션 사용자를 대상으로 대대적인 할인을 제공하는 윈백 프로그램을 가동한 것이다. 오라클과 HP가 법정 소송에 휩싸인 틈을 타 서버와 데이터베이스(DB)시장을 장악하려는 마수(?)를 뻗쳤다.

최근 영국 IT미디어 더레지스터에 따르면, IBM은 HP 유닉스서버와 오라클 데이터베이스(DB) 사용자의 IBM 메인프레임, 파워시스템(유닉스), 시스템X(x86) 등으로 대규모 이전을 위한 '브레이크프리(Breakfree) 프로젝트'를 시작했다.

브레이크프리 프로젝트는 지난달부터 시작됐다. 이 프로젝트는 세 가지 방향으로 이뤄진다. ▲유닉스 서버와 DB를 IBM 제품으로 전면 교체 ▲하드웨어나 SW만 교체 ▲IBM DB2의 인텔 아이태니엄 프로세서 지원여부 인식제고 등이다.

IBM의 새로운 윈백 프로그램은 HP만 겨냥하지 않았다. 이 기회에 오라클 DB도 이겨보자는 의지를 보인다.

■유닉스, DB까지 절반가격 "빅블루에게 오라"

IBM 브레이크프리는 HP 유닉스서버뿐 아니라 오라클 DB까지 함께 바꾸길 원하는 고객에게 패키지 상품을 제안한다. 파워7, DB2 데이터베이스, 웹스피어 미들웨어, 티볼리 시스템 매니지먼트, 보안툴 등을 포함한다. 사전 구성된 제품으로서 40~50%의 낮은 가격을 내세운다.

예를 들어 HP 슈퍼돔2 32코어를 사용하고 오라클 DB를 쓸 경우 3년 간 투입되는 비용은 총 72만160달러다. 이를 12코어의 IBM 파워770, IBM DB2, 마이그레이션 팩토리 등으로 교체하면, 총비용이 36만800달러에 불과하다. 절반에 가깝다.

다음으로 오라클 SW는 유지하고 HP 유닉스를 교체하는 경우를 노린다. 자신들의 소프트웨어 스택 교체를 원치 않는 고객이 많기 때문이다. 이는 기존 마이그레이션팩토리를 이용해 지원금과 할부금융을 제공한다.

마지막은 심리전이다. IBM은 HP UX에 IBM이 자체적인 DB와 미들웨어SW를 제공한다는 점을 인지시키려 한다.

이니 수 IBM 데이터베이스 제품 전략 부사장은 “아이태니엄은 IBM DB2를 지원하는 핵심 플랫폼 중 하나”라며 “DB2의 다음버전은 HP 유닉스에 대한 지원을 계속할 것이며, 플랫폼계획에 어떤 변화도 없다"고 밝혔다.

이와 함께 IBM SW가 HP 하드웨어에서 잘 운영될 수 있는 노하우를 IBM이 갖고 있다는 점도 강조됐다.

■‘오라클-HP vs. IBM’ IT 삼분지계

오라클은 지난 3월 인텔 아이태니엄 프로세서의 차세대 모델에 대한 SW개발을 중단하겠다고 선언했다. 아이태니엄 프로세서를 유닉스 서버칩으로 사용하는 가장 큰 회사인 HP를 향한 비수였다. 현실화되면 HP 유닉스는 오라클 DB를 이용할 수 없다.

HP는 급기야 지난달 캘리포니아 법원에 오라클이 계약을 위반했다며 고소장을 제출했다. 현재 두 회사는 서로 날선 비난을 주고받으며 대치중이다.

두 회사의 싸움에서 가장 큰 이득을 볼 곳은 IBM이다. 시장 절반을 장악한 유닉스사업이 반사익을 누리기 때문이다.

IBM은 유닉스 하드웨어, DB, 미들웨어를 모두 가지고 있다. IT프로젝트에 나설 때 단독으로 참가하는 경우가 많다. 이에 대항하기 위해 HP와 오라클은 연합작전을 썼다. HP가 유닉스를, 오라클이 SW를 제공하는 것이다.

이같은 오라클과 HP의 연합은 그동안 각종 IT프로젝트에서 IBM을 이겨낸 원동력이었다. 상대편의 내분은 IBM에게 호재일 수밖에 없다.

한국HP 고위임원은 “HP와 오라클은 본사정책과 상관없이 여전히 국내에서 긴밀한 협력관계를 유지하고 있다”라며 “IBM과 대적하려면 두 회사의 연합은 필수적이기 때문에 진행중인 프로젝트도 많다”라고 말했다. 그는 “미래를 정확히 점칠 수 없지만 몇년 후면 양사의 문제점은 새로운 기술로 해결될 것”이라고 덧붙였다.

하드웨어만 해도 오라클과 HP는 IBM과 경쟁한다. 오라클의 스팍과 HP의 인티그리티 서버는 IBM 파워시스템을 공략해야 하는 처지다. 더구나 IBM의 윈백프로그램은 두 회사를 위협하는 가장 강력한 요소다.

IBM은 윈백 프로그램으로 톡톡한 성과를 누려왔다. 2006년 설립된 윈백프로그램 ‘마이그레이션 팩토리’는 썬마이크로시스템(현 오라클)과 HP 등 경쟁사로부터 6천500여 고객을 빼앗았다. 오라클의 썬 인수 과정에서 60%에 해당하는 고객들이 마이그레이션 팩토리를 이용해 IBM을 택했다.

올해 1분기의 경우 IBM은 845건의 윈백에 성공했다. 이중 오라클 고객이 391건, HP 고객이 164건이다. 유닉스 서버인 파워시스템의 경우 210건이다. 이중 60%가 오라클, 40%가 HP 고객이었다. 이와 관련한 매출은 약 2억달러 규모다. 유닉스 사업이 경쟁사들의 전체 윈백규모인 평균 100만달러를 월등히 앞선다.

IBM의 브레이크프리 프로젝트는 사실 HP보다 오라클 공략에 초점을 맞춘 것으로 볼 수 있다. 오라클의 다음 공격 대상이 IBM이란 점은 누구나 아는 사실. 이에 대한 사전공세인 것이다.

서버업계 관계자는 “오라클이 유닉스 시장에서 HP 유닉스를 먼저 공격한 것은 힘의 세기 차이 때문”이라며 “상대적으로 공략하기 쉬운 HP를 넘어선 후 SW와 하드웨어를 모두 보유한 유일한 경쟁자를 노린 전략이 나올 것”이라고 말했다.

[자료출처] http://www.zdnet.co.kr/news/news_view.asp?artice_id=20110706151555&type=xml

'News' 카테고리의 다른 글

[정보] IBM pure System  (0) 2012.11.20
[뉴스] HP-오라클 유닉스 혈투, 대안을 찾아라  (0) 2011.08.12

+ Recent posts