Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Replikat aktualisieren (REFRESH REPLICATION)

REFRESH REPLICATION aktualisiert das gesamte Replikat mit allen Anwender-Spaces, die aktuell zum Replikat gehören.

REFRESH REPLICATION FOR SPACE aktualisiert den Catalog-Space des Replikats und alle angegebenen Anwender-Spaces. Falls das Replikat mehr Anwender-Spaces enthalten hat als angegeben, werden diese logisch aus dem Replikat entfernt („ehemalige Replikat-Spaces“). Das Replikat wird zu einem Teilreplikat des ursprünglichen Replikats. Ehemalige Replikat-Spaces werden nicht physikalisch gelöscht.

Der Datenbankverwalter muss alle Logging-Dateien einer bestimmten Zeitspanne und die CAT-REC-Kopie der Originaldatenbank bereitstellen. Die Jobvariable SESAM. replikat.NEXT-REPL-LOG enthält Nummer und Unternummer der jeweils ersten bereitzustellenden Dateien. Die Jobvariable wird bei CREATE REPLICATION angelegt und bei REFRESH REPLICATION jeweils aktualisiert.

Alle Spaces eines Replikats müssen im Original mit Logging betrieben werden. Spaces, bei denen im Original das Logging unterbrochen wird, können nicht mehr aktualisiert werden. In diesem Fall kann das Replikat mit REFRESH REPLICATION FOR SPACE verkleinert werden, wenn der betreffende Space nicht in der Space-Liste bei FOR SPACE angegeben wird.
Das Logging wird unterbrochen durch die Anweisungen ALTER SPACE NO LOG, LOAD OFFLINE, IMPORT TABLE, RECOVER INDEX, RECOVER TO und MIGRATE, siehe auch „Unterbrechen des Logging durch SESAM/SQL bei einigen Utility-Anweisungen“ .

Ein Replikat kann auch dann mit REFRESH REPLICATION FOR SPACE verkleinert werden, wenn Spaces des Replikats ungültig sind oder nicht mehr im Replikat benötigt werden. Spaces werden ungültig durch DROP SPACE im Original, RECOVER SPACE USING REPLICATION RENAME, RECOVER SPACE TO REPLICATION oder RECOVER SPACE USING REPLICATION TO marke.


Bild 21: Replikat aktualisieren

  1. Wechsel der Logging-Dateien und Erzeugen einer CAT-REC-Kopie

  2. Aktualisieren des Replikats mit Hilfe von Logging-Dateien und der CAT-REC-Kopie

Vorgehensweise

Zu einem definierten Zeitpunkt soll das Replikat auf den Stand der Originaldatenbank gebracht werden. Dazu ist es notwendig, mit CHANGE-CATLOG oder COPY CATALOG_SPACE die CAT-LOG- und DA-LOG-Dateien auf dem Original zu wechseln. Dabei wird eine CAT-REC-Kopie erzeugt.

Es ist sinnvoll, den CHANGE-CATLOG im transaktionslosen Zustand abzusetzen, und zwar aus folgendem Grund:

Wenn noch Transaktionen aktiv sind, werden diese am Ende der Aktualisierung im Replikat zurückgesetzt.

Sind Transaktionen zurückgesetzt worden, müssen bei einem späteren REFRESH REPLICATION wieder alle Logging-Dateien ab dem Transaktionsbeginn der zurückgesetzten Transaktionen abgearbeitet werden. Nur so kann ein definierter Zustand im Replikat erreicht werden.
Ein REFRESH REPLICATION sollte daher vermieden werden, wenn langlaufende Transaktionen offen sind. Im ungünstigsten Fall werden diese u.U. mehrmals nachgefahren, zurückgesetzt und wieder nachgefahren.

Beim REFRESH REPLICATION wird auf der CAT-REC-Datei des Replikats aufgesetzt. Aus der Differenz zur CAT-REC-Kopie wird deutlich, welche CAT-LOG-Dateien in den Catalog-Space eingearbeitet werden müssen. Nach dem Einarbeiten der CAT-LOG-Dateien kann mit den aktualisierten Catalog-Tabellen RECOVERY_UNITS und DA-LOGS des bearbeiteten Catalog-Space bestimmt werden, welche DA-LOG-Dateien in den Anwender-Spaces nachgefahren werden müssen. Dann werden die DA-LOG-Dateien nachgefahren.

Damit hat das Replikat den gleichen Stand wie das Original zum Zeitpunkt der verwendeten CAT-REC-Kopie.

In einer Jobvariable werden die Nummern der ältesten Logging-Dateien eingetragen, die für den nächsten REFRESH REPLICATION nötig sind.

Der Catalog-Space und die Anwender-Spaces werden wie bei RECOVER in der ServiceTask in einem Nachfahr-DBH aktualisiert.
Das Replikat wird gesperrt, wenn beim Nachfahren ein Fehler auftritt, z.B. weil eine Logging-Datei fehlt, ein Speicherengpass auftritt oder die Service-Task beendet wird. Wenn die Fehlerursache beseitigt worden ist, kann das Replikat mit REFRESH REPLICATION fertiggestellt werden.
Wenn REFRESH REPLICATION abbricht, weil der DBH beendet wird oder der DBH einen internen Wiederanlauf durchführt, ist eine Wiederholung des REFRESH REPLICATION nicht möglich. In diesem Fall wird das Replikat als defekt markiert und muss neu erzeugt werden.

CREATE SPACE im Original macht ein existierendes Replikat automatisch zum Teilreplikat, da der neue Space nicht im Replikat enthalten ist.