본문 바로가기

IT관련

오라클 Heatmap, ADO, ILM 기능관련 딕셔너리 조회 스크립트 모음

Oracle ILM 관련 정책 상태 및 작업 상태 등을 체크해 볼 수 있는 스크립트를 모아봤습니다.

ILM 관련 개념에 대한 설명은 아래 링크를 참조하시기 바랍니다.

 

   - 오라클 Heatmap, ADO, ILM 기능 설명

 

ILM은 Information Lifecycle Management 의 약자입니다. 정보 즉 DB내의 데이터를 Lifecycle 에 따라 관리하겠다는 것입니다. 이 용어는 Oracle만 사용하는 용어는 아니고, General 한 용어입니다. 이 기능을 구현하기 위해서 오라클에서는 Oracle 12c 에서 Heatmap, ADO 라는 기능을 만들었습니다.

Oracle 에서는 ILM, ADO 를 거의 같은 의미로 여기저기 사용하고 있습니다.

 

 

* ILM 관련 파라메타 조회

 


-- ILM 관련 파라메타의 조회  (sys 유저에서 조회)
SQL>
col name for a30
select * from dba_ilmparameters;

NAME                                VALUE
------------------------------ ----------
ENABLED                                 1
RETENTION TIME                         30
JOB LIMIT                               2
EXECUTION MODE                          2
EXECUTION INTERVAL                     15
TBS PERCENT USED                       85
TBS PERCENT FREE                       25
POLICY TIME                             0

 

위에서 TBS PERCENT USED, TBS_PERCENT FREE 파라메타는 Storage Tiering (Move Tablespace) 에 영향을 미치는 파라메타입니다.

 

위 정보는 dba 유저 sys 에서 조회해야 합니다. 아래는 해당 ILM 정책을 적용하는 DB유저에서 조회하면 됩니다.

일반적으로 dba_ 로 시작하는 딕셔너리뷰는 sys 유저에서 조회하고, user_ 로 시작되는 딕셔너리뷰는 해당 유저에서 직접 조회합니다.

 

 

* ILM ADO Policy 정보 조회

 


-- ILM Action 타입(압축인지, Move인지), Scope, 압축레벨, Trigger 일수 조회
SQL>
set linesize 200
col policy_name for a20
col compression_level for a20

SELECT policy_name, action_type, scope, compression_level, condition_type, condition_days
FROM   user_ilmDatamovementPolicies
ORDER BY policy_name;

POLICY_N ACTION_TYPE SCOPE   COMPRESSION_LEVEL CONDITION_TYPE         CONDITION_DAYS
-------- ----------- ------- ----------------- ---------------------- --------------
P166     STORAGE     SEGMENT                                                       0
P186     COMPRESSION SEGMENT ADVANCED          LAST MODIFICATION TIME              4

 

 

* Policy 적용된 Object 명 및 Enable 여부 조회

 


-- ILM Object 명, Policy Enable 여부 조회
SQL>
set linesize 200
col policy_name for a20
col object_name for a20

select policy_name, object_name, enabled
from user_ilmObjects;


POLICY_NAME          OBJECT_NAME          ENA
-------------------- -------------------- ---
P166                 EMPLOYEE2            NO
P186                 EMPLOYEE             YES

 

 

* Policy 타입 및 Enable, Delete 여부 조회

 


-- ILM Policy명, Policy 타입, Enable 여부 조회
SQL>
col enabled for a10
col deleted for a10
select * 
from user_ilmPolicies;

POLICY_NAME          POLICY_TYPE   TABLESPACE                     ENABLED    DELETED
-------------------- ------------- ------------------------------ ---------- ----------
P166                 DATA MOVEMENT                                NO         NO
P186                 DATA MOVEMENT                                YES        NO

 

 

* ILM Task 작업 정보 조회

 


-- ILM Task 작업 정보를 조회
SQL>
set linesize 200
col job_name for a20
col creation_time for a35
col start_time for a35
col completion_time for a35

SELECT *
FROM user_ilmTasks 
order by 1;

   TASK_ID STATE     CREATION_TIME                       START_TIME                          COMPLETION_TIME
---------- --------- ----------------------------------- ----------------------------------- -----------------------------------
       272 COMPLETED 09-JUL-19 12.20.13.302986 PM        09-JUL-19 12.20.13.302986 PM        09-JUL-19 12.20.14.055460 PM
       273 COMPLETED 09-JUL-19 12.25.13.320140 PM        09-JUL-19 12.25.13.320140 PM        09-JUL-19 12.25.13.459580 PM
       275 COMPLETED 09-JUL-19 12.44.42.566744 PM        09-JUL-19 12.44.42.566744 PM        09-JUL-19 12.44.42.854153 PM
       280 COMPLETED 09-JUL-19 01.45.23.484808 PM        09-JUL-19 01.45.23.484808 PM        09-JUL-19 01.45.24.267265 PM

 

 

* ILM 작업 결과 정보 조회

 


-- ILM 작업의 결과정보 조회
SQL>
SELECT task_id, job_name, job_state, completion_time completion 
FROM user_ilmResults
ORDER BY 1 ;

   TASK_ID JOB_NAME             JOB_STATE                           COMPLETION
---------- -------------------- ----------------------------------- -----------------------------------
       272 ILMJOB5978           COMPLETED SUCCESSFULLY              09-JUL-19 12.20.14.055460 PM
       273 ILMJOB5984           COMPLETED SUCCESSFULLY              09-JUL-19 12.25.13.459580 PM
       275 ILMJOB5994           COMPLETED SUCCESSFULLY              09-JUL-19 12.44.42.854153 PM
       280 ILMJOB6022           COMPLETED SUCCESSFULLY              09-JUL-19 01.45.24.267265 PM

 

 

* ILM ADO Policy 평가관련 상세정보 조회

 


-- ADO 정책의 평가와 관련된 상세정보를 조회
SQL>
SELECT task_id, policy_name, object_name, selected_for_execution, job_name
FROM user_ilmEvaluationDetails 
ORDER BY 1;

   TASK_ID POLICY_NAME          OBJECT_NAME          SELECTED_FOR_EXECUTION                     JOB_NAME
---------- -------------------- -------------------- ------------------------------------------ --------------------
       280 P166                 EMPLOYEE2            SELECTED FOR EXECUTION                     ILMJOB6022

/*
   ++ selected_for_execution 컬럼에 나오는 데이터
      PRECONDITION NOT SATISFIED   : 아직 ILM Trigger 가 작동 안된 경우
      SELECTED FOR EXECUTION       : ILM Policy가 실행을 위해 selected 되었음을 의미.
      POLICY DISABLED              : 정책이 이미 적용되었는데, 수동으로 재실행하는 경우에도 disabled 로 나옴.
      POLICY OVERRULED
      INHERITED POLICY OVERRULED
      JOB ALREADY EXISTS
      NO OPERATION SINCE LAST ILM ACTION
      TARGET COMPRESSION NOT HIGHER THAN CURRENT
      STATISTICS NOT AVAILABLE
*/