Strategien zum Sichern und Wiederherstellen einer Momentaufnahme- und Transaktionsreplikation

Gilt für: SQL Server Azure 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.

    Die Einstellung der Option Synchronisierung mit Backup auf der Verteilungsdatenbank ist nicht kompatibel, wenn die Verlegerdatenbank Teil einer 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) Hilfe: http://help/MSSQL_REPL20011 Möglicher inkonsistenter Zustand in der Verteilungsdatenbank: dist_backup_lsn {nnnnnnnn:nnnnnnnn:nnnn}, dist_last_lsn {nnnnnnnn:nnnnnnnn: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 einer 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 Starten und Beenden eines Verteilungs-Agents finden Sie unter 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 View Replicated Commands and Other Information in the Distribution Database (Replication Transact-SQL Programming) (Anzeigen von replizierten Befehlen und anderen Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL)) und View information and perform tasks using Replication Monitor (Anzeigen von Informationen und Ausführen von Aufgaben mit dem 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 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 Starten und Beenden eines Verteilungs-Agents finden Sie unter 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 View Replicated Commands and Other Information in the Distribution Database (Replication Transact-SQL Programming) (Anzeigen von replizierten Befehlen und anderen Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL)) und View information and perform tasks using Replication Monitor (Anzeigen von Informationen und Ausführen von Aufgaben mit dem Replikationsmonitor).

    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 zu den tablediff-Dienstprogramm finden Sie unter Ü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 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 Starten und Beenden eines Verteilungs-Agents finden Sie unter 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 View Replicated Commands and Other Information in the Distribution Database (Replication Transact-SQL Programming) (Anzeigen von replizierten Befehlen und anderen Informationen in der Verteilungsdatenbank (Replikationsprogrammierung mit Transact-SQL)) und View information and perform tasks using Replication Monitor (Anzeigen von Informationen und Ausführen von Aufgaben mit dem Replikationsmonitor).

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

    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 zu den tablediff-Dienstprogramm finden Sie unter Ü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 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. Gehen Sie zu Schritt 2.

    Weitere Informationen zum Starten und Beenden eines Verteilungs-Agents finden Sie unter 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. Gehen Sie zu Schritt 3.

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

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

    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. Gehen Sie zu Schritt 6.

  6. Stellen Sie die Sicherung von Datenbank A in Datenbank B wieder her. Datenbank B verfügt nun über die Daten von Datenbank A, aber nicht ü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. Gehen 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 Veröffentlichung in Datenbank B neu. Gehen 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 Verteilungsagenten aus, um die Abonnements in den Datenbanken A und B zu synchronisieren. Wenn es in den veröffentlichten Tabellen Identitätsspalten gibt, 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 Konzepte für ausführbare Replikations-Agenten 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. Legen Sie das System still und erstellen Sie dann das Abonnement zwischen den Datenbanken B und 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 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-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.) Verwerfen Sie die Replikation, erstellen Sie sie neu und führen Sie dann die Validierung durch.

    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 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 einer 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, gehen Sie zu Schritt 2. 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 Starten und Beenden eines Verteilungs-Agents finden Sie unter 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 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.