DB2 Replikation Benutzer- und Referenzhandbuch

Kapitel 7. Betrieb von DB2 DataPropagator

Dieses Kapitel enthält allgemeine Informationen zum Betrieb der Programme Capture und Apply. Näheres zum Betrieb dieser Programme (z. B. zum Starten, Stoppen oder Terminieren) in den einzelnen Betriebssystemumgebungen können Sie in Teil 3, Betrieb, nachlesen. Dieses Kapitel enthält außerdem Informationen zur regelmäßigen Datenbankpflege, zum Überwachen des Replikationsprozesses, zum Vorgehen bei Abstimmungsverlusten und zum Modifizieren der Replikationskonfiguration.


Betrieb des Capture-Programms

Dieser Abschnitt enthält Hinweise zur Vorbereitung des Starts des Capture-Programms, zur Ausführung von Warm- und Kaltstarts des Capture-Programms und zum Beenden des Capture-Programms durch ein Ereignis.

Vor dem Starten des Capture-Programms

Vor dem Starten des Capture-Programms müssen folgende Aufgaben nach der Installation ausgeführt werden:

Starten oder erneutes Starten des Capture-Programms

Beim (erneuten) Starten des Capture-Programms können Sie eines der folgenden Schlüsselwörter verwenden: COLD, WARM oder WARMNS. Wenn Sie das Capture-Programm zum ersten Mal starten, geben Sie COLD oder WARM an, um einen Kaltstart des Capture-Programms auszuführen. Um das Capture-Programm nach einem Programmabschluss oder nach einer Störung erneut zu starten, geben Sie WARM oder WARMNS an, um einen Warmstart des Capture-Programms auszuführen. In den folgenden Abschnitten werden Kalt- und Warmstarts beschrieben. Im Einzelnen wird erläutert, wie sich das Capture-Programm bei Warmstarts verhält, wann es zu einem automatischen Kaltstart umschaltet und wie ein automatischer Kaltstart verhindert werden kann, indem ein Warmstart erzwungen wird.

Kaltstart

Bei einem Kaltstart des Capture-Programms werden alle Zeilen in den CD-Tabellen und in der UOW-Tabelle gelöscht, und das Programm beginnt mit dem Lesen des Endes des Datenbankprotokolls. Um einen Kaltstart auszuführen, geben Sie das Schlüsselwort COLD beim Starten des Capture-Programms an. Unter bestimmten Umständen wird von einem Warmstart auf einen Kaltstart umgeschaltet. Näheres dazu kann im Abschnitt Automatischer Kaltstart nachgelesen werden.

Nach einem Kaltstart führt das Apply-Programm eine vollständige Aktualisierung der Zieltabellen aus. Wenn Sie das Schlüsselwort LOADX beim Starten des Apply-Programms angeben, können Sie damit die Leistung beim Ausführen der vollständigen Aktualisierung verbessern. Sie haben aber auch die Möglichkeit, das im Abschnitt Laden von Zieltabellen im Offline-Betrieb mit DJRA beschriebene Verfahren zu verwenden.

Warmstart

Wenn das Capture-Programm durch Ihren Eingriff oder auf Grund eines Fehlers beendet wird, schreibt es bestimmte Informationen in die Tabelle zur Steuerung von Warmstarts, um später einen Warmstart zu ermöglichen. In bestimmten Fällen kann das Capture-Programm solche Warmstartinformationen aber nicht sichern; zum Beispiel dann, wenn ein Bediener das Capture-Programm abbricht oder DB2 stoppt. In diesem Fall greift das Capture-Programm auf entsprechende Informationen in den CD-, UOW- oder Registriertabellen zurück, um den Zustand zum Zeitpunkt des Abbruchs wiederherzustellen und einen Warmstart zu ermöglichen.

Wenn Sie das Capture-Programm mit den Schlüsselwort WARM oder WARMNS erneut starten, ermittelt das Programm anhand der Warmstarttabelle (bzw. anhand der CD-, UOW- oder Registriertabellen), ob ein Warmstart möglich ist oder ob ein Kaltstart ausgeführt werden muss. Sind die vorhandenen Warmstartinformationen ausreichend, wird ein Warmstart des Capture-Programms ausgeführt. Andernfalls erfolgt - wenn möglich - ein Kaltstart (vgl. Abschnitt Automatischer Kaltstart).

Nach einem erfolgreichen Warmstart löscht das Capture-Programm die alten Zeilen in der Warmstarttabelle.

Automatischer Kaltstart

Wenn das Capture-Programm keinen Warmstart ausführen kann, erfolgt - wenn möglich - ein Kaltstart. Wurde allerdings das Schlüsselwort WARMNS angegeben, führt das Capture-Programm keinen Kaltstart aus. Das Capture-Programm schaltet in den folgenden Fällen automatisch auf einen Kaltstart um:

In jedem dieser Fälle gibt das Capture-Programm eine Informationsnachricht aus und führt einen Kaltstart durch. Dieser Kaltstart verursacht einen Abstimmungsverlust in der Abfolge der Erfassung der geänderten Daten, weil das Capture-Programm an eine neue Position im Datenbankprotokoll springt.

Verhindern des automatischen Kaltstarts

Um einen Kaltstartversuch des Capture-Programms zu verhindern, geben Sie das Schlüsselwort WARMNS beim Starten des Capture-Programms an. Wenn kein Warmstart anstelle des Kaltstarts möglich ist, wird das Capture-Programm beendet. Wird das Capture-Programm auf diese Weise beendet, bleiben die Steuertabellen intakt. Sie müssen den Fehler beheben, der zum Abbruch des Capture-Programms geführt hat, bevor Sie erneut versuchen, das Programm zu starten. Wenn Sie den Fehler nicht beheben, wird das Capture-Programm weiterhin bei jedem erneuten Startversuch beendet oder führt einen Kaltstart durch.

Erstmaliges Starten der Programme Capture und Apply

Wenn Sie das Capture-Programm zum ersten Mal starten - oder nachdem Sie das Capture- und das Apply-Programm gestoppt haben - führen Sie folgende Schritte aus:

  1. Definieren Sie die Replikationsquellen und Subskriptionsgruppen.

    Weitere Informationen enthalten die Abschnitte Definieren von Replikationsquellen und Definieren von Replikationssubskriptionsgruppen.

  2. Starten Sie das Capture-Programm.

    Warten Sie auf die Initialisierungsnachricht, die Sie darüber informiert, dass das Capture-Programm ausgeführt wird. Das Capture-Programm beginnt erst mit der Änderungserfassung, wenn das Apply-Programm gestartet wurde und eine vollständige Aktualisierung ausgeführt hat.

  3. Starten Sie das Apply-Programm.

    Das Apply-Programm führt eine vollständige Aktualisierung für alle Subskriptionsgruppeneinträge aus. Wenn die vollständige Aktualisierung abgeschlossen ist, beginnt das Capture-Programm, Änderungen an den Quellentabellen zu erfassen.


Betrieb des Apply-Programms

Dieser Abschnitt enthält Hinweise zur Vorbereitung des Starts des Apply-Programms und zur Verwendung des Apply-Programms für die aktualisierende Wiederherstellung (Forward Recovery). Näheres zum Betrieb des Apply-Programms (z. B. zum Starten, Stoppen oder Terminieren) in den einzelnen Betriebssystemumgebungen können Sie in Teil 3, Betrieb, nachlesen.

Bevor Sie das Apply-Programm starten, prüfen Sie, ob


Leistungsoptimierung für das Apply-Programm bei Sybase oder Microsoft SQL Server

Wenn Sie das Apply-Programm mit einer DBLIB-Verbindung für Sybase oder Microsoft SQL Server in einem Netzwerk mit geringer Verarbeitungsgeschwindigkeit ausführen, können Sie die Replikationsleistung insgesamt erheblich verbessern. DB2 DataPropagator kann Puffer verwenden, in denen replizierte Daten gespeichert werden und anstelle der einzelnen Aktualisierungen über das Netzwerk übertragen werden. Die Größe der Puffer kann mit der Anweisung create server option definiert werden. Gehen Sie dazu wie folgt vor:

  1. Rufen Sie die Namen der Pakete für das Apply-Programm ab. Setzen Sie dazu die folgende SQL-Anweisung ab:
    SELECT PKGNAME
    FROM SYSCAT.PACKAGES
    WHERE PKGNAME LIKE 'ASN%'
    

    Die Paketnamen ändern sich bei jedem Release und jeder Funktionsaktualisierung. Mit dieser Abfrage rufen Sie die spezifischen Namen für Ihre Servicestufe ab.

  2. Ist eine Datei apply_names.ini (im Verzeichnis sqllib) vorhanden, ersetzen Sie dort die Paketnamen durch die in Schritt 1 abgerufenen Namen. Ist keine Datei apply_names.ini vorhanden, erstellen Sie die Datei, und führen Sie darin die Paketnamen auf. Die Datei apply_names.ini könnte beispielsweise wie folgt aussehen:
    ASN6A001+
    ASN6B001+
    ASN6C001+
    ASN6F001+
    ASN6I001+
    ASN6M001+
    ASN6P001  
    
  3. Erstellen Sie Server-Optionen für die Größe des Apply-Pakets und -Puffers. Beispiele für Server-Optionen für Sybase sind:
    create server option apply_packet_size for server type sybase setting 16384;
    create server option apply_buffer_size for server type sybase setting 16384;
    

    Beispiele für Server-Optionen für Microsoft SQL Server sind:

    create server option apply_packet_size for server type mssqlserver setting 16384;
    create server option apply_buffer_size for server type mssqlserver setting 16384;
    

    Sie können die Paket- und Puffergröße auf jeden geeigneten Wert setzen, der kleiner-gleich der maximalen Einstellung bei Sybase oder Microsoft SQL Server ist, und den Wert nach Bedarf anpassen.

  4. Setzen Sie die folgende Umgebungsvariable:
    DJX_ASYNC_APPLY=TRUE
    
  5. Haben Sie die Datei apply_names.ini erstellt bzw. geändert oder die Variable DJX_ASYNC_APPLY geändert, müssen Sie DataJoiner stoppen und erneut starten, damit die Änderungen wirksam werden. Führen Sie dazu die Befehle db2stop und db2start aus.

Regelmäßige Datenbankpflege

Neben den regelmäßigen Arbeiten zur Pflege Ihrer Datenbanken müssen Sie für Ihre Replikationsumgebung folgende Aktivitäten ausführen:

Die folgenden Prozeduren erfordern normalerweise die ausschließliche Verwendung von DB2-Tabellenbereichen oder des DB2-Katalogs:

REORG

BIND PACKAGE

BIND PLAN

GRANT

REVOKE

Da die Kombination dieser Prozeduren mit den Programmen Capture und Apply nicht unproblematisch ist (wegen des dynamischen SQL der Programme, bei dem die Katalogtabellen gesperrt werden, und wegen des Zugriffs auf Tabellenbereiche), sollten Sie die Programme Capture und Apply stoppen, wenn Sie Dienstprogramme (oder ähnliche Prozeduren) ausführen, um das Entstehen möglicher Konkurrenzsituationen zu vermeiden.


Überwachen der Replikationsumgebung

Sie können das DJRA-Programm Replication Monitor verwenden, um in regelmäßigen Abständen einen Bericht zu erstellen, der zeigt, wie Ihre Replikationsumgebung arbeitet:

Zum Starten des Programms Replication Monitor klicken Sie Monitor Replication im DJRA-Hauptfenster an. Über das Fenster "Replication Administration Scheduler" können Sie das Überwachungsprogramm in regelmäßigen Abständen oder auch nur einmal ausführen lassen.


Korrektur von Abstimmungsverlusten zwischen Quellen- und Zieltabellen

Gelegentlich können Abstimmungsverluste beim Erfassen geänderter Daten für eine Quellentabelle auftreten. Wenn Sie beispielsweise das Capture-Programm beenden und anschließend mit einem Kaltstart erneut starten, werden alle Zeilen aus der CD-Tabelle gelöscht. In diesem Fall werden eventuell Aktualisierungen vorgenommen, die das Capture-Programm nicht erfasst. Oder möglicherweise wurden alle Aktualisierungen in der CD-Tabelle (durch einen Kaltstart) gelöscht, bevor das Apply-Programm diese Aktualisierungen replizieren konnte.

Wenn ein Abstimmungsverlust vorliegt, versucht das Apply-Programm, eine vollständige Aktualisierung auszuführen, es sei denn, die Zieltabelle ist eine unvollständige CCD-Tabelle. Wenn das Apply-Programm keine vollständige Aktualisierung durchführen kann, ist die Datenintegrität unter Umständen nicht gewährleistet. Bei unvollständigen CCD-Tabellen können Sie mögliche Verletzungen der Datenintegrität vermeiden, die möglicherweise durch einen Kaltstart des Capture-Programms verursacht werden. Führen Sie dazu folgende Schritte durch:

  1. Prüfen Sie, ob alle Änderungen in die unvollständigen CCD-Tabellen repliziert werden.
  2. Stoppen Sie alle Aktualisierungsaktivitäten bei den Quellentabellen.
  3. Führen Sie einen Kaltstart für das Capture-Programm aus.
  4. Starten Sie wieder die Aktualisierungsaktivitäten bei den Quellentabellen.

Modifizieren der Replikationskonfiguration

Auch nachdem der Replikationsprozess begonnen hat, kann die Konfiguration geändert werden. Dies schließt das Ändern von Replikationsquellen oder Subskriptionen, das Entfernen von Quellen oder Subskriptionen, das Inaktivieren und das Kopieren (Klonen) von Subskriptionen ein.

Anzeigen oder Ändern bestehender Replikationsquellen

Eine vorhandene Replikationsquelle kann unter Verwendung der DB2-Steuerzentrale oder mit DJRA angezeigt werden. Wenn Sie - bei Verwendung der Steuerzentrale - das Markierungsfeld Tabelle für beliebige Aktualisierung verwenden ausgewählt haben, können Sie die für die Replikationsquelle definierte Konflikterkennungsebene ändern. Alle anderen Felder und Steuerelemente sind für Änderungen nicht verfügbar, nachdem Sie die Replikationsquelle erfolgreich definiert haben. Mit DJRA können Sie die Gruppe der Spalten, die für die Replikation zur Verfügung stehen, ändern. 30

Wenn Sie beabsichtigen, die Definition der Replikationsquelle zu ändern, verwenden Sie den Capture-Befehl REINIT. Sie können das Capture-Programm auch stoppen oder unterbrechen und anschließend einen Warmstart ausführen oder das Capture-Programm neu initialisieren, um mit dem Erfassen der Änderungen für die geänderte Replikationsquelle zu beginnen. Weitere Informationen zu dem Capture-Programm für Ihre Betriebssystemumgebung finden Sie in Teil 3, Betrieb.

Entfernen von Replikationsquellen

Wenn eine Replikationsquelle nicht mehr benötigt wird, können Sie das Objekt aus der DB2-Steuerzentrale bzw. aus DJRA und die zugehörigen Steuerinformationen aus den Steuertabellen entfernen.

Achtung:

Die Steuerzentrale und DJRA löschen den Tabellenbereich für eine DB2-Replikationsquelle, wenn er leer ist. DJRA kann Datenbankbehälter anderer Hersteller (Tabellenbereiche, DBSPACEs oder Segmente) nicht löschen. Bei Verwendung der Steuerzentrale können Sie sicherstellen, dass der Tabellenbereich nicht gelöscht werden kann, indem Sie die Einstellungen über die Seite "Replikation" im Notizbuch "Tools - Einstellungen" ändern.

Aktivieren und Inaktivieren von Subskriptionsgruppen

Von der DB2-Steuerzentrale oder von DJRA kann der Status (aktiv/inaktiv) einer Subskriptionsgruppe gesteuert werden. Sie können diese Funktion verwenden, wenn Sie eine Subskriptionsgruppe vorübergehend inaktivieren möchten, ohne sie zu entfernen. Wenn Sie eine Subskriptionsgruppe inaktivieren, führt das Apply-Programm den aktuellen Verarbeitungszyklus vollständig durch und setzt dann den Betrieb für die Subskriptionsgruppe aus. Wenn Sie eine Subskriptionsgruppe in der Steuerzentrale inaktivieren, wird das Symbol für die Subskriptionsgruppe abgeblendet.

Kopieren einer Subskriptionsgruppe auf einen anderen Server

Unter Verwendung der DB2-Steuerzentrale können Sie eine Replikationssubskription auf einen anderen Server kopieren. Dabei wird eine exakte Kopie einer bestehenden Subskriptionsgruppe auf einem anderen Ziel-Server erstellt, wobei aber ein anderes Apply-Qualifikationsmerkmal verwendet wird. Diese Kopie enthält nur Informationen zu Subskriptionen, sie umfasst keine Informationen zur Benutzerkopietabelle, zum Tabellenbereich oder Indexdefinitionen. Sie können eine oder mehrere Subskriptionsgruppen gleichzeitig kopieren. Die Steuerzentrale aktualisiert die Steuertabellen auf dem Steuerungs-Server.

Informationen darüber, wie Sie Ihre gesamte Replikationsumgebung auf ein anderes System kopieren können, finden Sie im Abschnitt Kopieren der Replikationskonfiguration auf ein anderes System.

Anzeigen oder Ändern einer bestehenden Subskriptionsgruppe

Über die DB2-Steuerzentrale können Sie einen Teil der Subskriptionsgruppenwerte ändern. Dies betrifft primär diejenigen, die nicht die Struktur der Zieltabellen betreffen. Die folgenden Werte können im Fenster "Replikationssubskription ändern" und den untergeordneten Fenstern geändert werden.

Um bestehende Subskriptionsgruppeneinträge mit DJRA anzuzeigen oder zu ändern, klicken Sie den Knopf List Members or Add a Column to Target Tables an. Füllen Sie zunächst die erforderlichen Felder im Fenster aus (z. B. Angabe des Namens des Quellen-Servers und der Quellentabellen). Nehmen Sie anschließend wahlfreie Eingaben vor (z. B. den Namen der Quellenspalte oder einen SQL-Ausdruck und den Namen der Zielspalte, um neue oder berechnete Spalten zur Zieltabelle hinzuzufügen). 31

Entfernen von Subskriptionsgruppen

Beim Entfernen der Definition einer Subskriptionsgruppe werden die zugehörigen Informationen aus den Steuertabellen gelöscht und - wahlfrei - die Zieltabellen vom Ziel-Server entfernt. Bei Zieltabellen in Datenbanken anderer Hersteller können Sie wählen, ob der Kurzname und die zugehörige Zieltabelle beim Entfernen der Subskriptionsgruppe mit DJRA gelöscht werden sollen.

Wenn Sie mit der DB2-Steuerzentrale arbeiten, wählen Sie ein oder mehrere Replikationssubskriptionsobjekte aus dem Inhaltsteilfenster aus, und wählen Sie anschließend Entfernen im Kontextmenü aus. Bei Verwendung von DJRA müssen Sie zunächst alle Einträge aus der Subskriptionsgruppe löschen, bevor Sie dann die leere Subskriptionsgruppe entfernen können.


Fußnoten:

30
Dieses Ändern der für die Replikation verfügbaren Spalten ist aber nur bei DB2-Quellen möglich, nicht aber bei Quellen anderer Hersteller.

31
Sie können die Spaltengruppe, die für die Replikation zur Verfügung steht, nur bei DB2-Quellen ändern, nicht aber bei Quellen anderer Hersteller.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]