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


Über den Autor

Thomas Lehmann

Weitere Beiträge dieses Autors

Kommentare

Keine Kommentare

Kommentar schreiben

* Diese Felder sind erforderlich