Archivelog1

Liebe/-r Experte/-in,

heute früh war ich überracht, dass die ORACLE10g DB nicht im betrieb war. Die fehler war irgendwas mit dem Archivelock. die fehler ist um 04:00 morgens aufgetretten, aber wir habens erst um 08:00 endeckt. Wie kann ich es automatisieren, dass wenn irgenwelche oder zumindestens fatalfehler auftretten, das informiert bin(Lieber per telefon!). Ich bin noch junior in diesem bereich, und würde mich sehr interessieren ob ein möglichkeit gib’s sowas zu machen!
Danke im Voraus.
Mit freundlichen Grüßen
Simo

Hi!

Da gibts bestimmt Firmen, die sowas anbieten… Kann ich Dir aber leider auch nichts zu sagen.

Grüße, Alex

Hi!

Die DB kann da wenig machen - wie auch, wenn sie „steht“.
Das Ganze muß vom System aus gemacht werden; hierfür gibt es verschiedenste Produkte, die die laufende Software „überwachen“.

Grüße,
Tomh

Eins vorweg, in dieser Hinsicht bin ich kein Experte.

Ich denke, dass es keine Möglichkeit mit Oracle-eigenen Mitteln gibt sowas zuwege zu bringen.

Auf jeden Fall wird eine Art Gateway benötigt (in der Art: http://www.visualgsm.com/index.htm) Dazu müßte man aber mehr über Ihre technische Infrastruktur wissen.

Wenn Sie Asterisk (OpenSource Telefonanlagensoftware hauptsächlich für Linux) einsetzen könnte man vorgefertigte Anrufe absetzen lassen.

Man könnte auf Betriebssystemebene die Logfiles auf Stichwörter hin überwachen lassen (z.B. den Error-Level) und automatisch Mails verschicken oder wieder über Asterisk anrufen lassen. Die Mails müssten dann per PushMail auf Ihr Telefon geschickt werden. Mir ist allerdings kein fertiges Produkt bekannt, das alles dies leistet (und auf Ihrem System läuffähig ist).

Soweit, was mir dazu einfällt …

hi,
vermutlich moechtest du ueber alle Fehler des oracleservers
informiert werden. dann solltest du dir ein shellskriptschreiben,
welches regelmaessig das alert.log der Datenbank nach ora- Fehlern
durchsucht und dieseper Mail meldet.
archivefehler treten in der Regel durch festplattenueberlauf auf,
also sollte eine kontrolle des Dateisystems auf fuellstand erfolgen
ansonsten hilft regelmaessiges kontrollieren des systemzustandes
durch den Administrator.
es kann auch der enterprisemanager oder gridcontrol fuer die
ueberwachung genutzt werden, hier muss aber auf die lizensierung
geachtet werden( wie immer ein heikles Thema)
viel Erfolg!
Guido

Hallo,

für diese Zwecke bietet sich eine Überwachungs-Software wie z.B. Tivoli an. Aus meiner Sicht sollte man aber erstmal die Ursache für den aktuellen Ausfall ermitteln und entsprechende Maßnahmen ergreifen…

Viele Grüße

Hallo Simo,

die erste Frage ist, wo kann man den Fehler erkennen?

Wenn das System nicht einen schweren Fehler separat meldet, kann man z.B. alle 10 Minuten den Logfile nach bestimmten Meldungen scannen oder nach den gewünschten Prozessen (falls die Prozesse „wegbrechen“) suchen. Oder man hat einen regelmäßigen Prozes, der alle 5 Minuten starten und eine Datenbank-Manipulation ausführt (ggf. separate Tabelle) und Alarm auslöst, wenn es dies nicht mehr kann.

Ich hoffe Dir mit diesen Ansätzen geholfen zu haben.

MfG Georg V.

P.S.: Das mit den Anruf würde doch eher mit einer SMS implementieren, denn Sparchnachrichten sind doch etwas aufwändiger :smile:

Hi Simo,
da gibt es eine ganze Reihe von Möglichkeiten. Welches die richtige Varient für euch ist hängt wie üblich von den Anforderungen ab.

Es fängt an bei einem kleinen Script in der Script Sprache deiner Wahl, welches die Datenbank ‚untersucht‘ und dir eine E-Mail schickt, wenn etwas faul ist.

‚untersuchen‘ heisst dabei typischer Weise:

  • Nach Einträgen in den Logs suchen
  • sich an der Datenbank anmelden und ein einfaches Select Statement absetzen.
  • kontrollieren, das typische Ereignisse tatsächlich eintreten, z.B. könnte man kontrollieren, dass eine bestimmte Tabelle in jeder Stunde zwischen 8 und 18 Uhr um wenigstens 50 Einträge wächst.
  • prüfen, das ausreichend Platz im Hauptspeicher und den Festplatten vorhanden ist.

Kommerzielle Tools bringen Adapter für unterschiedliche Systeme wie Datenbanken Webserver und dergleichen mit. Lassen sich oft weitgehend konfigurieren, in welcher Art wer benachrichtigt werden soll. Z.B nur wenn ein bestimmtes Ereignis 3x innerhalb von 15 Minuten auftritt.

Welche kommerzielle Tools etwas taugen weiß ich nicht, aber ich denke mit selbstgebauten und freien Lösungen sollte man recht weit kommen.

Such einfach mal nach Dingen wie ‚Monitoring‘ oder ‚watchdog‘ zusammen mit Oracle und dergleichen.

Jens

Hallo Simo,

natürlich gibt es die Möglichkeit. Als Stichwort nenne ich Dir den Enterprise Manager von Oracle. Alles weitere sprengt den Rahmen von Wer-Weiss-Was. Ich denke ein ausgebildeter Oracle-DBA in Eurem Unternehmen kann Dir da sicher weiter helfen.

Schöne Grüße
Kleines-SQL-Wunder

sorry, aber für eine Beantwortung bräuchte ich etwas mehr Informationen.

Grüße

Hallo Simo,
die Frage „geht so etwas?“ ist mit zunächst mit einem generellen „Ja“ zu beantworten.
Schwerwiegende Fehler werden im Alert.log protokolliert, also etwa auch ein „Hängen der Datenbank“ durch eine Archiverprozess, der nicht genügend freien Plattenplatz findet u.Ä.
Das Alert.log nach solchen Fehlern zu duchsuchen, ist eine vielgenutzte Methode von Monitoring-Software. Je nachdem, welche Benachrichtigungsmethoden diese SW unterstützt kann auch ein Alarm per Telefon versendet werden.
Das Gridcontrol von Oracle beispielsweise stellt solche Benachrichtigungsmethoden bzw. Schnittstellen zu passenden Services zur Verfügung, ist aber für eine Datenbank allein wohl eher „oversized“.
Für den nicht-professionellen Einsatz wäre folgendes Szenario eine gute Gelegenheit zum Dazu-Lernen, aber
in Produktivumgebungen verbietet sich diese „einfache Meldekette“ allerdings aus Gründen der Datensicherheit!

Man programmiert einen Cronjob, der das Alert.log regelmässig nach Fehlern durchsucht. Wird ein melde-würdiger Fehler gefunden, wird eine Email an einen entsprechenden Mail-Account versendet. Die Mailbox wird so konfiguriert, daß sie auf den dedizierten Absender (Oracle-Account) reagiert und eine SMS versendet.
In Kombination mit einem Smartphone kann man dann die Mail-Benachrichtigung lesen und u.U. via Remotezugang den Fehler auflösen.

Mit freundlichen Grüßen

Rolf Krissel

Hallo Simo,

eine Möglichkeit ist, die alert.log-Datei mit einen Skript zu überwachen und bei auftretenden Fehlern diese zu analysieren, ob sie „schlimm“ sind und sie per z. B. sendmail an eine E-Mail-Adresse zu senden.

Verschiedene Monitoring-Produkte bieten diese Funktion natürlich auch eingebaut.

Schau Dir mal z. B. die Quest-Produkte (Spotlight ,…) for Oracle an…
Grüße, Andreas

Hi Simo,

du musst einfach den Platz auf dem Laufwerk überwachen wo Oracle seine Archivelogs speichert. Wenn das Laufwerk voll ist muss Oracle anhalten und warten bis wieder Platz ist. Am besten ihr benutzt dafür eine Monitoringsoftware mit Pagerfunktion oder den Oracle Enterprise Manager.

Gruß,
tree