일반적으로 DB 카탈로그 작업 시 DB2 서버 IP 주소, 포트, DB 명 정도만 설정을 하고 사용한다.

이런 CLI 연결 환경에서 DB 접속이 느려지는 경우가 발생할 수 있다.

 

사내 여러 Desktop PC 에서 특정 PC에서만 접속이 느린 현상이 발생하는 경우 (접속이 분 단위 혹은 10초 단위 소요)

다른 네트워크 환경에서 접속을 해도 해당 PC만 접속 느린 현상이 발생하는 경우,

접속이 이뤄진 후 접속을 끊고(terminate) 재접속을 해도 느리게 접속이 되는 경우

 

마치 특정 PC의 Disk 등 성능이 느려져서 or PC의 성능이 낮아 발생되는 것처럼 느껴진다.

이런 경우 Catalog 설정을 확인해 볼 필요가 있다.

 

DB 카탈로그 시, DB2 서버와의 인증 방식을 설정하는 옵션이 있다. (DB2 서버의 기본 인증 방식은 SERVER 임)

이 인증 방식을 설정하지 않는 경우 서버쪽의 인증 방식에 맞추기 위한 준비 작업으로 DB 접속이 느려질 수 있다.

 

만일 CLI 방식의 개발을 하거나, native driver를 사용하는 개발 환경에서는 DB 카탈로그 작업 시 인증 방식을 꼭 필수적으로 하는 것이 좋을 듯 하다.  (카탈로그 작업 시 인증 방식 설정을 습관화 해야 될 것 같다.)

 

참고문서: http://www-01.ibm.com/support/docview.wss?uid=swg21455469

데이터가 삭제되었거나, 동일한 H/W환경에 백업 이미지로 테스트 DB 환경을 만들어야 되는 경우 db의 경로를 다르게 하여 restore를 해야 할 필요가 생긴다. 이럴 경우 테이블 공간 혹은 스토리지 그룹의 경로를 일일이 적어주는 것은 불편할 것이다.

 

경로재지정 복구 작업을 위해 db2는 해당 필요한 script를 만들어 준다. (V9.1 부터 지원된다)

 

-- script 추출

db2 “restore db 디비명 from 백업_경로 taken at 백업_시간소 redirect generate script 경로재지정_복구.clp

-- 추출 script 예
RESTORE DATABASE SAMPLE
-- USER '<username>'
-- USING '<password>'
FROM '/home/jseifert/backups' TAKEN AT 20050906194027
-- DBPATH ON '<target-directory>'
INTO SAMPLE
-- NEWLOGPATH '/home/jseifert/jseifert/NODE0000/SQL00001/SQLOGDIR/'
-- WITH <num-buff> BUFFERS
-- BUFFER <buffer-size>
-- REPLACE HISTORY FILE
-- REPLACE EXISTING REDIRECT
-- PARALLELISM <n>
-- WITHOUT ROLLING FORWARD
-- WITHOUT PROMPTING

SET TABLESPACE CONTAINERS FOR 0
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( PATH 'SQLT0000.0' );

SET TABLESPACE CONTAINERS FOR 1
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( PATH 'SQLT0001.0' );

SET TABLESPACE CONTAINERS FOR 2
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( FILE '/tmp/dms1' 1000 , FILE '/tmp/dms2' 1000 );

RESTORE DATABASE SAMPLE CONTINUE;

 

DB이름, DB 경로, 테이블공간 경로 등 여러 경로를 원하는 방식으로 변경하여 복구 작업을 진행하면 된다.

 

과거 V8에서는 해당 script를 일일이 만들다 보면 신택스 오류가 발생하여 script 만드는 데 시간이 많이 소요되었다.

(운영체제에 따라 시스템 테이블 공간은 지정해주지 않아도 알아서 경로재지정이 복구가 진행되기도 했었다.)

 

많이 쓰이는 기능은 아니나, 지워진 데이터를 찾아내기 위해서 혹은 공간 부족으로 다른 곳으로 경로를 변경해야 되는 경우가 있을 때

 

이 방법을 쓰면 작업 진행에 도움이 될 것 같다.

'Note' 카테고리의 다른 글

[보안] SSL 설정  (0) 2014.06.18
[관리] db2gcf  (0) 2014.05.19
[관리] Backup Pending 풀기  (0) 2014.03.31
[구성] Federation MS-SQL Server  (0) 2014.03.20
[성능] Actual Section & db2caem  (0) 2014.02.28

DB2는 기본적으로 순환로그(circular logging) 방식으로 DB 생성이 된다. 따라서 사용된 트랜잭션 로그를 보관(Archive logging)하기 위해서는 LogArchMeth1 이라는 DB 구성변수에 “트랜잭션 로그를 보관할 장소"를 설정해 주어야 한다.

그리고 변경 후에는 Offline DB 백업을 수행해야 DB가 정상 상태에 놓인다.

 

DB 구성 초기에 Archive logging 모드로 변경하는 것은 어려운 일이 아니나, 백업 정책 및 기타 운영 관련 정책이 한참 운영 중인 상태에

서 변경을 하게 되는 경우 난감한 일이 발생한다.

DB의 데이터 사이즈가 작다면 큰 문제가 없지만 백업 수행이 오래 걸릴 정도의 사이즈가 되는 경우 백업으로 인해 장시간 운영을 중단해야 되는 상태가 놓이기 때문이다.

이 부분은 DB2의 단점이 될 수 있는 부분인데, DB2 관련 정보를 찾다가 백업하지 않아도 백업 보류 상태(backup pending)를 풀 수 있는 방법을 알게 되었다.

 

db2dart에서 지원해 주는 기능이고, 오래된 옛 버전부터 지원된 기능인데 왜 이 기능이 존재감없이 묻혀져 있었는지 의문이 든다.

(너무 당연한 것 이여서 그랬을까?)

 

Archive logging 모드 상태에서 대용량 데이터를 load로 적재한 후 발생하는 Backup Pending,

초기 데이터 적재 작업 시, 아카이브 로그의 대량 발생을 막기 위해 circular logging 을 사용하고 적재 완료 후 archive logging 으로 전환하고자 하는 경우,

 

db2dart를 통해서 짧은 시간안에 backup pending을 풀 수 있다.

 

$> db2 update db cfg for sample using logarchmeth1 logretain
DB20000I  UPDATE DATABASE CONFIGURATION 명령이 완료되었습니다.

$> db2 connect to sample
SQL1116N  데이터베이스가 BACKUP PENDING 단계에 있기 때문에 데이터베이스 "SAMPLE"에 연결하거나 활성화하는데 실패했습니다.

 

$> db2dart sample /CHST /WHAT DBBP OFF


                              IMPORTANT:
  After resetting the database backup pending state, IBM no longer
  guarantees data integrity or the referential integrity of the data.
  To ensure the referential integrity of the data, all user tables
  should be exported, the database dropped and recreated and all
  user tables imported back into the new database.


Updated the log file header control file.
        The requested DB2DART processing has completed successfully!
                 Complete DB2DART report found in: SAMPLE.RPT

$> db2 connect to sample

  데이터베이스 연결 정보

데이터베이스 서버                        = DB2/NT64 10.5.0
SQL 권한 부여 ID                         = BRAD
로컬 데이터베이스 별명                   = SAMPLE

$> db2 backup db sample online compress

백업이 완료되었습니다.

'Note' 카테고리의 다른 글

[관리] db2gcf  (0) 2014.05.19
[복구] 경로재지정 복구  (0) 2014.04.15
[구성] Federation MS-SQL Server  (0) 2014.03.20
[성능] Actual Section & db2caem  (0) 2014.02.28
[성능] SQL Optimizer Profile  (0) 2014.02.06

+ Recent posts