|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Oracle Enterprise Manager Grid Control 11g: Blackouts setzen mit EMCLI und EMCTL Ralf Durben, 26.01.2011
Oracle Enterprise Grid Control 11g bietet neben der grafischen Oberfläche auch ein Command Line Interface (emcli) an. Die allgemeine Nutzung und Verwendung in verschiedenen Fällen ist sehr gut in folgenden Veröffentlichungen erklärt:
Dazu ergänzend möchte ich hier das Handling von Blackouts mittels EMCLI beschreiben. Dieses findet auf der Seite des OMS statt. Aber auch auf der Seite der Agenten kann ein Blackout gesetzt werden mit EMCTL.
Setzen von Blackouts mit EMCLI
Zunächst einmal eine Auflistung der in EMCLI bzgl. Blackouts zur Verfügung stehenden Kommandos:
|
|
|
|
Blackout Verbs create_blackout -- create a blackout delete_blackout -- delete a blackout get_blackout_details -- get detailed info for a blackout get_blackout_reasons -- list all blackout reasons get_blackout_targets -- list targets for a blackout get_blackouts -- list blackouts stop_blackout -- stop a blackout |
|
|
|
Erstellen eines Blackouts
Die allgemeine Syntax zum Erstellen eines Blackouts lautet
|
|
|
|
emcli create_blackout -name="name" add_targets="name1:type1;name2:type2;..."... reason="reason" [-description="description"] [-jobs_allowed] [-propagate_targets] schedule= frequency:]; duration:[HH...][:mm...]; [start_time:]; [end_time:]; [repeat:<#m|#h|#d|#w>]; [months:<#,#,...>]; [days:<#,#,...>]; [tzinfo:] [tzoffset:#|[-][HH][:mm]] [tzregion:<...>] |
|
|
|
Ich erkläre hier nicht die komplette Syntax, denn dazu gibt es das Handbuch auf OTN. Vielmehr gebe ich hier Beispiele für gängige Aufgaben an. So kann ein Blackout zum Beispiel auf folgende Arten erstellt werden:
1. Beispiel
Für die Datenbank ORCL soll ein Blackout für die Dauer von 30 Minuten gesetzt werden, weil z.B. ein Offline Backup erstellt wird. (OK, jetzt werden einige denken, warum man heute noch ein Offline Backup erstellen sollte, da es doch auch Online geht. Es gibt aber durchaus noch Oracle DBAs, die Offline Backup erstellen, und es ist ja nur ein Beispiel)
|
|
|
|
emcli create_blackout -name=Blackout1 -add_targets=ORCL:oracle_database -schedule="duration::30" -reason="Die Datenbank wird gesichert" |
|
|
|
2. Beispiel
Für die Datenbank ORCL soll ein Blackout für ein festes Zeitintervall gesetzt werden.
|
|
|
|
emcli create_blackout -name=Blackout1 -add_targets=ORCL:oracle_database -schedule="frequency:once;start_time:11-01-24 23:00;duration::60;tzinfo:target:tzoffset:1" -reason="Die Datenbank wird gesichert" |
|
|
|
3. Beispiel
Man kann auch für mehrere Targets mit einem Kommando ein Blackout setzen. Der Timezone Offset gibt dabei an, welche Zeitzone für die Bestimmung der Ausführungszeit verwendet werden soll, hier also die Zeitzone der ersten angegebenen Datenbank, also ORCL1:
|
|
|
|
emcli create_blackout -name=Blackout1 -add_targets="ORCL1:oracle_database;ORCL2:oracle_database" -schedule="frequency:once;start_time:11-01-24 23:00;duration::60;tzinfo:target:tzoffset:1" -reason="Die Datenbank wird gesichert" |
|
|
|
4. Beispiel
Man kann ein Blackout auch für alle von einem Target abhängigen Targets setzen. Hier wird der Blackout bis zu einem festen Endzeitpunkt gesetzt:
|
|
|
|
emcli create_blackout -name=Blackout2 -add_targets=meinserver:host -propagate_targets -schedule="end_time:2011-01-26 19:00;tzinfo:specified;tzregion:Europe/Berlin" -reason="Maschine wird repariert" |
|
|
|
Bei den Targets muss man ja den Target Typ angeben. Es stellt sich die Frage, wie diese internen Typnamen aussehen. Dazu gibt es einen einfachen Trick: Man kann nämlich mit emcli eine Auflistung aller in Grid Control verwalteten Targets bekommen, mit
|
|
|
|
emcli get_targets Status ID Status Target Type Target Name 1 Up host gridcontrol.durben.de 1 Up oracle_database ORCL 1 Up oracle_emd durben1.durben.de:3872 1 Up oracle_listener LISTENER_durben1.durben.de ... |
|
|
|
Die möglichen Target Typen werden damit also frei Haus geliefert.
Anzeigen aller Blackouts
Die derzeitig aktiven Blackouts kann man sich anzeigen lassen mit
|
|
|
|
emcli get_blackouts [-target="name1:type1" | -hostnames="host1;host2;..."] [-noheader] [-script | -format= [name:]; [column_separator:"column_sep_string"]; [row_separator:"row_sep_string"]; ] |
|
|
|
Man kann also die Suche einschränken nach Targets. Das ist bei einer großen Anzahl aktiver Blackouts sicherlich interessant. Einen Komplettüberblick bekommt man einfach mit
|
|
|
|
emcli get_blackouts Name Created By Status Status ID Next Start Duration Reason Frequency Repeat Start Time End Time Previous End TZ Region TZ Offset Blackout2 RDURBEN Started 4 2011-01-26 15:07:30 03:53 Maschine wird repariert once none 2011-01-26 15:07:30 2011-01-26 19:00:00 none Europe/Berlin +00:00 |
|
|
|
Stoppen und Löschen von Blackouts
Blackouts werden immer mit einer Dauer oder Endzeitpunkt angegeben. Mann kann sie aber auch vorzeitig beenden mit
|
|
|
|
emcli stop_blackout -name="name" [-createdby="blackout_creator"] |
|
|
|
Also im obigen Beispiel kann man den Blackout stoppen mit
|
|
|
|
emcli stop_blackout -name="Blackout2" |
|
|
|
Der Blackout wird als gestoppt angezeigt:
|
|
|
|
emcli get_blackouts Name Created By Status Status ID Next Start Duration Reason Frequency Repeat Start Time End Time Previous End TZ Region TZ Offset Blackout2 RDURBEN Stopped 10 none 03:53 Maschine wird repariert once none 2011-01-26 15:07:30 2011-01-26 19:00:00 2011-01-26 15:14:08 Europe/Berlin +00:00 |
|
|
|
und kann nun gelöscht werden mit
|
|
|
|
emcli delete_blackout -name="Blackout2" |
|
|
|
Setzen von Blackouts mit EMCTL
Soll ein Blackout auf der Agentenseite gesetzt werden, zum Beispiel als Teil eines Wartungsskripts, so kommt die Utility EMCTL zum Einsatz. Leider gibt es hier kein Kommando zum Auflisten aller von diesem Agenten überwachten Targets, aber dass kann der Datei $AGENT_HOME/sysman/emd/targets.xml entnommen werden.
Erstellen eines Blackouts
Ein Blackout wird erstellt mit
|
|
|
|
emctl start blackout [-nodeLevel] [[:]].... [-d ] [-nowait] |
|
|
|
also zum Beispiel
|
|
|
|
./emctl start blackout Blackout1 radu1:oracle_database Oracle Enterprise Manager 11g Release 1 Grid Control 11.1.0.1.0 Copyright (c) 1996, 2010 Oracle Corporation. All rights reserved. Blackout Blackout1 added successfully EMD reload completed successfully |
|
|
|
Anzeigen von Blackouts
Die laufenden Blackouts können angezeigt werden mit
|
|
|
|
emctl stop blackout [-nowait] |
|
|
|
Im Beispiel sieht das dann so aus:
|
|
|
|
./emctl status blackout Oracle Enterprise Manager 11g Release 1 Grid Control 11.1.0.1.0 Copyright (c) 1996, 2010 Oracle Corporation. All rights reserved. Blackoutname = Blackout1 Targets = (radu1:oracle_database,) Time = ({2011-01-26|16:16:07,|} ) Expired = False |
|
|
|
Löschen eines Blackouts
Ein Blackout wird gelöscht mit
|