제6장 tbdv

내용 목차

6.1. 개요
6.2. 빠른 시작
6.3. 수행 예제

본 장에서는 tbdv 유틸리티를 소개하고 사용 방법을 설명한다.

tbdvTibero 데이터베이스의 데이터파일에 대한 정합성을 검사하는 간단한 유틸리티이다. 이 유틸리티를 통해 데이터베이스가 오프라인일 때도 데이터파일에 대한 기본적인 정합성 검사를 수행할 수 있다.

tbdv 유틸리티는 데이터 블록 각각에 대해 다음의 사항을 체크한다.

  • 블록에 DBA가 올바로 적혀있는지
  • 블록의 체크섬이 일치하는지
  • 블록의 가용공간과 실제 사용한 공간을 더한 것이 블록크기와 일치하는지
  • 블록에 들어가는 row-piece들이 서로의 영역을 침범하지 않고 들어가있는지

이러한 사항들 중 한개라도 정합성 검사에 실패한다면 미디어 장애로 판단할 수 있으며 media recovery를 수행하여 데이터베이스를 복구하여야 한다.

tbdv 유틸리티는 Tibero를 설치하는 과정에서 함께 설치되며, Tibero를 제거하면 함께 제거된다.

tbdv 유틸리티는 명령 프롬프트에서 다음과 같은 형식으로 실행한다.

$ tbdv [-s BLKSIZE] [-l CHECK_LENGTH] /path/to/datafile

명령 프롬프트에서는 옵션으로 블록 크기를 지정할 수 있으며 기본은 8192바이트이다.

파일의 앞쪽 일부분만 체크하고 싶은 경우 CHECK_LENGTH를 지정하는 옵션을 사용할 수 있다. 지정하지 않은 경우 파일 전체에 대해서 체크를 진행하게 된다. RAW Device의 경우 명시적으로 RAW Device의 크기를 입력해야하며, 입력하지 않은 경우 에러를 발생시키게 된다.

다음은 tbdv 유틸리티를 실행하는 예이다.


본 절에서는 정상적인 데이터파일 및 정합성이 깨진 블럭이 있는 데이터파일들에 대해 각각 tbdv 유틸리티가 어떻게 정합성 오류를 발견하는지 살펴본다.

데이터 블록의 dba가 적혀있는 부분에 장애를 일으키면 dv는 다음과 같은 결과를 출력한다.


데이터파일에서 fractured block을 발견했을때는 데이터 블록이 consistent하지 않다는 결과를 출력한다.


데이터 블록의 남은공간을 기재하는 부분이 블록 크기에서 실제로 사용한 공간의 차이와 불일치 할 경우 dv의 출력은 다음과 같다.


참고

tbdv 유틸리티는 수행과정에서 zero-out된 블록은 포맷이 안되었다고 간주하기 때문에 실제로 디스크에 장애가 발생하여 데이터가 써진 블록이 zero-out되는 현상이 발생하여도 tbdv는 블록이 포맷되지 않았다고 판단하고 (즉, 아직 데이터파일에서 할당되지 않은 부분) 에러를 출력하지 않으므로 사용에 주의한다.