checktable

지정한 날짜 범위의 테이블 데이터 무결성을 검사합니다. 이 명령어를 실행하려면 관리자 권한이 필요합니다.

문법

checktable [from=yyyyMMdd] [to=yyyyMMdd] [trace=BOOL] [TABLE, ...]
선택 매개변수
from=yyyyMMdd
무결성 검사 시작 일자(시작 일자 포함하여 검사)를 yyyyMMdd 형식으로 지정합니다.
to=yyyyMMdd
무결성 검사 마지막 일자 (마지막 일자 포함하여 검사)를 yyyyMMdd 형식으로 지정합니다.
trace=BOOL
무결성에 이상이 없는 데이터 블럭 정보 출력 여부(기본값: f)
  • t: 무결성에 이상이 없는 정상 데이터 블럭 정보도 출력합니다.
  • f: 무결성이 훼손된 데이터 블럭 정보만 보여줍니다.
[TABLE, ...]
무결성을 검사할 테이블을 쉼표(,)로 구분하여 지정합니다. 테이블을 지정하지 않으면 사용자에게 읽기 권한이 부여된 모든 테이블의 무결성을 확인합니다. 테이블 이름은 와일드카드(*)를 지원합니다.

설명

대상 테이블이 다이제스트 알고리즘이 설정된 암호화 프로파일을 이용하는 경우에만 무결성 검사가 수행되며, 무결성 검사에 필요한 HMAC 시그니처를 포함하지 않는 테이블은 검사에서 자동으로 제외됩니다.

출력 필드는 다음과 같습니다.

  • table: 테이블 이름
  • day: 날짜 파티션 이름
  • block_id: 블럭 ID
  • last_block_id: 마지막으로 블럭 ID로, 무결성이 손상된 경우에만 나타납니다.
  • signature: 데이터 생성 시점에 계산한 해시 값
  • hash: 무결성 검사 시점에 계산한 해시 값. 이 값이 signature 필드 값과 다르면 변조된 것으로 간주합니다.
  • msg: valid, modified, corrupted 문자열 중 하나의 값으로 표시합니다. 데이터가 변조되거나 손상된 경우, 데이터 조회 쿼리를 실행할 때 해당 데이터 블럭을 읽을 수 없으므로 건너뜁니다.
    • valid: 무결성이 검증되었음
    • modified: 데이터가 변조됨
    • corrupted: 파일 구조가 손상됨
Note
무결성 검사 시 이상이 없을 경우 별도 출력 결과가 없습니다.

사용 예

  1. 모든 테이블의 2014년 9월 데이터 무결성 검사

    checktable from=20140901 to=20140930 *
    
  2. syslog_ 로 시작하는 모든 테이블 데이터 무결성 검사

    checktable syslog_*