tbdv
Tibero DBMS 데이터 정합성을 검사하는 tbdv 유틸리티 사용 방법을 설명합니다.
개요
tbdv는 Tibero 데이터베이스의 데이터 파일에 대한 정합성을 검사하는 간단한 유틸리티입니다. 이 유틸리티를 통해 데이터베이스가 오프라인일 때도 데이터파일에 대한 기본적인 정합성 검사를 수행할 수 있습니다.
tbdv 유틸리티는 데이터 블록 각각에 대해 다음의 사항을 체크합니다.
블록에 DBA가 올바로 적혀있는가?
블록의 체크섬이 일치하는가?
블록의 가용공간과 실제 사용한 공간을 더한 것이 블록 크기와 일치하는가?
블록에 들어가는 row-piece들이 서로의 영역을 침범하지 않고 들어가 있는가?
이러한 사항들 중 한 개라도 정합성 검사에 실패한다면 미디어 장애로 판단할 수 있으며 media recovery를 수행하여 데이터베이스를 복구해야 합니다.
빠른 시작
tbdv 유틸리티는 Tibero를 설치하는 과정에서 함께 설치되며, Tibero를 제거하면 함께 제거됩니다. tbdv 유틸리티는 명령 프롬프트에서 다음과 같은 형식으로 실행합니다.
$ tbdv [-s BLKSIZE] [-l CHECK_LENGTH] /path/to/datafile명령 프롬프트에서는 옵션으로 블록 크기를 지정할 수 있으며 기본은 8192byte입니다.
파일의 앞쪽 일부분만 체크하고 싶은 경우 CHECK_LENGTH를 지정하는 옵션을 사용할 수 있습니다. 지정하지 않은 경우 파일 전체에 대해서 체크를 진행하게됩니다. RAW Device의 경우 명시적으로 RAW Device의 크기를 입력해야 하며, 입력하지 않은 경우 에러를 발생시키게 됩니다.
아래는tbdv 유틸리티를 실행하는 예입니다.
tbdv 유틸리티의 실행
수행 예제
본 절에서는 정상적인 데이터 파일 및 정합성이 깨진 블럭이 있는 데이터 파일들에 대해 각각 tbdv 유틸리티가 어떻게 정합성 오류를 발견하는지 살펴봅니다.
데이터 블록의 dba가 적혀있는 부분에 장애를 일으키면 dv는 아래와 같은 결과를 출력합니다.
DBA가 잘못됐을 때 dv의 출력
데이터 파일에서 fractured block을 발견했을때는 데이터 블록이 consistent하지 않다는 결과를 출력합니다.
Fractured block(Inconsistent block)을 발견했을 때 dv의 출력
데이터 블록의 남은 공간을 기재하는 부분이 블록 크기에서 실제로 사용한 공간의 차이와 불일치할 경우 dv의 출력은 아래와 같습니다.
블록의 빈 공간이 실제 사용한 공간과 정합성이 맞지 않는 경우 dv의 출력
tbdv 유틸리티는 수행과정에서 zero-out된 블록은 포맷이 안되었다고 간주합니다. 그러므로 실제 디스크에 장애가 발생하여 데이터가 써진 블록이 zero-out되는 현상이 발생하여도 tbdv는 블록이 포맷되지 않았다고 판단하고(즉, 아직 데이터 파일에서 할당되지 않은 부분) 에러를 출력하지 않으므로 사용에 주의합니다.
Last updated

