“데이터 무결성”을 확인하는 방법으로 DB2에서 제공하는 툴들이다. db2dart는 DB가 비활성화(offline)일 때 사용 가능하고, db2 inspace는 DB가 활성화된 상태에서 사용된다는 점이 사용 상 차이점일 듯 하다.
두 개의 툴이 사용되는 경우는 DB가 활성화되지 않는 상황이거나, 진단로그(db2diag.log)에 bad page 오류가 발생할 때 사용이 될 뿐 보통의 경우에는 사용하지 않는다. 필자의 경우도 많이 사용해 본 도구들은 아니다.
데이터 무결성 확인이외에도 두 개의 도구는 기능상 약간의 차이점이 있다.
(1) db2dart
- 데이터 추출 기능
- 테이블 공간의 고수위 마크(HWM)를 떨어뜨리는 기능
- 유효하지 않는 색인(index) 고치기 기능
(2) db2 inspect
- 압축된 테이블의 “압축으로 인한 스토리지 절감률” 확인
개인적으로는 DB가 접속되지 않는 상황에서 “테이블공간 목록과 콘테이너 정보”를 확인하고 싶었던 경우가 있다.
(경로재지정 복구를 하고자 함 이였는지, 특정 테이블공간에 대한 정보를 통하여 DB rebuild 복원을 하려고 했었던 것인지는 기억나지 않지만..)
이런 경우 db2dart 의 옵션 /ATSC 나 /DTSF 를 사용하면 “스토리지 그룹 정보”, “테이블 공간 정보”, “콘테이너 정보”들을 확인할 수 있다.
사용 예 (두 도구의 실행 결과는 db2diag.log가 있는 위치에 결과 파일이 생성된다)
$> db2dart sample /DTSF Action option: DTSF Connecting to Buffer Pool Services... Storage group file (automatic storage) report phase start. Header version: 0 Storage group ID: 0 Number of storage paths: 1 Storage group file (automatic storage) report phase end.
Individual tablespace details: Information for Tablespace ID: 0 (생략) |
$> db2dart sample /LHWM 2 48 (tablespace ID 및 페이지 크기 지정) The requested DB2DART processing has completed successfully! High water mark: 1952 pages, 61 extents (extents #0 - 60)
** This cannot be lowered further as there are not enough free extents |
$> db2 "inspect check database results keep db.inspect" $> cd ~/sqllib/db2dump $> db2inspf db.inspect db.db2infp -e -s –w |
DB에 bad page 오류가 발생을 하는 경우 진단로그에 tablespace id 및 object id 들이 기록이 된다.
db가 비활성상태라면 db2dart를 통하여 tablespace id 및 object id를 지정하여 결과 파일을 통하여 page 오류를 확인할 수 있을 것이고,
db가 온라인 상태라면 db2 inspect 를 통하여 “데이터 무결성’을 점검할 수 있을 것 같다.
본 도구들을 많이 사용해 봤다면, 특정 주제를 가지고 설명을 했을텐데 둘러보기 식으로 해당 도구에 대한 소개를 마친다.
'Note' 카테고리의 다른 글
[보안] 인스턴스 구성변수(dbm cfg) authentication (0) | 2013.10.11 |
---|---|
[이중화] 로그 쉬핑(shipping)을 통한 복제서버 구성 (0) | 2013.09.26 |
[성능] SQL 성능 분석 (0) | 2013.08.26 |
[설치] 리눅스 환경에서 고려해야 될 parameter (0) | 2013.07.22 |
[관리] row migration 과 row chain (0) | 2013.06.26 |