Strategien zum Sichern und Wiederherstellen einer Momentaufnahme- und Transaktionsreplikation

Gilt für:SQL ServerAzure SQL-Datenbank

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.

Hinweis

Azure SQL Managed Instance kann als Herausgeber, Verleger und Abonnent der Momentaufnahmen- und Transaktionsreplikation fungieren. Datenbanken in Azure SQL-Datenbank können nun Pushabonnenten der Momentaufnahmen- und Transaktionsreplikation sein. Weitere Informationen finden Sie in den Abschnitten zur Transaktionsreplikation unter Replikation zu Azure SQL-Datenbank und Transaktionsreplikation mit Azure SQL Managed Instance (Vorschau).

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.

    Das Festlegen der Synchronisierungsoption mit der Sicherungsoption für die Verteilungsdatenbank ist nicht kompatibel, wenn die Herausgeberdatenbank Teil der Verfügbarkeitsgruppe ist. Dies kann zu folgendem Fehler führen, wenn der Protokolllese-Agent nach dem Failover ausgeführt wird.

    Der Prozess konnte "sp_repldone/sp_replcounters" für "machinename\instance" nicht ausführen. (Quelle: MSSQL_REPL, Fehlernummer: MSSQL_REPL20011) Erhalten Sie Hilfe: http://help/MSSQL_REPL20011 Möglicher inkonsistenter Zustand in der Verteilungsdatenbank: dist_backup_lsn {n:n:n}, dist_last_lsn {nnnn:nn:nnnn}. Führen Sie "sp_repldone NULL, NULL, 0, 0, 1" und dann "sp_replflush" aus. Initialisieren Sie alle Abonnements der Veröffentlichung erneut. (Quelle: MSSQLServer, Fehlernummer: 18846)

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).For more information about how to remove replication, see 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 der Ausführbaren Konzepte des Replikations-Agents.

      Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikations-Transact-SQL-Programmierung) 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).For more information about how to remove replication, see 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 der Ausführbaren Konzepte des Replikations-Agents.

      Weitere Informationen zum Überprüfen von Befehlen finden Sie unter Anzeigen replizierter Befehle und anderer Informationen in der Verteilungsdatenbank (Replikations-Transact-SQL-Programmierung) 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 Tablediff-Hilfsprogramm finden Sie unter Compare Replicated Tables for Differences (Replication Programming).

    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).For more information about how to remove replication, see 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 der Ausführbaren Konzepte des Replikations-Agents.

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

  3. Wenn Sie abonnements in die Warteschlange stellen, 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 Tablediff-Hilfsprogramm finden Sie unter Compare Replicated Tables for Differences (Replication Programming).

    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).For more information about how to remove replication, see and 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-Agent aus, um die Abonnements in den Datenbanken A und C zu synchronisieren. Wechseln Sie zu Schritt 2.

    Weitere Informationen zum Ausführen des Verteilungs-Agent finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und der Ausführbaren Konzepte des Replikations-Agents.

  2. Wenn die von B verwendete Verteilungsdatenbank weiterhin verfügbar ist, führen Sie Verteilungs-Agent aus, um Abonnements zwischen Datenbanken B und A und Datenbanken sowie B und C zu synchronisieren. Wechseln Sie zu Schritt 3.

  3. Entfernen Sie Metadaten aus der Verteilungsdatenbank, die B verwendet, indem Sie sp_removedistpublisherdbreplication in der Verteilungsdatenbank für B ausführen. Wechseln Sie zu Schritt 4.

  4. Legen Sie bei den Datenbanken A und C die Abonnements für die Publikation in der Datenbank B ab. Wechseln Sie zu Schritt 5.

    Weitere Informationen zum Löschen von Abonnements finden Sie unter Subscribe to Publications.

  5. Führen Sie eine Protokollsicherung oder vollständige Sicherung von Datenbank A aus. Wechseln Sie zu Schritt 6.

  6. Stellen Sie die Sicherung der Datenbank A bei Datenbank B wieder her. Datenbank B verfügt jetzt über die Daten aus der Datenbank A, aber nicht über die Replikationskonfiguration. Wenn Sie eine Sicherung auf einem anderen Server wiederherstellen, wird die Replikation entfernt. Daher wurde die Replikation aus der Datenbank B entfernt. Wechseln Sie zu Schritt 7.

  7. Erstellen Sie die Publikation in Datenbank B erneut, und erstellen Sie dann Abonnements zwischen den Datenbanken A und B erneut. (Abonnements mit Datenbank C wird zu einem späteren Zeitpunkt behandelt.)

    1. Erstellen Sie die Publikation in Datenbank B erneut. Wechseln Sie zu Schritt b.

    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-Agent aus, um die Abonnements in den Datenbanken A und B zu synchronisieren. Wenn in veröffentlichten Tabellen Identitätsspalten vorhanden sind, fahren Sie mit Schritt 9 fort. Wenn nicht, fahren Sie mit Schritt 10 fort.

  9. Nach der Wiederherstellung würde der Identitätsbereich, den Sie für jede Tabelle in Datenbank A zugewiesen haben, auch in Datenbank B verwendet. Stellen Sie sicher, dass die wiederhergestellte Datenbank B alle Änderungen der fehlgeschlagenen Datenbank B erhalten hat, die an Datenbank A und Datenbank C weitergegeben wurden, und den Identitätsbereich für jede Tabelle erneut senden.

    1. Führen Sie sp_requestpeerresponse in der 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 des Replikations-Agents" oder "Starten und Beenden eines Replikations-Agents (SQL Server Management Studio)". Fahren Sie mit Schritt c fort.

    3. Führen Sie sp_helppeerresponses unter 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. Zu diesem Zeitpunkt 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 (9.x) ausführen, fahren Sie mit Schritt 11 fort; andernfalls wechseln Sie zu Schritt 12.

  11. Beenden Sie das System, und erstellen Sie dann das Abonnement zwischen den Datenbanken B und C erneut. Das Stilllegen eines Systems umfasst das Beenden von Aktivitäten auf veröffentlichten Tabellen auf allen Knoten und stellt sicher, dass jeder Knoten alle Änderungen von allen 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 der 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 unter 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 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 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-Agent aus, um die Abonnements in den Datenbanken B und C zu synchronisieren. 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, die beim Publisher zugesichert wurden, aber noch nicht an Abonnenten übermittelt wurden.) Legen Sie die Replikation ab, und erstellen Sie sie erneut, und führen Sie dann die Ü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).For more information about how to remove replication, see 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).For more information about how to remove replication, see 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? (Dies bestimmt, ob der Distributor noch alle Befehle enthält, die erforderlich sind, um den Abonnenten auf dem neuesten Stand zu bringen.) 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. 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-Agent finden Sie unter Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und der Ausführbaren 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