ORACLE THRESHOLD (度量閥值)監控表空間

ORACLE THRESHOLD (度量閥值)監控表空間

1、使用 DBMS_SERVER_ALERT.SET_THRESHOLD過程設置針對本地管理的表空間的相關閥值。 
2、DBA_OUTSTANDING_ALERTS告警信息可以查看這個視圖
3、DBA_ALERT_HISTORY,如果告警信息解決後,DBA_OUTSTANDING_ALERTS中記錄的告警信息會轉換到DBA_ALERT_HISTORY視圖中,但是reason字段的值會被修改爲修正後的內容。
224508199.png 7 percent 是修正後計算的百分比

ORACLE設置THRESHOLD演示
--查看空間管理相關metric
SQL> col metric_name for a40
SQL> select metric_id,metric_name from v$metricname where metric_name like'%space%';
 METRIC_ID METRIC_NAME
---------- ----------------------------------------
      9001 Tablespace Bytes Space Usage
      9000 Tablespace Space Usage
SQL> COL WARNING_VALUE FOR A10
SQL> COL CRITICAL_VALUE FOR A10
SQL> COL STATUS FOR A10
SQL> COL OBJECT_NAME FOR A10
SQL> COL OBJECT_TYPE FOR A15
SQL> COL METRICS_NAME FOR A40
SQL>
SQL>--查看已設置的所有度量信息
SQL> SELECT METRICS_NAME,
  2 OBJECT_TYPE,
  3 OBJECT_NAME,
  4 WARNING_VALUE,
  5 CRITICAL_VALUE,
  6 STATUS
  7 FROM DBA_THRESHOLDS;
METRICS_NAME OBJECT_TYPE OBJECT_NAM WARNING_VA CRITICAL_V STATUS
---------------------------------------- --------------- ---------- ---------- ---------- --------
Tablespace Space Usage TABLESPACE TBS_METRIC 80 90 VALID
Tablespace Space Usage TABLESPACE 85 97 VALID

SQL>--當TBS_METRIC 表空間不足80%時,會在FROM DBA_OUTSTANDING_ALERTS視圖中生成告警信息。
SQL> set linesize 300
SQL> col REASON for a50
SQL> col OBJECT_NAME for a15
SQL> col MESSAGE_LEVEL for 999
SQL> col MESSAGE_TYPE for a15
SQL> col METRIC_VALUE for 999
SQL> col CREATION_TIME for a20
SQL> col SUGGESTED_ACTION for a50
SQL> col ADVISOR_NAME for a15
SQL> SELECT REASON,
  2 OBJECT_NAME,
  3 MESSAGE_LEVEL,
  4 MESSAGE_TYPE,
  5 METRIC_VALUE,
  6 CREATION_TIME,
  7 SUGGESTED_ACTION,
  8 ADVISOR_NAME
  9 FROM DBA_OUTSTANDING_ALERTS;
REASON OBJECT_NAM MESSAGE_LEVEL MESSAGE_TYPE METRIC_VALUE CREATION_TIME SUGGESTED_ACTION ADVISOR_NAME
-------------------------------------------------- ---------- ------------- --------------- ------------ -------------------- -------------------------------------------------- ---------------
表空間 [TBS_METRIC] 已佔用 [92 percent] TBS_METRIC 1 Warning 93 18-12月-13 09.44.41. 給表空間添加空間
                                                                                                         865000 上午 +08:00
SQL> --修改TEST_METRIC表空間數據文件的MAXSIZE
SQL> alter database datafile
  2 'G:\oracle\product\10.2.0\oradata\orcl\tbs_metric01.dbf' autoextend on maxsize 500M;
數據庫已更改。

SQL> @E:\script\dba_tablespaces.sql

Tablespace basic Information
TABLESPACE_NAME MEGS_ALLOC MEGS_FREE MEGS_USED PCT_FREE PCT_USED MAX
------------------------------ ---------- ---------- ---------- ---------- ---------- ----------
LMTEMP 100 100 0 100 0 0
SYSAUX 400 25 375 6 94 32768
SYSTEM 570 1 569 0 100 655
TBS_METRIC 38 1 37 2 98 500
TEMP 200 200 0 100 0 0
TESTBIGSP 50 50 0 100 0 33554432
TESTSP 150 150 0 100 0 33792
TS_CDCPUB 3000 920 2080 31 69 3000
UNDOTBS1 2605 2595 10 100 0 32768
USERS 4623 534 4089 12 88 34768
已選擇10行。

SQL>--修改TEST_METRIC表空間數據文件的MAXSIZE之後,對應的告警被轉移到DBA_ALERT_HISTORY視圖中
SQL> SELECT REASON,
  2 OBJECT_NAME,
  3 MESSAGE_LEVEL,
  4 MESSAGE_TYPE,
  5 METRIC_VALUE,
  6 CREATION_TIME,
  7 SUGGESTED_ACTION,
  8 ADVISOR_NAME
  9 FROM DBA_OUTSTANDING_ALERTS;
未選定行

SQL> set linesize 300
SQL> col SEQUENCE_ID FOR 9999999
SQL> col REASON_ID FOR 9999999
SQL> col OBJECT_NAME FOR a15
SQL> col OBJECT_TYPE FOR a15
SQL> col MESSAGE_TYPE FOR a15
SQL> col METRIC_VALUE FOR 999999.99
SQL> col REASON FOR a50
SQL> col SUGGESTED_ACTION FOR a50
SQL> SELECT T.SEQUENCE_ID,
  2 T.REASON_ID,
  3 T.OBJECT_NAME,
  4 T.OBJECT_TYPE,
  5 T.MESSAGE_TYPE,
  6 T.METRIC_VALUE,
  7 T.REASON,
  8 T.SUGGESTED_ACTION
  9 FROM DBA_ALERT_HISTORY T
 10 ORDER BY T.CREATION_TIME DESC;
SEQUENCE_ID REASON_ID OBJECT_NAME OBJECT_TYPE MESSAGE_TYPE METRIC_VALUE REASON SUGGESTED_ACTION
----------- --------- --------------- --------------- --------------- ------------ -------------------------------------------------- -------------------
       4010 9 TBS_METRIC TABLESPACE Notification 7.40 表空間 [TBS_METRIC] 已佔用 [7 percent] 給表空間添加空間


維護度量

  --爲TBS_METRIC表空間生成度量。
BEGIN
DBMS_SERVER_ALERT.SET_THRESHOLD(
   metrics_id => DBMS_SERVER_ALERT.TABLESPACE_PCT_FULL,
   warning_operator => DBMS_SERVER_ALERT.OPERATOR_GE,
   warning_value => '80',
   critical_operator => DBMS_SERVER_ALERT.OPERATOR_GE,
   critical_value => '90',
   observation_period => 1,
   consecutive_occurrences => 1,
   instance_name => NULL,
   object_type => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
   object_name => 'TBS_METRIC');
END;
/
--刪除metric,要將warning_operator ,warning_value,critical_operator,critical_value 置爲NULL。
BEGIN
DBMS_SERVER_ALERT.SET_THRESHOLD(
   metrics_id => DBMS_SERVER_ALERT.TABLESPACE_PCT_FULL,
   warning_operator => NULL,
   warning_value => NULL,
   critical_operator => NULL,
   critical_value => NULL,
   observation_period => 1,
   consecutive_occurrences => 1,
   instance_name => NULL,
   object_type => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
   object_name => 'TBS_METRIC');
END;
/
--取消對度量的檢查,這時warning_value,critical_value需要設置爲0。
BEGIN
DBMS_SERVER_ALERT.SET_THRESHOLD(
   metrics_id => DBMS_SERVER_ALERT.TABLESPACE_PCT_FULL,
   warning_operator => DBMS_SERVER_ALERT.OPERATOR_DO_NOT_CHECK,
   warning_value => 0,
   critical_operator => DBMS_SERVER_ALERT.OPERATOR_DO_NOT_CHECK,
   critical_value => 0,
   observation_period => 1,
   consecutive_occurrences => 1,
   instance_name => NULL,
   object_type => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
   object_name => 'TBS_METRIC');
END;
/

--如果監控剩餘空間量 爲metrics_id設置DBMS_SERVER_ALERT.TABLESPACE_BYT_FREE
--warning_value的單位爲MB
BEGIN
DBMS_SERVER_ALERT.SET_THRESHOLD(
   metrics_id => DBMS_SERVER_ALERT.TABLESPACE_BYT_FREE,
   warning_operator => DBMS_SERVER_ALERT.OPERATOR_LE,
   warning_value => '2310',
   critical_operator => DBMS_SERVER_ALERT.OPERATOR_LE,
   critical_value => '1000',
   observation_period => 1,
   consecutive_occurrences => 1,
   instance_name => NULL,
   object_type => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
   object_name => 'USERS');
END;
/


observation_period

The period at which the metric values are computed and verified against the threshold setting. The valid range is 1 to 60 minutes.
consecutive_occurrences
The number of observation periods the metric value should violate the threshold value before the alert is issued. 

度量視圖
The following dictionary views provide information about server alerts:
    DBA_THRESHOLDS lists the threshold settings defined for the instance.
    DBA_OUTSTANDING_ALERTS describes the outstanding alerts in the database.
    DBA_ALERT_HISTORY lists a history of alerts that have been cleared.
    V$ALERT_TYPES provides information such as group and type for each alert.
    V$METRICNAME contains the names, identifiers, and other information about the system metrics.
    V$METRIC and V$METRIC_HISTORY views contain system-level metric values in memory.

參考:Managing Tablespace Alerts
http://docs.oracle.com/cd/B19306_01/server.102/b14231/schema.htm#ADMIN10120

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章