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