DBMS 1

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

DBMS_REPAIR

DBMS 1
Tibero 가이드
Tibero System Package Guide
DBMS_REPAIR
작성자
dataonair
작성일
2021-02-18 10:36
조회
910



제15장DBMS_REPAIR




내용 목차






15.1. 개요

15.2. 함수


15.2.1. ONLINE_INDEX_CLEAN





15.1. 개요




DBMS_REPAIR는 테이블과 인덱스 내의 깨진 블록을 검사하고 복구하는 기능을 제공하는 패키지이다.다음은 DBMS_REPAIR 패키지 내에 정의된 상수이다.

  • ALL_INDEX_ID인덱스의 스키마 객체 ID를 지정할 때 사용하며, 모든 인덱스에 대해 클린업을 수행하도록 지정한다.
    ALL_INDEX_ID CONSTANT BINARY_INTEGER := 0
  • LOCK_NOWAIT관련된 테이블, 파티션 또는 서브파티션에 대한 DML LOCK을 NOWAIT 모드로 요청한다.
    LOCK_NOWAIT CONSTANT BOOLEAN := true
  • LOCK_WAIT관련된 테이블, 파티션 또는 서브파티션에 대한 DML LOCK을 WAIT 모드로 요청한다.
    LOCK_NOWAIT CONSTANT BOOLEAN := false





15.2. 함수




본 절에서는 DBMS_REPAIR 패키지에서 제공하는 함수를 알파벳 순으로 설명한다.




15.2.1. ONLINE_INDEX_CLEAN




실패하거나 중단된 인덱스 online-build 또는 online-rebuild에 대한 클린업을 수행한다.

ONLINE_INDEX_CLEAN 함수의 세부 내용은 다음과 같다.

  • 프로토타입
    DBMS_REPAIR.ONLINE_INDEX_CLEAN
    (
    object_id IN BINARY_INTEGER DEFAULT ALL_INDEX_ID,
    wait_for_lock IN BOOLEAN DEFAULT LOCK_WAIT
    )
    RETURN BOOLEAN;
  • 파라미터

    파라미터 설명
    object_id 클린업을 수행할 인덱스의 스키마 객체 ID이다.ALL_INDEX_ID 상수로 지정할 경우 모든 인덱스에 대해 클린업을 수행한다.
    wait_for_lock 인덱스와 관련된 테이블, 파티션 또는 서브파티션에 대한 DML LOCK을 요청할 때의 LOCK 모드이다.LOCK_NOWAIT 상수로 설정할 경우 LOCK을 얻는 데 실패하면 클린업이 바로 중단된다. LOCK_WAIT 상수로 설정할 경우 LOCK을 얻을 때까지 계속 기다린다.
  • 반환값

    반환값 설명
    TRUE 지정된 모든 인덱스에 대해 클린업이 수행된 경우에 반환된다.
    FALSE 지정된 인덱스 중 하나 이상의 인덱스에 대한 클린업이 실패한 경우에 반환된다.
  • 예제
    DECLARE
    cleaned BOOLEAN;
    BEGIN
    cleaned := false;
    WHILE cleaned = false
    LOOP
    cleaned := DBMS_REPAIR.ONLINE_INDEX_CLEAN(DBMS_REPAIR.ALL_INDEX_ID,
    DBMS_REPAIR.LOCK_WAIT);
    DBMS_LOCK.SLEEP(10);
    END LOOP;
    EXCEPTION
    WHEN OTHERS THEN
    RAISE;
    END;
    /

    PSM completed
    SQL>