본문 바로가기

Note

[관리] DB2에서는 작업 스케줄링을 어떻게 하지? 유닉스의 “Cron”, 윈도우의 “예약된 작업”을 사용하여 DB2 관리 작업을 자동화 한다. 보통은 OS의 스케줄링 기능을 이용하는데, DB2 자체에서도 기능이 있는지 문의를 받는 경우가 있다. 기능은 있다. 그러나 권장하지는 않는다.(왜 권장하지 않는지는 글을 읽으면 알게 될 것이다.) DB2 자체의 작업 스케줄링 기능을 어떻게 설정할 수 있는지 살펴 보자. Windows에서도 DAS (DB2 Administration Server)라는 용도로 계정을 설치할 때 묻는다. Unix나 Linux 에서는 OS 계정으로 인스턴스나 DAS를 생성하기 때문에 설치 작업 하면서 DAS를 왜 만들어야 하는지 의문을 많이 가졌을 것이다. 이 DAS 가 하는 주 업무가 DB2의 작업 스케줄링을 해주는 것이라 보면 되겠다.. 더보기
[운영] DB2 deinstall 강제로 시키기 DB2의 버전이 올라가면서 여러가지 기능들이 추가되고 더 복잡한 메커니즘으로 구성된듯 하다. 그에따라 비교적 설치된 DB엔진을 걷어내거나 할때 약간의 시간이 소요되는건 사실이다. 뭐~ 다양한 기능들을 사용하는 장점이 있기는 하지만, 여하튼 오늘은 DB2 모듈을 강제로 deintall 하는 내용들을 다루어 보고자 한다. 간혹 DB2 엔진을 지우려 할때 인스턴스가 존재해서 삭제가 안되거나 심지어 인스턴스를 삭제하려해도 그마저 안되는 경우가 있다. 그래서 물리적으로 엔진 파일이 있는 곳을 물리적으로 rm 해 버리는 경우가 있는데(성질 급한 사람들은) 별로 권장하고 싶지는 않다. 그경우 아래와 같은 해결책을 제시하고자 한다. ================================================.. 더보기
[구성] InfoSphere Federation Server (IFS) 설정 IBM에서 InfoSphere 라는 용어가 나오기 전에는 WebSphere Federation Server (WFS) 라고 불리었다. (DB 관련 제품인데 WAS쪽으로 편입된 것이 일하면서 이상하게 느껴지긴 했었다.) Federation (국내에서 “연합” 이라고 번역되는 것 같다) 구성에는 크게 2가지로 분류가 된다. Homogeneous Federation과 Heterogeneous Federation. Homogeneous Federation은 같은 DBMS의 DB federation을 의미한다. (그러나 사실은 한 벤더의 DBMS를 의미한다고 봐야 될 듯 하다. Informix federation 도 제공한다.) 이 기능은 DB2 for LUW 제품을 쓰면 기본으로 사용 가능하다. 그러나 Hetr.. 더보기
[운영] DB2의 과도한 Bufferpool 생성의 종말은? 현업 업무 중 DB2의 메모리인 버퍼풀을 조정하기 위해 보통 Alter 명령을 사용한다. 예를 들면 아래와 같다. db2 "alter bufferpool BP_8K size 2000" db2 "select * from syscat.bufferpools"(버퍼풀의 조회) 근데 간혹 버퍼풀의 size를 조정할 때 위의 사이즈를 페이지단위가 아닌 바이트 단위로 착각하여 엄청난 크기의 버퍼풀을 생성하는 오류를 범할 수 있다. (실제 현업에서 담당자가 위의 실수를 하여 운영 업무에 영향을 준적이 있다.) 문제는 DB2의 데이터베이스 Activate 시 실제 물리적메모리의 양을 초과하여 Paging을 유발 함으로써 DB접속이 상당히 오래 걸리거나 아예 안되는 상황이 발생할 수 있게 된다. (실제 DB2 Activa.. 더보기
[관리] DB2가 설치된 시스템일까? 아닐까? 관리하는 시스템이 많아지고, 체계적으로 시스템이 관리되지 않다 보면 서버에 누가! 무엇을! 설치해 놓았는지 알 수 없게 된다. 컴플라이언스 문제로 서버에 DB2가 설치되었는지 여부를 확인할 필요성이 생길 것이다. DB2에 대한 어떠한 정보도 모르는 상태에서 DB2가 설치되었는지 확인해 보고, 설치된 경우 인스턴스를 확인해서 DB가 존재하는지 등을 살펴 봐야 할 것이다. 1. DB2가 설치되어 있나? DB2 제품을 설치하게 되면 (리눅스, 유닉스 기준) OS가 사용하는 파일 시스템인 /var 하위에 db2 라는 디렉토리가 생긴다. 그 안에는 global.reg 라는 파일이 만들어 지는데 install한 경우는 설치한 정보가 기록되고, 인스턴스를 생성하면 인스턴스 정보들 까지 기록이 된다. 위 파일을 vi .. 더보기
[관리] 우리가 쓰는 DB2는 Compliance 문제가 없는 것일까? 기술지원 하다 보면, 고객사 compliance 문제로 지원 요청을 하는 경우가 발생한다. 우리가 쓰는 DB2가 구입한 라이센스에 적합하게 사용하는지를 알고 싶어서다. 경우에 따라서는 시스템에 DB2 서버가 설치되어 있는지 확인하는 방법에 대한 문의 요청도 들어 온다. DB2가 설치되어 있는지 확인하는 방법은 다음에 쓰기로 하고, 라이센스 확인 및 위배 여부를 확인하는 방법을 알아 보도록 한다. 1. 우리가 쓰는 DB2 머신의 자원과 운영 체제 버전은 무엇인가? DB2에서는 OS의 정보와 자원 정보를 db2pd나 sysibmadm 스키마의 어드민 뷰를 통해 확인할 수 있다. 다음은 sysibmadm.env_sys_info 뷰를 조회하여 확인한 os 정보 결과다. (db2pd는 db2pd –osinfo를 .. 더보기
[운영] 테이블의 데이터 Truncate 하기 데이터 적재 작업을 하던가 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 빈파일명 o.. 더보기
[운영] DB2 진단로그를 편하게 보기! DB2 기술지원을 하다, 혹은 DB2 사용하다 문제가 생겨 DB2 진단로그(db2diag.log)를 열어 보다 보면 너무나 많은 메시지들과, 한 메시지가 여러 줄에 걸쳐져서 보기 힘들었을 것이다. db2diag 명령어를 통하여 주요 메시지만 걸러서 볼 수는 있었지만, 시간단위 한 줄로 편히 보기에는 불편했다. DB2 V9.7에서 db2diag 명령어의 -fmt 옵션이 추가되었는 줄 알았는데, V9.5에서도 -fmt 옵션이 지원이 되어 "사용자가 원하는 방식으로" 메시지를 정돈해서 볼 수 있게 되었다. 그래서 "특정 DB"의 메시지 레벨이 "Warning, Severe, Error"인 메시지의 PID, TID, PROC, APP핸들과 메시지를 정돈해서 볼 수 있다. 다음 명령어는 "timestamp 를 줄.. 더보기
[설치] CentOS에서 TSAMP 설치하기! 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 더보기