Strategien zum Sichern und Wiederherstellen einer Snapshot- und Transaktionsreplikation

Drei Bereiche sind beim Entwickeln einer Sicherungs- und Wiederherstellungsstrategie für die Snapshot- und Transaktionsreplikation zu berücksichtigen:

  • Die zu sichernden Datenbanken.

  • Die Sicherungseinstellungen für die Transaktionsreplikation.

  • Die zum Wiederherstellen einer Datenbank erforderlichen Schritte. Diese hängen vom Typ der Replikation und den Optionen ab, der bzw. die ausgewählt werden.

In diesem Thema wird jeder dieser Bereiche in den nächsten drei Abschnitten erläutert. Informationen zum Sichern und Wiederherstellen bei Oracle-Verlegern finden Sie unter Sichern und Wiederherstellen bei Oracle-Verlegern.

Sichern von Datenbanken

Sichern Sie bei der Snapshot- und Transaktionsreplikation regelmäßig die folgenden Datenbanken:

  • Veröffentlichungsdatenbank auf dem Verleger

  • Verteilungsdatenbank auf dem Verteiler

  • Abonnementdatenbank auf den einzelnen Abonnenten

  • Die Systemdatenbanken master und msdb auf dem Verleger, Verteiler und allen Abonnenten. Diese Datenbanken sollten zeitgleich miteinander und der relevanten Replikationsdatenbank gesichert werden. Sichern Sie also z. B. die master-Datenbank und die msdb-Datenbank auf dem Verleger immer dann, wenn Sie auch die Veröffentlichungsdatenbank sichern. Wenn die Veröffentlichungsdatenbank wiederhergestellt wird, stellen Sie sicher, dass die master-Datenbank und die msdb-Datenbank hinsichtlich der Replikationskonfiguration und -einstellungen mit der Veröffentlichungsdatenbank konsistent sind.

Wenn Sie regelmäßig Protokollsicherungen vornehmen, sollten sämtliche replikationsbezogene Änderungen in den Protokollsicherungen aufgezeichnet werden. Wenn Sie keine Protokollsicherungen ausführen, sollte immer dann eine Sicherungskopie erstellt werden, wenn eine für die Replikation relevante Einstellung geändert wird.Weitere Informationen finden Sie unter Häufige Aktionen, die eine aktualisierte Sicherung erfordern.

Sicherungseinstellungen für die Transaktionsreplikation

Die Transaktionsreplikation schließt die Verwendung der Option sync with backup ein, die für die Verteilungsdatenbank und die Veröffentlichungsdatenbank festgelegt werden kann:

  • Es wird empfohlen, diese Option für die Verteilungsdatenbank immer festzulegen.

    Mit dieser Option wird sichergestellt, dass Transaktionen im Protokoll der Veröffentlichungen nicht abgeschnitten werden, bevor sie in der Verteilungsdatenbank gesichert wurden. Die Verteilungsdatenbank kann auf die letzte Sicherung wiederhergestellt werden. Eventuell fehlende Transaktionen werden von der Veröffentlichungsdatenbank an die Verteilungsdatenbank übermittelt. Die Replikation wird ohne Einschränkungen fortgesetzt.

    Das Festlegen dieser Option für die Verteilungsdatenbank wirkt sich nicht auf die Replikationslatenzzeit aus. Mit dem Festlegen dieser Option wird die Kürzung des Protokolls der Veröffentlichungsdatenbank so lange verzögert, bis die entsprechenden Transaktionen in der Verteilungsdatenbank gesichert sind. (Dies kann zur Erstellung eines umfangreicheren Transaktionsprotokolls in der Veröffentlichungsdatenbank führen.)

  • Es wird empfohlen, diese Option für die Veröffentlichungsdatenbank festzulegen, falls die Anwendung eine zusätzliche Latenzzeit unterstützt.

    Wenn Sie diese Option für die Veröffentlichungsdatenbank festlegen, stellen Sie sicher, dass Transaktionen erst an die Verteilungsdatenbank übermittelt werden, wenn Sie in der Veröffentlichungsdatenbank gesichert wurden. Die letzte Sicherung der Veröffentlichungsdatenbank kann dann auf dem Verleger wiederhergestellt werden, und es besteht keine Möglichkeit, dass die Verteilungsdatenbank Transaktionen enthält, die in der wiederhergestellten Veröffentlichungsdatenbank nicht vorhanden sind.

    Latenzzeit und Durchsatz sind betroffen, da Transaktionen erst an die Verteilungsdatenbank übermittelt werden können, nachdem sie auf dem Verleger gesichert wurden. Wenn z. B. das Transaktionsprotokoll alle fünf Minuten gesichert wird, entsteht eine zusätzliche Latenzzeit von fünf Minuten zwischen dem Ausführen des Commit für eine Transaktion auf dem Verleger und dem Übermitteln der Transaktion an die Verteilungsdatenbank und anschließend an den Abonnenten.

    HinweisHinweis

    Mit der Option sync with backup wird die Konsistenz zwischen der Veröffentlichungsdatenbank und der Verteilungsdatenbank sichergestellt, sie ist jedoch kein Garant gegen Datenverlust. Wenn z. B. das Transaktionsprotokoll verloren geht, sind Transaktionen, für die seit der letzten Sicherung des Transaktionsprotokolls ein Commit ausgeführt wurde, nicht in der Veröffentlichungsdatenbank oder der Verteilungsdatenbank verfügbar. Das ist das gleiche Verhalten wie bei einer nicht replizierten Datenbank.

So legen Sie die Option sync with backup fest

Wiederherstellen der an der Replikation beteiligten Datenbanken

Wenn aktuelle Sicherungen verfügbar sind und die entsprechenden Schritte befolgt werden, können Sie alle Datenbanken einer Replikationstopologie wiederherstellen. Die Wiederherstellungsschritte für die Veröffentlichungsdatenbank hängen vom Typ der verwendeten Replikation und den verwendeten Optionen ab. Die Wiederherstellungsschritte für alle anderen Datenbanken sind jedoch vom Typ und den Optionen unabhängig.

Die Replikation ermöglicht das Wiederherstellen replizierter Datenbanken auf dem Server und in die Datenbank, die zum Erstellen der Sicherung herangezogen wurden. Wenn Sie eine Sicherungskopie einer replizierten Datenbank auf einem anderen Server bzw. in einer anderen Datenbank wiederherstellen, können Replikationseinstellungen nicht beibehalten werden. In diesem Fall müssen nach der Wiederherstellung der Sicherungskopien sämtliche Veröffentlichungen und Abonnements neu erstellt werden.

Verleger

Wiederherstellungsschritte werden für die folgenden Replikationstypen bereitgestellt:

  • Snapshotreplikation

  • Schreibgeschützte Transaktionsreplikation

  • Transaktionsreplikation mit aktualisierbaren Abonnements

  • Peer-to-Peer-Transaktionsreplikation

Die Wiederherstellung der Datenbanken msdb und master (ebenfalls in diesem Abschnitt erläutert) verläuft bei allen vier Typen gleich.

Veröffentlichungsdatenbank: Snapshotreplikation

  1. Stellen Sie die aktuellste Sicherung der Veröffentlichungsdatenbank wieder her. Fahren Sie mit Schritt 2 fort.

  2. Enthält die Sicherung der Veröffentlichungsdatenbank die aktuelle Konfiguration für alle Veröffentlichungen und Abonnements? Wenn dies der Fall ist, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 3 fort.

  3. Entfernen Sie die Replikationskonfiguration vom Verleger, vom Verteiler und von den Abonnenten, und erstellen Sie die Konfiguration dann neu. Die Wiederherstellung ist abgeschlossen.

    Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).

Veröffentlichungsdatenbank: Schreibgeschützte Transaktionsreplikation

  1. Stellen Sie die aktuellste Sicherung der Veröffentlichungsdatenbank wieder her. Fahren Sie mit Schritt 2 fort.

  2. War die Einstellung sync with backup vor dem Fehler für die Veröffentlichungsdatenbank aktiviert? Wenn ja, fahren Sie mit Schritt 3 fort, wenn nein, fahren Sie mit Schritt 5 fort.

    Wenn die Einstellung aktiviert ist, gibt die Abfrage SELECT DATABASEPROPERTYEX('<PublicationDatabaseName>', 'IsSyncWithBackup') den Wert 1 zurück.

  3. Ist die wiederhergestellte Sicherung vollständig und aktuell? Enthält sie die aktuelle Konfiguration für alle Veröffentlichungen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 4 fort.

  4. Die Konfigurationsinformationen in der wiederhergestellten Veröffentlichungsdatenbank sind nicht aktuell. Deshalb müssen Sie sicherstellen, dass die Abonnenten alle ausstehenden Befehle in der Verteilungsdatenbank aufweisen. Löschen Sie anschließend die Replikationskonfiguration, und erstellen Sie sie erneut.

    1. Führen Sie den Verteilungs-Agent aus, bis alle Abonnenten mit den ausstehenden Befehlen in der Verteilungsdatenbank synchronisiert wurden. Überprüfen Sie, ob alle Befehle an die Abonnenten übermittelt wurden. Verwenden Sie dazu im Replikationsmonitor die Registerkarte Nicht verteilte Befehle, oder fragen Sie die MSdistribution_status-Sicht in der Verteilungsdatenbank ab. Fahren Sie mit Schritt b fort.

      Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte für die Programmierung von Replikations-Agents.

      Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Vorgehensweise: Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL) und Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einem Abonnement zugeordneten Agents (Replikationsmonitor).

    2. Entfernen Sie die Replikationskonfiguration vom Verleger, vom Verteiler und von den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt. Die Wiederherstellung ist abgeschlossen.

      Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und Vorgehensweise: Manuelles Initialisieren eines Abonnements (Replikationsprogrammierung mit Transact-SQL).

  5. Die Option sync with backup wurde nicht für die Veröffentlichungsdatenbank festgelegt. Deshalb wurden Transaktionen, die nicht in die wiederhergestellte Sicherung eingeschlossen waren, möglicherweise an den Verteiler und die Abonnenten übermittelt. Stellen Sie nun sicher, dass die Abonnenten über alle ausstehenden Befehle in der Verteilungsdatenbank verfügen. Wenden Sie dann manuell alle Transaktionen auf die Veröffentlichungsdatenbank an, die nicht in die wiederhergestellte Sicherung eingeschlossen waren.

    Wichtiger HinweisWichtig

    Beim Ausführen dieses Prozesses kann es passieren, dass veröffentlichte Tabellen auf einen Stand wiederhergestellt werden, der vor dem Stand anderer nicht veröffentlichter Tabellen liegt, die aus der Sicherung wiederhergestellt werden.

    1. Führen Sie den Verteilungs-Agent aus, bis alle Abonnenten mit den ausstehenden Befehlen in der Verteilungsdatenbank synchronisiert wurden. Überprüfen Sie, ob alle Befehle an die Abonnenten übermittelt wurden. Verwenden Sie dazu im Replikationsmonitor die Registerkarte Nicht verteilte Befehle, oder fragen Sie die MSdistribution_status-Sicht in der Verteilungsdatenbank ab. Fahren Sie mit Schritt b fort.

      Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte für die Programmierung von Replikations-Agents.

      Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Vorgehensweise: Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL) und Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einem Abonnement zugeordneten Agents (Replikationsmonitor).

    2. Verwenden Sie das Dienstprogramm "tablediff" oder ein anderes Tool, um den Verleger manuell mit dem Abonnenten zu synchronisieren. So können Sie Daten aus der Abonnementdatenbank wiederherstellen, die nicht in der Sicherung der Veröffentlichungsdatenbank enthalten waren. Fahren Sie mit Schritt c fort.

      Weitere Informationen zum Dienstprogramm tablediff finden Sie unter Vorgehensweise: Überprüfen replizierter Tabellen auf Unterschiede (Replikationsprogrammierung).

    3. Ist die wiederhergestellte Sicherung vollständig und aktuell? Enthält sie die aktuelle Konfiguration für alle Veröffentlichungen und Abonnements? Wenn ja, führen Sie die gespeicherte Prozedur sp_replrestart aus, um die Metadaten des Verlegers erneut mit denen des Verteilers zu synchronisieren. Die Wiederherstellung ist abgeschlossen. Wenn nein, fahren Sie mit Schritt d fort.

    4. Entfernen Sie die Replikationskonfiguration vom Verleger, vom Verteiler und von den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt. Die Wiederherstellung ist abgeschlossen.

      Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und Vorgehensweise: Manuelles Initialisieren eines Abonnements (Replikationsprogrammierung mit Transact-SQL).

Veröffentlichungsdatenbank: Transaktionsreplikation mit aktualisierbaren Abonnements

  1. Stellen Sie die aktuellste Sicherung der Veröffentlichungsdatenbank wieder her. Fahren Sie mit Schritt 2 fort.

  2. Führen Sie den Verteilungs-Agent aus, bis alle Abonnenten mit den ausstehenden Befehlen in der Verteilungsdatenbank synchronisiert wurden. Überprüfen Sie, ob alle Befehle an die Abonnenten übermittelt wurden. Verwenden Sie dazu im Replikationsmonitor die Registerkarte Nicht verteilte Befehle, oder fragen Sie die MSdistribution_status-Sicht in der Verteilungsdatenbank ab.Fahren Sie mit Schritt 3 fort.

    Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte für die Programmierung von Replikations-Agents.

    Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Vorgehensweise: Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL) und Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einem Abonnement zugeordneten Agents (Replikationsmonitor).

  3. Wenn Sie Abonnements mit verzögertem Aktualisieren über eine Warteschlange verwenden, stellen Sie mit jedem Abonnenten eine Verbindung her, und löschen Sie in der Abonnementdatenbank alle Zeilen aus der MSreplication_queue (Transact-SQL)-Tabelle.Fahren Sie mit Schritt 4 fort.

    HinweisHinweis

    Wenn Sie Abonnements mit verzögertem Aktualisieren über eine Warteschlange verwenden und Tabellen Identitätsspalten enthalten, müssen Sie sicherstellen, dass nach jeder Wiederherstellung die richtigen Identitätsbereiche zugewiesen werden.Weitere Informationen finden Sie unter Replizieren von Identitätsspalten.

  4. Stellen Sie nun sicher, dass die Abonnenten über alle ausstehenden Befehle in der Verteilungsdatenbank verfügen. Wenden Sie dann manuell alle Transaktionen auf die Veröffentlichungsdatenbank an, die nicht in die wiederhergestellte Sicherung eingeschlossen waren.

    Wichtiger HinweisWichtig

    Beim Ausführen dieses Prozesses kann es passieren, dass veröffentlichte Tabellen auf einen Stand wiederhergestellt werden, der vor dem Stand anderer nicht veröffentlichter Tabellen liegt, die aus der Sicherung wiederhergestellt werden.

    1. Führen Sie den Verteilungs-Agent aus, bis alle Abonnenten mit den ausstehenden Befehlen in der Verteilungsdatenbank synchronisiert wurden. Überprüfen Sie, ob alle Befehle an den Abonnenten übermittelt wurden. Verwenden Sie dazu den Replikationsmonitor, oder fragen Sie die MSdistribution_status-Sicht in der Verteilungsdatenbank ab. Fahren Sie mit Schritt b fort.

    2. Verwenden Sie das tablediff (Dienstprogramm) oder ein anderes Tool, um den Verleger manuell mit dem Abonnenten zu synchronisieren. So können Sie Daten aus der Abonnementdatenbank wiederherstellen, die nicht in der Sicherung der Veröffentlichungsdatenbank enthalten waren. Fahren Sie mit Schritt c fort.

      Weitere Informationen zum Dienstprogramm tablediff finden Sie unter Vorgehensweise: Überprüfen replizierter Tabellen auf Unterschiede (Replikationsprogrammierung).

    3. Ist die wiederhergestellte Sicherung vollständig und aktuell? Enthält sie die aktuelle Konfiguration für alle Veröffentlichungen und Abonnements? Wenn ja, führen Sie die gespeicherte Prozedur sp_replrestart aus, um die Metadaten des Verlegers erneut mit denen des Verteilers zu synchronisieren. Die Wiederherstellung ist abgeschlossen. Wenn nein, fahren Sie mit Schritt d fort.

    4. Entfernen Sie die Replikationskonfiguration vom Verleger, vom Verteiler und von den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt. Die Wiederherstellung ist abgeschlossen.

      Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und Vorgehensweise: Manuelles Initialisieren eines Abonnements (Replikationsprogrammierung mit Transact-SQL).

Veröffentlichungsdatenbank: Peer-to-Peer-Transaktionsreplikation

In den folgenden Schritten sind die Veröffentlichungsdatenbanken A, B und C Bestandteil einer Peer-to-Peer-Transaktionsreplikationstopologie. Die Datenbanken A und C sind online und funktionieren ordnungsgemäß; Datenbank B muss wiederhergestellt werden. Der hier beschriebene Prozess, insbesondere die Schritte 7, 10 und 11, ist vergleichbar mit dem Prozess zum Hinzufügen eines Knotens zu einer Peer-to-Peer-Topologie. Die einfachste Möglichkeit zum Ausführen dieser Schritte ist diejenige mithilfe des Assistenten zum Konfigurieren der Peer-to-Peer-Topologie.Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren der Peer-to-Peer-Transaktionsreplikation (SQL Server Management Studio). Sie können auch gespeicherte Prozeduren verwenden. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren der Peer-to-Peer-Transaktionsreplikation (Replikationsprogrammierung mit Transact-SQL).

  1. Führen Sie die Verteilungs-Agents aus, und synchronisieren Sie die Abonnements in den Datenbanken A und C. Fahren Sie mit Schritt 2 fort.

    Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte für die Programmierung von Replikations-Agents.

  2. Wenn die von B verwendete Verteilungsdatenbank noch verfügbar ist, führen Sie die Verteilungs-Agents zum Synchronisieren der Abonnements zwischen den Datenbanken B und A und den Datenbanken B und C aus. Fahren Sie mit Schritt 3 fort.

  3. Entfernen Sie Metadaten aus der von B verwendeten Verteilungsdatenbank. Führen Sie dazu in der Verteilungsdatenbank sp_removedistpublisherdbreplication für B aus. Fahren Sie mit Schritt 4 fort.

  4. Löschen Sie in den Datenbanken A und C die Abonnements für die Veröffentlichung in Datenbank B. Fahren Sie mit Schritt 5 fort.

    Weitere Informationen zum Löschen von Abonnements finden Sie unter Abonnieren von Veröffentlichungen.

  5. Führen Sie eine Protokollsicherung oder eine vollständige Sicherung für Datenbank A aus. Fahren Sie mit Schritt 6 fort.

  6. Stellen Sie die Sicherung von Datenbank A in der Datenbank B wieder her. Datenbank B verfügt nun über die Daten aus Datenbank A, nicht jedoch über die Replikationskonfiguration. Wenn Sie eine Sicherung auf einem anderen Server wiederherstellen, wird die Replikation entfernt. Folglich ist die Replikation nicht mehr in Datenbank B enthalten. Fahren Sie mit Schritt 7 fort.

  7. Erstellen Sie die Veröffentlichung in Datenbank B neu, und erstellen Sie dann die Abonnements zwischen der Datenbank A und der Datenbank B neu. (Abonnements, die Datenbank C mit einbeziehen, werden in einem umfassenderen Schritt behandelt.)

    1. Erstellen Sie die Veröffentlichung in Datenbank B neu. Fahren Sie mit Schritt b fort.

    2. Erstellen Sie das Abonnement in Datenbank B für die Veröffentlichung in Datenbank A neu. Geben Sie dabei an, dass das Abonnement mit einer Sicherung initialisiert wird (ein Wert initialize with backup für den @sync_type-Parameter von sp_addsubscription). Fahren Sie mit Schritt c fort.

    3. Erstellen Sie das Abonnement in Datenbank A für die Veröffentlichung in Datenbank B neu. Geben Sie dabei an, dass der Abonnent bereits über die Daten verfügt (ein Wert replication support only für den @sync_type-Parameter von sp_addsubscription).Fahren Sie mit Schritt 8 fort.

  8. Führen Sie die Verteilungs-Agents aus, und synchronisieren Sie die Abonnements in den Datenbanken A und B. Falls die veröffentlichten Tabellen Identitätsspalten enthalten, fahren Sie mit Schritt 9 fort. Wenn nicht, fahren Sie mit Schritt 10 fort.

  9. Nach der Wiederherstellung wird der Identitätsbereich, den Sie den Tabellen in Datenbank A zugewiesen haben, auch in Datenbank B verwendet. Stellen Sie sicher, dass die wiederhergestellte Datenbank B alle Änderungen aus der fehlerhaften Datenbank B empfangen hat, die an die Datenbanken A und C weitergegeben wurden. Weisen Sie dann den Identitätsbereich für jede Tabelle neu zu.

    1. Führen Sie sp_requestpeerresponse in Datenbank B aus, und rufen Sie den Ausgabeparameter @request_id ab. Fahren Sie mit Schritt b fort.

    2. Der Verteilungs-Agent wird standardmäßig fortlaufend ausgeführt, folglich sollten Token automatisch an alle Knoten gesendet werden.Wenn der Verteilungs-Agent nicht im fortlaufenden Modus ausgeführt wird, führen Sie den Agent aus. Weitere Informationen finden Sie unter Ausführbare Konzepte für die Programmierung von Replikations-Agents bzw. Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio). Fahren Sie mit Schritt c fort.

    3. Führen Sie sp_helppeerresponses aus, und stellen Sie den unter Schritt b abgerufenen @request_id-Wert bereit. Warten Sie, bis alle Knoten anzeigen, dass die Peeranforderung empfangen wurde.Fahren Sie mit Schritt d fort.

    4. Verwenden Sie DBCC CHECKIDENT, um den einzelnen Tabellen in Datenbank B neue Ausgangswerte zuzuweisen, um sicherzustellen, dass ein ordnungsgemäßer Bereich verwendet wird.Fahren Sie mit Schritt 10 fort.

    Weitere Informationen zum Verwalten von Identitätsbereichen finden Sie im Abschnitt zum Zuweisen von Bereichen bei der manuellen Verwaltung von Identitätsbereichen unter Replizieren von Identitätsspalten.

  10. An diesem Punkt sind Datenbank B und Datenbank C nicht direkt verbunden, sie erhalten jedoch Änderungen über Datenbank A. Wenn die Topologie Knoten aufweist, auf denen SQL Server 2005 ausgeführt wird, fahren Sie mit Schritt 11 fort; andernfalls fahren Sie mit Schritt 12 fort.

  11. Versetzen Sie das System in einen inaktiven Status, und erstellen Sie dann das Abonnement zwischen Datenbank B und Datenbank C neu. Um das System in einen inaktiven Status zu versetzen, beenden Sie alle Aktivitäten an veröffentlichten Tabellen in allen Knoten, und stellen Sie sicher, dass jeder Knoten alle Änderungen aller anderen Knoten erhalten hat.

    1. Beenden Sie alle Aktivitäten an allen veröffentlichten Tabellen in der Peer-to-Peer-Topologie. Fahren Sie mit Schritt b fort.

    2. Führen Sie sp_requestpeerresponse in Datenbank B aus, und rufen Sie den Ausgabeparameter @request_id ab. Fahren Sie mit Schritt c fort.

    3. Der Verteilungs-Agent wird standardmäßig fortlaufend ausgeführt, folglich sollten Token automatisch an alle Knoten gesendet werden.Wenn der Verteilungs-Agent nicht im fortlaufenden Modus ausgeführt wird, führen Sie den Agent aus. Fahren Sie mit Schritt d fort.

    4. Führen Sie sp_helppeerresponses aus, und stellen Sie den unter Schritt b abgerufenen @request_id-Wert bereit. Warten Sie, bis alle Knoten anzeigen, dass die Peeranforderung empfangen wurde. Fahren Sie mit Schritt e fort.

    5. Erstellen Sie das Abonnement in Datenbank B für die Veröffentlichung in Datenbank C neu. Geben Sie dabei an, dass der Abonnent bereits über die Daten verfügt. Fahren Sie mit Schritt b fort.

    6. Erstellen Sie das Abonnement in Datenbank C für die Veröffentlichung in Datenbank B neu. Geben Sie dabei an, dass der Abonnent bereits über die Daten verfügt. Fahren Sie mit Schritt 13 fort.

  12. Erstellen Sie das Abonnement zwischen Datenbank B und Datenbank C neu:

    1. Fragen Sie in Datenbank B die MSpeer_lsns-Tabelle ab, um die Protokollfolgenummer (Log Sequence Number, LSN) der letzten Transaktion abzurufen, die Datenbank B von Datenbank C erhalten hat.

    2. Erstellen Sie das Abonnement in Datenbank B für die Veröffentlichung in Datenbank C neu. Geben Sie dabei an, dass das Abonnement basierend auf der LSN initialisiert wird (ein Wert initialize from lsn für den @sync_type-Parameter von sp_addsubscription). Fahren Sie mit Schritt b fort.

    3. Erstellen Sie das Abonnement in Datenbank C für die Veröffentlichung in Datenbank B neu. Geben Sie dabei an, dass der Abonnent bereits über die Daten verfügt. Fahren Sie mit Schritt 13 fort.

  13. Führen Sie die Verteilungs-Agents aus, und synchronisieren Sie die Abonnements in den Datenbanken B und C. Die Wiederherstellung ist abgeschlossen.

msdb-Datenbank (Verleger)

  1. Stellen Sie die aktuellste Sicherung der msdb-Datenbank wieder her.

  2. Ist die wiederhergestellte Sicherung vollständig und aktuell? Enthält sie die aktuelle Konfiguration für alle Veröffentlichungen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 3 fort.

  3. Erstellen Sie den Auftrag für ein Abonnementcleanup mithilfe der Replikationsskripts neu. Die Wiederherstellung ist abgeschlossen.

master-Datenbank (Verleger)

  1. Stellen Sie die aktuellste Sicherung der master-Datenbank wieder her.

  2. Stellen Sie sicher, dass die Datenbank hinsichtlich der Replikationskonfiguration und der Einstellungen mit der Veröffentlichungsdatenbank konsistent ist.

Datenbanken auf dem Verteiler

Verteilungsdatenbank

  1. Stellen Sie die aktuellste Sicherung der Verteilungsdatenbank wieder her.

  2. War die Einstellung sync with backup vor dem Fehler für die Verteilungsdatenbank aktiviert? Wenn ja, fahren Sie mit Schritt 3 fort, wenn nein, fahren Sie mit Schritt 4 fort.

    Wenn die Einstellung aktiviert ist, gibt die Abfrage SELECT DATABASEPROPERTYEX('<DistributionDatabaseName>', 'IsSyncWithBackup') den Wert 1 zurück.

  3. Ist die wiederhergestellte Sicherung vollständig und aktuell? Enthält sie die aktuelle Konfiguration für alle Veröffentlichungen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 4 fort.

  4. Entweder sind die Konfigurationsinformationen in der wiederhergestellten Verteilungsdatenbank nicht aktuell, oder die Option sync with backup wurde nicht für die Verteilungsdatenbank festgelegt. (Nach der Wiederherstellung fehlen in der Verteilungsdatenbank möglicherweise Transaktionen, für die auf dem Verleger ein Commit ausgeführt wurde, die jedoch noch nicht an Abonnenten übermittelt wurden.) Löschen Sie die Replikation, und erstellen Sie sie neu. Führen Sie dann eine Überprüfung aus.

    1. Entfernen Sie die Replikationskonfiguration vom Verleger, vom Verteiler und von den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt. Fahren Sie mit Schritt b fort.

      Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und Vorgehensweise: Manuelles Initialisieren eines Abonnements (Replikationsprogrammierung mit Transact-SQL).

    2. Markieren Sie alle Veröffentlichungen zur Überprüfung. Initialisieren Sie alle Abonnements neu, bei denen die Überprüfung einen Fehler erzeugt. Die Wiederherstellung ist abgeschlossen.

      Weitere Informationen zur Überprüfung finden Sie unter Überprüfen von replizierten Daten. Weitere Informationen zur Neuinitialisierung finden Sie unter Erneutes Initialisieren eines Abonnements.

msdb-Datenbank (Verteiler)

  1. Stellen Sie die aktuellste Sicherung der msdb-Datenbank wieder her.

  2. Ist die wiederhergestellte Sicherung vollständig und aktuell? Enthält sie die aktuelle Konfiguration für alle Veröffentlichungen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 3 fort.

  3. Entfernen Sie die Replikationskonfiguration vom Verleger, vom Verteiler und von den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt.Fahren Sie mit Schritt 4 fort.

    Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).

    Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und Vorgehensweise: Manuelles Initialisieren eines Abonnements (Replikationsprogrammierung mit Transact-SQL).

  4. Markieren Sie alle Veröffentlichungen zur Überprüfung. Initialisieren Sie alle Abonnements neu, bei denen die Überprüfung einen Fehler erzeugt. Die Wiederherstellung ist abgeschlossen.

    Weitere Informationen zur Überprüfung finden Sie unter Überprüfen von replizierten Daten. Weitere Informationen zur Neuinitialisierung finden Sie unter Erneutes Initialisieren eines Abonnements.

master-Datenbank (Verteiler)

  1. Stellen Sie die aktuellste Sicherung der master-Datenbank wieder her.

  2. Stellen Sie sicher, dass die Datenbank hinsichtlich der Replikationskonfiguration und der Einstellungen mit der Veröffentlichungsdatenbank konsistent ist.

Datenbanken auf dem Abonnenten

Abonnementdatenbank

  1. Ist die aktuelle Sicherung der Abonnementdatenbank jünger als die Einstellung für die maximale Beibehaltungsdauer der Verteilung für die Verteilungsdatenbank? (Hiermit ermitteln Sie, ob der Verteiler noch über alle Befehle verfügt, die zum Aktualisieren des Abonnenten erforderlich sind.) Wenn ja, fahren Sie mit Schritt 2 fort. Wenn nein, initialisieren Sie das Abonnement erneut. Die Wiederherstellung ist abgeschlossen.

    Um die Einstellung für die maximale Beibehaltungsdauer der Verteilung zu ermitteln, führen Sie sp_helpdistributiondb aus, und rufen Sie den Wert aus der max_distretention-Spalte ab (es handelt sich um einen Stundenwert).

    Weitere Informationen zum erneuten Initialisieren eines Abonnements finden Sie unter Vorgehensweise: Erneutes Initialisieren eines Abonnements (SQL Server Management Studio) und Vorgehensweise: Erneutes Initialisieren eines Abonnements (Replikationsprogrammierung mit Transact-SQL).

  2. Stellen Sie die aktuellste Sicherung der Abonnementdatenbank wieder her. Fahren Sie mit Schritt 3 fort.

  3. Wenn die Abonnementdatenbank nur Pushabonnements enthält, fahren Sie mit Schritt 4 fort. Enthält die Abonnementdatenbank auch Pullabonnements, stellen Sie die folgenden Fragen: Sind die Abonnementinformationen aktuell? Sind in der Datenbank alle Tabellen und Optionen eingeschlossen, die beim Auftreten des Fehlers festgelegt waren? Wenn ja, fahren Sie mit Schritt 4 fort. Wenn nein, initialisieren Sie das Abonnement erneut. Die Wiederherstellung ist abgeschlossen.

  4. Führen Sie den Verteilungs-Agent aus, um den Abonnenten zu synchronisieren. Die Wiederherstellung ist abgeschlossen.

    Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte für die Programmierung von Replikations-Agents.

msdb-Datenbank (Abonnent)

  1. Stellen Sie die aktuellste Sicherung der msdb-Datenbank wieder her. Werden Pullabonnements auf diesem Abonnenten verwendet? Wenn nicht, ist die Wiederherstellung abgeschlossen.Wenn ja, fahren Sie mit Schritt 2 fort.

  2. Ist die wiederhergestellte Sicherung vollständig und aktuell? Enthält sie die aktuelle Konfiguration für alle Pullabonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 3 fort.

  3. Löschen Sie die Pullabonnements, und erstellen Sie sie neu. Geben Sie beim Neuerstellen der Abonnements an, dass der Abonnent bereits über die Daten verfügt. Die Wiederherstellung ist abgeschlossen.

    Weitere Informationen zum Löschen von Abonnements finden Sie unter Abonnieren von Veröffentlichungen.

    Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und Vorgehensweise: Manuelles Initialisieren eines Abonnements (Replikationsprogrammierung mit Transact-SQL).

master-Datenbank (Abonnent)

  1. Stellen Sie die aktuellste Sicherung der master-Datenbank wieder her.

  2. Stellen Sie sicher, dass die Datenbank hinsichtlich der Replikationskonfiguration und der Einstellungen mit der Veröffentlichungsdatenbank konsistent ist.