DBMS 1
DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!
15.1. 개요 15.2. 함수 15.2.1. ONLINE_INDEX_CLEANDBMS_REPAIR
DBMS_REPAIR는 테이블과 인덱스 내의 깨진 블록을 검사하고 복구하는 기능을 제공하는 패키지이다.다음은 DBMS_REPAIR 패키지 내에 정의된 상수이다.
ALL_INDEX_ID CONSTANT BINARY_INTEGER := 0
LOCK_NOWAIT CONSTANT BOOLEAN := true
LOCK_NOWAIT CONSTANT BOOLEAN := false
본 절에서는 DBMS_REPAIR 패키지에서 제공하는 함수를 알파벳 순으로 설명한다.
실패하거나 중단된 인덱스 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>