AS/400 Journaling

Aus Knowledgebase
Version vom 14. Juli 2018, 14:49 Uhr von PoC (Diskussion | Beiträge) (+Weblinks)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Die AS/400-Plattform beinhaltet die Möglichkeit, Änderungen an Datenbankdateien aufzuzeichnen. Dies wird dort als Journaling bezeichnet.

Die Implementation greift auf zwei Objektarten der AS/400 zurück:

  • Das Journal wird mit den zu überwachenden Datenbankdateien verknüpft und extrahiert die gewünschten Änderungen,
  • der Journalempfänger wird mit dem Journal verknüpft und dient als Container für die Aufzeichnungen.

Journalling ermöglicht z. B. die punktgenaue Wiederherstellung einer Datenbankdatei, nachdem diese von einer Sicherung zurückgespeichert werden musste. Ebenso ist es möglich, einen älteren Stand einer Datenbankdatei wieder herzustellen. Beides wird mit dem Befehl WRKJRN und den zugehörigen Optionen erreicht.

Ein ebenfalls wichtiger Punkt: Das Betriebssystem kann mit Hilfe von Journaling geöffnete Datenbankdateien in konsistentem Zustand sichern.

Journaling einrichten

Mit der Taste F4 kann wie gehabt die Formulardarstellung als Ausfüllhilfe für die einzelnen Parameter aufgerufen werden.

CRTJRNRCV

Zuerst muss ein (leerer) Journalempfänger eingerichtet werden. Bei der Einrichtung empfiehlt es sich, eine Empfängerschwelle einzurichten. Das ist die Angabe der maximalen Größe in Kibibytes. Als Name ist es vorteilhaft, den Namen selbst mit nachfolgenden Ziffern bis zur maximalen Länge aufzufüllen. Z. B. myrcv00001.

CRTJRN

Danach wird das Journal selbst erzeugt und im gleichen Schritt mit dem ersten Empfänger verknüpft. Wenn die Empfängerverwaltung auf *system umgestellt wird, nimmt einem das OS das regelmäßige Putzen ab: Wenn der oben genannte Schwellwert überschritten wurde, wird automatisch ein neuer Empfänger mit einer um eins höheren fortlaufenden Nummer erzeugt und angehängt. Der Schwellwertparameter wird vom bestehenden Empfänger übernommen.
Ebenso ist es möglich, alte Empfänger automatisch löschen zu lassen. Als Voraussetzung müssen diese gesichert worden sein (SAVLIB o. Ä.). Ob das sinnvoll ist, ist individuell von der eigenen Sicherungsstrategie abhängig.
Um Platz zu sparen kann der Parameter RCVSIZOPT(*RMVINTENT) benutzt werden. Angehängte Journalempfänger werden dann von internen Einträgen befreit, die nur für eine Wiederherstellung im Rahmen eines IPLs benötigt werden.

STRJRNPF

Nun müssen noch die gewünschten Datenbankdateien mit dem Journal verknüpft werden. Bei dieser Verknüpfung kann angegeben werden, welche Daten erfasst werden. Im Regelfall kann auf Journaleinträge verzichtet werden, die nun Öffnen und Schließen der Datei anzeigen. Umgekehrt kann es sinnvoll sein, das Vorherige und nachfolgende Abbild eines Datensatzes aufzuzeichnen. Ein Fehler ist so ohne globalen Eingriff (mit der verbundenen jetzt-niemand-an-der-DB-fummeln) durch Journalrollbacks schnell korrigiert (DSPJRN).

Journaling von Zugriffspfaden

Zugriffspfade sind in der herkömmlichen Datenbankwelt als Index bekannt.
Die Aufzeichnung von Zugriffspfaden via STRNJRNAP ermöglicht dem Betriebssystem nach einem Stromausfall o. Ä. die schnellere Wiederherstellung eines konsistenten Zustandes. Dieses Feature scheint daher vor allem bei großen DB-Dateien sinnvoll, während die Zeitersparnis bei wenigen Megabytes großen Datenbanken eher gering sein dürfte.

Journaling rückbauen

Der Rückbau von Journaling findet in umgekehrter Reihenfolge statt:

  • Verknüpfung mit Datenbankdateien lösen (ENDJRNPF, ggfs. vorher ENDJRNAP),
  • Journal löschen (DLTJRN),
  • Journalempfänger löschen (DLTJRNRCV).

Die beiden letzten Punkte können auch einfacher durch die Ansicht in WRKLIB, Option 12 erreicht werden.

Weblinks