Frühjahrsputz in der Datenbank - Metriken und Schwellwerte

Viele DBAs nutzen das CloudControl zur Administration und Überwachung von Datenbanken. Um Monitoring und Alerting zu nutzen kann, konfiguriert man eigene oder vorgefertigte Metriken. Treten bestimmte Ergebnisse ein (z.B. ORA-600 im alert.log der Datenbank) ein oder werden definierte Schwellwerte (Füllstand von Tablespaces) überschritten, kann sich der Datenbankadministrator benachrichtigen lassen und ggf. Gegenmaßnahmen ergreifen.

Im Laufe eines Datenbanklebens kann es vorkommen, dass einige dieser definierten Schwellwerte ungültig werden, oder z.B. durch Datenbankmigrationen auf alte Instanznamen verweisen. Zur Prüfung der Schwellwerte kann man die Systemview DBA_THRESHOLDS abfragen:

 

SQL> select metrics_name, instance_name, object_name, status from dba_thresholds;

METRICS_NAME                                           INSTANCE_NAME    OBJECT_NAME      STATUS
------------------------------------------------------ ---------------- ---------------- -------
Average Users Waiting Counts                           dbtest           Administrative   VALID
Average Users Waiting Counts                           dbprod           Administrative   VALID
Current Open Cursors Count                             dbprod           Concurrency      VALID
Logons Per Sec                                         dbtest           Application      VALID
Logons Per Sec                                         dbprod           Application      VALID
Tablespace Space Usage                                 database_wide    USERTBS1         VALID
Tablespace Space Usage                                 database_wide    USERTBS2         INVALID

 

Im CloudControl sieht man nur gültige Einträge. Wie also die ungültigen bzw. alten Einträge löschen? Hier hilft das Datenbank-Package DBMS_SERVER_ALERT. Über die Prozedur SET_THRESHOLD kann man Einträge löschen, indem man den Schwellwerten den Wert NULL zuweist. Aus dem oben genannten Beispiel kann man den Eintrag für "Average Users Waiting Counts" der Datenbank "dbtest" wie folgt löschen:

 

begin
    DBMS_SERVER_ALERT.SET_THRESHOLD(
    metrics_id               => DBMS_SERVER_ALERT.AVG_USERS_WAITING,
    warning_operator         => NULL,
    warning_value            => NULL,
    critical_operator        => NULL,
    critical_value           => NULL,
    observation_period       => 1,
    consecutive_occurrences  => 3,
   instance_name            => 'dbtest',
   object_type              => DBMS_SERVER_ALERT.OBJECT_TYPE_EVENT_CLASS,
   object_name              => 'Administrative');   
end;   
/

 

Zum Löschen der invaliden Tablespacewarnung benutzt man folgenden Aufruf:

 

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  => 3,
   instance_name            => 'database_wide',
   object_type              => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
   object_name              => 'USERTSB2');   
end;   
/

 

Eine Übersicht über die Konstanten für Metriken und Objekttypen finden Sie im Oracle Handbuch

Kommentare

Keine Kommentare

Kommentar schreiben

* Diese Felder sind erforderlich