Site icon DBA의 정석

[TIP] 테이블 스페이스 모니터링

Oracle Database 10g 부터 테이블스페이스의 디스크 공간 사용을 사전적으로 관리할 수 있도록 하는 기능을 제공한다.

테이블스페이스 임계값 (Tablespace threshold)

테이블스페이스 임계값은 테이블스페이스의 “가득 찬 정도”에 의해 정의된다. 이는 사용량/할당량의 백분율로 표현될 수 있다.

이러한 임계값은 다시 Warning 임계값과 Critical 임계값의 두 단계로 정의된다.

조건

상세 기능

DBA는 테이블스페이스 별로 임계값을 지정할 수 있다. 만일 아무 것도 명시하지 않으면, 먼저 데이터베이스 전체에 대한 기본값이 적용되며,

그 값은 Warning 임계값 85%, Critical 임계값 97%이다.

다만 migrate된 데이터베이스의 경우 편의상 null로 자동 설정되어 alert 기능이 off 된다.

백그라운드 프로세스인 MMON이 매 10분마다 테이블스페이스의 공간 사용량을 정의된 임계값과 비교하는 계산을 수행하며 그 결과를 내부 테이블에 저장한다.

만일 사용량이 임계값을 초과하는 경우, 적절한 alert가 발생된다. (RAC 환경의 경우 인스턴스마다 MMON이 있지만 각자의 활동은 동기화되며,

임계값의 초과 상황을 제일 처음 발견한 MMON이 alert를 생성하게 된다.)

이제 DBA는 적절한 조치에 의해 해당 공간 문제를 미리 해결할 수 있다.

이때 그 액션을 수행한 세션이 앞서 언급한 내부 테이블을 업데이트하게 되며 이것이 MMON의 다음 번 체크에서 확인됨으로써 해당 alert가 해제될 수 있는 것이다.

사용 방법

크게 세가지의 사용자 인터페이스가 제공된다.

 

관련된 동적 성능 뷰 및 딕셔너리 뷰를 이용한 조회

테이블스페이스 임계값은 딕셔너리 뷰 DBA_THRESHOLDS로부터 확인할 수 있으며, 같은 정보가 WRI$_ALERT_THRESHOLD로부터도 제공된다.

다음은 DBA_THRESHOLDS에 대한 최초 조회이다.

SQL> select warning_operator wop,

2 warning_value warn,

3 critical_operator cop,

4 critical_value cri,

5 observation_period op,

6 consecutive_occurrences co,

7 instance_name,

8 object_type,

9 object_name,

10 status

11 from dba_thresholds

12 where metrics_name = ‘Tablespace Space Usage’;

WOP WARN COP CRI OP CO INSTANCE_NAME OBJECT_TYPE OBJECT_NAME STATUS

—- —- —- —- — — ————- ———– ————— ——

GT 85 GT 97 1 1 TABLESPACE VALID

>= 87%, >= 97%의 기본값 설정을 확인할 수 있다. Instance_name이 null임은 이 설정이 database-wide한 설정임을 나타내며,

object_type은 tablespace이되 object_name이 null임은 현재 어떤 테이블스페이스에 대해서도 데이터베이스 기본 설정이 override되지 않은 상태임을 보여준다.

 

 

패키지를 사용한 임계값의 읽기/쓰기

테이블스페이스 임계값에 대한 PL/SQL 인터페이스로서 DBMS_SERVER_ALERTS 패키지가 제공된다.

이 패키지의 여러 프로시저들의 파라미터는 DBA_THRESHOLDS / WRI$_ALERT_THRESHOLD 의 각 컬럼들과 대부분 매핑된다.

다음은 DBMS_SERVER_ALERT.SET_THRESHOLD 프로시저를 이용하여 USERS 테이블 스페이스의 임계값을 경고값 70%, 한계값 90%로 수정하는 예이다.

SQL> begin

2 dbms_server_alert.set_threshold(9000, 4, ’70’, 4, ’90’, 10, 1, null, 5, ‘USERS’);

3 end;

/

다시 DBA_THRESHOLDS
조회하여
수행
결과
확인

WOP WARN COP CRI OP CO INSTANCE_NAME OBJECT_TYPE OBJECT_NAME STATUS

—- —- —- —- — — ————- ———– ————— ——

GE 70 GE 90 10 1 TABLESPACE USERS VALID

GT 85 GT 97 1 1 TABLESPACE VALID

USERS 테이블스페이스에 대한 별도의 행이 생성된 것을 알 수 있다.

 

 

Enterprise Manager의 GUI

Enterprise Manager는 딕셔너리 뷰/동적 성능 뷰에 대한 조회 및 DBMS_SERVER_ALERT 패키지의 사용을 GUI로 제공한다.

다음은 “데이터베이스 -> 테이블스페이스 -> 테이블스페이스 편집” 화면의 “임계값” 탭을 통해 본 화면 예이다.

의견

테이블스페이스 임계값은 공간 부족 오류를 사전에 방지할 수 있을 만큼 충분한 시간을 확보할 수 있는 만큼 작게,

그러나 그리 급한 상황이 아님에도 불구하고 alert가 발생하는 것은 방지할 수 있을 정도로 크게 설정하는 것이 이상적일 것이다.

또한 테이블스페이스의 특징별로 다음과 같은 고려를 해야 할 것이다.

 

Exit mobile version