Strategien zum Sichern und Wiederherstellen einer Momentaufnahme- und Transaktionsreplikation

Drei Bereiche sind beim Entwickeln einer Sicherungs- und Wiederherstellungsstrategie für die Momentaufnahme- 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. Weitere Informationen zum Sichern und Wiederherstellen bei Oracle-Verlegern finden Sie unter Sichern und Wiederherstellen bei Oracle-Verlegern.

Sichern von Datenbanken

Sichern Sie bei der Momentaufnahme- 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 zur selben Zeit wie alle anderen Datenbanken und die entsprechende 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äßige Protokollsicherungen ausführen, sollten in den Protokollsicherungen auch alle replikationsrelevanten Änderungen erfasst 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 Common Actions Requiring an Updated Backup.

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.

    Hinweis

    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.

Herausgeber

Wiederherstellungsschritte werden für die folgenden Replikationstypen bereitgestellt:

  • Momentaufnahmereplikation

  • Schreibgeschützte Transaktionsreplikation

  • Transaktionsreplikation mit Updateabonnements

  • Peer-zu-Peer-Transaktionsreplikation

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

Veröffentlichungsdatenbank: Momentaufnahmereplikation

  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 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. Die Wiederherstellung ist abgeschlossen.

    Weitere Informationen zum Entfernen der Replikation finden Sie unter 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-Agent finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte des Replikations-Agents.

      Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL) und Anzeigen von Informationen und Ausführen von Aufgaben mithilfe des Replikationsmonitors.

    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 der Replikation finden Sie unter sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Initialize a Subscription Manually.

  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.

    Wichtig

    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-Agent finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte des Replikations-Agents.

      Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL) und Anzeigen von Informationen und Ausführen von Aufgaben mithilfe des Replikationsmonitors.

    2. Verwenden Sie das Hilfsprogramm "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 Hilfsprogramm tablediff finden Sie unter Vergleichen 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 der Replikation finden Sie unter sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Initialize a Subscription Manually.

Veröffentlichungsdatenbank: Transaktionsreplikation mit Updateabonnements

  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-Agent finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte des Replikations-Agents.

    Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL) und Anzeigen von Informationen und Ausführen von Aufgaben mithilfe des Replikationsmonitors.

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

    Hinweis

    Wenn Sie Abonnements mit verzögertem Update ü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.

    Wichtig

    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 Utility 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 Hilfsprogramm tablediff finden Sie unter Vergleichen 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 der Replikation finden Sie unter und sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Initialize a Subscription Manually.

Veröffentlichungsdatenbank: Peer-zu-Peer-Transaktionsreplikation

In den folgenden Schritten sind die Veröffentlichungsdatenbanken A, Bund C Bestandteil einer Peer-zu-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-zu-Peer-Topologie. Die einfachste Möglichkeit zum Ausführen dieser Schritte ist diejenige mithilfe des Assistenten zum Konfigurieren der Peer-zu-Peer-Topologie. Sie können jedoch auch gespeicherte Prozeduren dafür verwenden.

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

    Weitere Informationen zum Ausführen des Verteilungs-Agent finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte des 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 Subscribe to Publications.

  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 Aneu. 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 Bneu. 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_idab. 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 Konzepte für ausführbare Replikations-Agents oder Starten und Beenden eines Replikations-Agents (SQL Server Management Studio). Fahren Sie mit Schritt c fort.

    3. Führen Sie sp_helppeerresponsesunter Angabe des in Schritt B abgerufenen Werts für @request_id aus. Warten Sie, bis alle Knoten angeben, dass sie die Peeranforderung empfangen haben. 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 „Zuweisen von Bereichen für die manuelle Identitätsbereichsverwaltung“ unter Replizieren von Identitätsspalten.

  10. An diesem Punkt sind Datenbank B und Datenbank C nicht direkt verbunden, aber sie erhalten Änderungen über Datenbank A. Wenn die Topologie Knoten enthält, die SQL Server 2005 ausgeführt werden, fahren Sie mit Schritt 11 fort. Fahren Sie andernfalls 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-zu-Peer-Topologie. Fahren Sie mit Schritt b fort.

    2. Führen Sie sp_requestpeerresponse in Datenbank B aus, und rufen Sie den Ausgabeparameter @request_idab. 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_helppeerresponsesunter Angabe des in Schritt B abgerufenen Werts für @request_id aus. Warten Sie, bis alle Knoten angeben, dass sie die Peeranforderung empfangen haben. Fahren Sie mit Schritt e fort.

    5. Erstellen Sie das Abonnement in Datenbank B für die Veröffentlichung in Datenbank Cneu. 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 Bneu. 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 Cneu:

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

    2. Erstellen Sie das Abonnement in Datenbank B für die Veröffentlichung in Datenbank Cneu. 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 Bneu. 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 der Replikation finden Sie unter sp_removedbreplication (Transact-SQL).

      Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Initialize a Subscription Manually.

    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 Validate Replicated Data. Weitere Informationen zur Neuinitialisierung finden Sie unter Erneutes Initialisieren von 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 der Replikation finden Sie unter sp_removedbreplication (Transact-SQL).

    Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Initialize a Subscription Manually.

  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 Validate Replicated Data. Weitere Informationen zur Neuinitialisierung finden Sie unter Erneutes Initialisieren von 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 letzte Sicherung der Abonnementdatenbank jünger als die Einstellung für die minimale Beibehaltungsdauer für die Verteilung der 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 Reinitialize a Subscription.

  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. Wenn die Abonnementdatenbank Pullabonnements enthält, sollten Sie sich die folgenden Fragen stellen: 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-Agent finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Ausführbare Konzepte des 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 Subscribe to Publications.

    Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Initialize a Subscription Manually.

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.

Weitere Informationen

Sichern und Wiederherstellen von SQL Server-Datenbanken
Sichern und Wiederherstellen von replizierten Datenbanken
Verteilung konfigurieren
Veröffentlichen von Daten und Datenbankobjekten
Abonnieren von Veröffentlichungen
Initialisieren eines Abonnements
Synchronisieren von Daten