Archiver Stuck: Wenn das SAP System steht
Autor: Maria Joanna Born | 4. Juli 2018
Kennen Sie diese Situation? Bei jedem Versuch der Anmeldung an Ihrem SAP System bekommen Sie nur eine Sanduhr zu sehen? Falls Sie bereits angemeldet sind, ist es Ihnen nicht möglich eine neue Transaktion aufzurufen, weil das System diese scheinbar bis in alle Ewigkeit lädt? Hintergrundjobs laufen auf Time-Outs? Nichts geht mehr? Die Ursachen hierfür können vielfältig sein. Es gibt jedoch eine Ursache, die besonders häufig vorkommt - den sogenannten Archiver Stuck. Was das ist, wie Sie diese Situation erkennen und beheben können, will ich Ihnen in diesem Beitrag erklären.
Oracle-Datenbanken schreiben für jede Schreib-Operation, die auf der Datenbank getätigt wurde, Einträge in ein Redolog. Hierbei handelt es sich um eine Datei, die zunächst auf dem Server der Datenbank abgelegt wird. In der Regel haben Sie bereits eine Methode zur regelmäßigen Archivierung und Löschung dieser Dateien eingerichtet, da ansonsten in Dateisystem bis ins unendliche wachsen müsste. Es kann aber vorkommen, dass diese Methode nicht schnell genug greift, weil zum Beispiel deutlich mehr Operationen stattfinden als erwartet. Außerdem ist es möglich, dass der Archivierungsserver voll ist, keine Verbindung zu diesem hergestellt werden kann oder dieser sogar defekt ist.
Was passiert dann? Die Datenbank schreibt weiter Redologs und das Dateisystem füllt sich langsam aber sicher. Irgendwann ist es zu 100% gefüllt. Das System wartet darauf, Änderungen protokollieren zu können und es werden keine weiteren Ressourcen mehr frei. Auch wenn Sie jetzt einen Weg finden, Ihre Archivierungsmethode wiederherzustellen, indem also zum Beispiel das Netzwerk repariert wird, läuft das Archivierungsprogramm nicht mehr, da es zum arbeiten freien Speicher in eben diesem Dateisystem bräuchte. Das nennt man einen Archiver Stuck.
SAP Basis Berater - gesamte Projekte oder Berater auf Zeit
Sie suchen Unterstützung durch SAP Basis Berater? Wir bieten mehr als nur einen gewöhnlichen Berater auf Zeit. Informieren Sie sich über Ihre Vorteile!
Wie erkennen Sie einen Archiver Stuck?
Das Hauptsympton eines Archiver Stucks kennen Sie bereits, egal was Sie im System tun wollen, Sie bekommen nichts als eine Sanduhr zu sehen. Es gibt jedoch noch weitere Symptome, die Ihnen dabei helfen den Archiver Stuck deutlich von anderen Ursachen zu unterscheiden.
- Sie können sich nicht mehr an der Datenbank anmelden.
Beim Versuch, sich z. B. mit sqlplus an der Datenbank anzumelden, erhalten Sie diese oder eine ähnliche Fehlermeldung:ORA-00257: archiver error. Connect internal only, until freed
- Es sind Fehlermeldungen bezüglich eines I/O-Errors im Datenbank-Trace zu sehen.
- Das Dateisystem ist zu 100 % gefüllt. Im Idealfall wissen Sie bereits, wo ihre Datenbank die Redologs hinschreibt. Ein Standardpfad ist
$ORACLE_HOME/oraarch/oraSID
Ansonsten gibt der Datenbank-Parameter
log_archive_dest
Auskunft über diesen Speicherort. Dieser ist im Startprofil der Datenbank (iniSID.ora) angegeben.
- Alle Workprozesse sind belegt. Dieses Symptom kann zusätzlich zu den oben genannten auftreten, muss es aber nicht. Es kann zu dieser Situation kommen, weil kein Workprozess mehr Buchungen auf der Datenbank durchführen kann. Der aktuelle User oder Job belegt dann dauerhaft seinen Workprozess und gibt diesen nicht wieder frei. Dadurch sind sehr schnell alle Workprozesse belegt. Wenn Sie sich nicht mehr am System anmelden können, können Sie dies unter Unix mit Hilfe des Tools dpmon einsehen. Falls Sie mehrere Applikationsserver betreiben, müssen Sie diesen Befehl auf dem jeweiligen Applikationsserver ausführen. Wichtig ist, dass dieses Symptom alleine kein Hinweis auf einen Archiver Stuck ist. Es kann diverse andere Ursachen haben.
Behebung eines Archiver Stuck
Wenn der Archiver Stuck erstmal aufgetreten ist, haben Sie nicht mehr viele Möglichkeiten, ihn zu beheben. Für jede der Lösungen ist Geschwindigkeit von Vorteil. Stellen Sie also vorher unbedingt sicher, dass der Archiver loslaufen kann, wenn er erstmal Platz im Dateisystem hat.
Die beste Lösung ist, sog. Dummy-Dateien, also Dateien ohne Inhalt, aus dem Verzeichnis zu löschen, sofern solche Dateien vorhanden sind. Eventuell ist es auch möglich, das Dateisystem online zu erweitern und so kurzfristig mehr Platz zu schaffen. Sie können auch den Speicherort für für die Dateien kurzfristig zu ändern. Genaueres hierzu finden Sie im Anonymen Kommentar weiter unten oder in der OSS Note 391 OSS Note 391. Dafür müssen Sie den o.g. Parameter anpassen und die Datenbank neustarten – das bedeutet, dass diese Lösung nur dann möglich ist, wenn Sie sich noch an der Datenbank anmelden können.
Als letzten Ausweg können Sie die Redologs auch verschieben. Ich rate Ihnen, diese nicht zu löschen, denn ohne sie können Sie die Datenbank nicht wiederherstellen. Verschieben Sie am besten die neusten Dateien, um die Reihenfolge der Dateien zu erhalten. So können Sie zwar kurzfristig Platz schaffen um den Archiver zu starten, aber die verschobenen Dateien werden nicht archiviert. Im Fall eines Hardware-Fehlers sind diese ggf. nicht wiederherstellbar. Wenn der Archiver Stuck endgültig behoben ist, können Sie ein vollständiges Backup machen. Danach werden die verschobenen Redolog-Dateien sehr wahrscheinlich nicht mehr benötigt.
Um einem Archiver Stuck vorzubeugen gilt es vor allem abzuschätzen, wie viele Redolog-Dateien in Ihrem System pro Minute geschrieben werden und die Archivierung dieser entsprechend des vorhandenen Platzes auf dem Dateisystem einzuplanen. Ich empfehle Ihnen, als Puffer manuell Dummy-Dateien anzulegen, die etwa 5% des Platzes auf dem Dateisystem einnehmen. Dieser Puffer kann im Notfall einfach gelöscht werden, um einen Archiver Stuck schnell beheben zu können, ohne dass relevante Daten verloren gehen.
Haben Sie Erfahrungen mit Archiver Stucks und kennen vielleicht noch andere Lösungsmöglichkeiten? Ich freue mich über Ihre Kommentare.
2 Kommentare zu "Archiver Stuck: Wenn das SAP System steht"
Ihre Frage:
Haben Sie Erfahrungen mit Archiver Stucks und kennen vielleicht noch andere Lösungsmöglichkeiten?
Meine Antwort:
1) Check orraach
2) sqlplus – checken & setzen der log_archive_dest_1
SQL> show parameter log_archive_dest
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_dest_1 string LOCATION=/oracle/LPF/oraarch/L
PFarch
3) leeren Pfad suchen (df -h) – tmp-Verzeichnis anlegen
mkdir /oracle/LPF/sapdata/oraarch_tmp
4) Log-Destination im Oracle (temporär) anpassen (und checken)
SQL> alter system set log_archive_dest_1=“LOCATION=/oracle/LPF/sapdata/oraarch_tmp/LPFarch“;
System altered.
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_dest_1 string LOCATION=/oracle/LPF/sapdata/o
raarch_tmp/LPFarch
5) Logswitch erzwingen (sqlplus/
alter system switch logfile;
6) BRARCHIVE starten und checken
7) Wenn erfolgreich beendet, ist wieder Platz im Default-oraarch -> temporären Oracle-Parameter zurückändern auf den ursprünglichen Wert (im sqlplus)
alter system set log_archive_dest_1=“LOCATION=/oracle/LPF/oraarch/LPFarch“;
show parameter log_archive_dest_1
8) Prüfen d. temporären Verzeichnis per ls -> wenn nicht wieder leer, 2. BRARCHIVE starten
9) Erneut prüfen -> dann sollte es leer sein
10) Double-check, daß die weiteren Offline-Redologs korrekt angelegt werden mittels (sqlplus)
alter system switch logfile;
Auf diese Art sollte das System ohne Unterbrechung und ohne verschieben der Archive weiterlaufen.
Näheres dazu auch unter diesem Hinweis:
https://launchpad.support.sap.com/#/notes/391 stehts noch etwas genauer:
ALTER SYSTEM ARCHIVE LOG STOP;
Bei Verwendung von LOG_ARCHIVE_DEST_1: ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = ‚LOCATION=‘;
Bei Verwendung von LOG_ARCHIVE_DEST: ALTER SYSTEM SET LOG_ARCHIVE_DEST=;
ALTER SYSTEM ARCHIVE LOG START;
Und in Hinweis https://launchpad.support.sap.com/#/notes/14562 findet sich ein möglicher Grund, warum der BRARCHIVE die Arbeit komplett verweigert.
Wenn Sie die Möglichkeit haben, fahren Sie mal einen Test. Geht auch, wenn das Archiv noch nicht voll ist.
Gruß aus Wiesbaden!
Vielen Dank für Ihre Anmerkung! Natürlich gibt es diese Möglichkeit, solange man sich noch an der Datenbank anmelden kann und ich halte sie auch für die elegantere Lösung.
Mit freundlichen Grüßen,
Maria Joanna Born