利用Oracle threshold(度量閥值)監控表空間

lwitpub發表於2009-09-28

This group of metrics gives you the availability and status of the managed database. Metrics include:Database Status、Database Process Check、aximum # of sessions since startup and Availability.   在oracle10G中引入了metric,用來監控資料庫表空間,如下例項:

1、確認現有的metric

SQL> conn / as sysdba

已連線。

SQL> select count(1) from dba_thresholds;

  COUNT(1)

----------

        22

2、建立表空間

SQL> select metric_id,metric_name from v$metricname where metric_name like'%space%'

  2  ;

 METRIC_ID METRIC_NAME

---------- ----------------------------------------------------------------

      9001 Tablespace Bytes Space Usage

      9000 Tablespace Space Usage

SQL> create tablespace tbs_lw datafile '/opt/oracle/oradata/charge/tbs_lw01.dbf' size 10m; 

表空間已建立。

3、建立新的metric

SQL> BEGIN dbms_server_alert.set_threshold (dbms_server_alert.tablespace_pct_full,NULL, NULL, NULL, NULL, 1, 1, NULL, dbms_server_alert.object_type_tablespace, 'TBS_LW');END;
  2  /

PL/SQL 過程已成功完成。
4、檢視新建立的metric


SQL> select count(1) from dba_thresholds;

  COUNT(1)
----------
        23

SQL> SELECT warning_value, critical_value, status FROM dba_thresholds WHERE metrics_name = 'Tablespace Space Usage' AND object_name = 'TBS_LW';

WARNING_VALUE        CRITICAL_VALUE       STATUS
-------------------- -------------------- -------
80                   95                   VALID
5、模擬一個表資料增長達到threshold

SQL> create table t1 tablespace tbs_lw as select * from user_objects;

表已建立。

SQL> select count(*) from t1;

  COUNT(*)
----------
     30060

SQL> insert into t1 select * from t1 where rownum<4001;

已建立4000行。

SQL> insert into t1 select * from t1 where rownum<4001;

已建立4000行。

SQL> commit;

提交完成。
6、檢視是否生效

SQL> SELECT reason, message_level,DECODE(message_level, 5, 'WARNING', 1, 'CRITICAL') ALERT_LEVEL FROM dba_outstanding_alerts WHERE object_name = 'TBS_LW';

REASON                                             MESSAGE_LEVEL ALERT_LE
-------------------------------------------------- ------------- --------
表空間 [TBS_LW] 已佔用 [90 Percent]                            5 WARNING


7、停用metric

SQL> BEGIN dbms_server_alert.set_threshold (dbms_server_alert.tablespace_pct_full,dbms_server_alert.operator_do_not_check, '0',dbms_server_alert.operator_do_not_check, '0', 1, 1, NULL,dbms_server_alert.object_type_tablespace, 'TBS_LW');END;
  2  /

PL/SQL 過程已成功完成。

SQL> SELECT warning_value, critical_value, status FROM dba_thresholds WHERE metrics_name = 'Tablespace Space Usage' AND object_name = 'TBS_LW';

WARNING_VALUE        CRITICAL_VALUE       STATUS
-------------------- -------------------- -------
0                    0                    VALID
8、取消metric

BEGIN dbms_server_alert.set_threshold (dbms_server_alert.tablespace_pct_full,NULL, NULL, NULL, NULL, 1, 1, NULL, dbms_server_alert.object_type_tablespace, 'TBS_LW');END;

 2  /

PL/SQL 過程已成功完成。
SQL> SELECT warning_value, critical_value, status FROM dba_thresholds WHERE metrics_name = 'Tablespace Space Usage' AND object_name = 'TBS_LW';    

未選定行

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/628922/viewspace-615813/,如需轉載,請註明出處,否則將追究法律責任。

相關文章