Strategien zum Sichern und Wiederherstellen einer Snapshot- und Transaktionsreplikation
Drei Bereiche sind beim Entwickeln einer Sicherungs- und Wiederherstellungsstrategie für die Snapshot- und Transaktionsreplikation zu berücksichtigen:
- Die zu sichernden Datenbanken.
- Die Sicherungseinstellungen für die Transaktionsreplikation.
- Die Schritte, die zum Wiederherstellen einer Datenbank erforderlich sind (was vom ausgewählten Replikationstyp und den Optionen abhängt).
In diesem Thema wird jeder dieser Bereiche in den nächsten drei Abschnitten erläutert. Informationen zum Sichern und Wiederherstellen bei Oracle-Verlegern finden Sie unter Sichern und Wiederherstellen bei Oracle-Verlegern.
Sichern von Datenbanken
Sichern Sie bei der Snapshot- und Transaktionsreplikation regelmäßig die folgenden Datenbanken:
- Publikationsdatenbank auf dem Verleger
- Verteilungsdatenbank auf dem Verteiler
- Abonnementdatenbank auf den einzelnen Abonnenten
- Die Systemdatenbanken master und msdb auf dem Verleger, Verteiler und allen Abonnenten. Diese Datenbanken sollten zeitgleich miteinander und der relevanten Replikationsdatenbank gesichert werden. Sichern Sie beispielsweise die Datenbanken master und msdb auf dem Verleger zur selben Zeit wie die Publikationsdatenbank. Wenn die Publikationsdatenbank wiederhergestellt wird, stellen Sie sicher, dass die Datenbanken master und msdb hinsichtlich der Replikationskonfiguration und -einstellungen mit der Publikationsdatenbank konsistent sind.
Wenn Sie regelmäßig Protokollsicherungen vornehmen, sollten sämtliche replikationsbezogene Änderungen in den Protokollsicherungen aufgezeichnet werden. Wenn Sie keine Protokollsicherungen ausführen, sollte immer dann eine Sicherung erfolgen, wenn eine replikationsrelevante Änderung vorgenommen wurde. Weitere Informationen finden Sie unter Häufige Aktionen, die eine aktualisierte Sicherung erfordern.
Sicherungseinstellungen für die Transaktionsreplikation
Die Transaktionsreplikation schließt die Option sync with backup ein, die für die Distributionsdatenbank und die Publikationsdatenbank festgelegt werden kann:
- Es wird empfohlen, diese Option in allen Fällen für die Verteilungsdatenbank festzulegen.
Mit dieser Option wird sichergestellt, dass Transaktionen im Protokoll der Publikationen nicht abgeschnitten werden, bevor sie in der Verteilungsdatenbank gesichert wurden. Die Verteilungsdatenbank kann auf die neueste Sicherung wiederhergestellt werden. Eventuell fehlende Transaktionen werden von der Publikationsdatenbank an die Verteilungsdatenbank übermittelt. Die Replikation wird ohne Einschränkungen fortgesetzt.
Das Festlegen dieser Option für die Verteilungsdatenbank wirkt sich nicht auf die Replikationswartezeit aus. Protokollkürzungen in der Publikationsdatenbank werden jedoch verzögert, bis die entsprechenden Transaktionen in den Verteilungsdatenbanken gesichert wurden (was zu einem größeren Transaktionsprotokoll in der Publikationsdatenbank führen kann). - Es wird empfohlen, diese Option für die Publikationsdatenbank festzulegen, falls die Anwendung eine zusätzliche Wartezeit unterstützt.
Wenn Sie diese Option für die Publikationsdatenbank festlegen, stellen Sie sicher, dass Transaktionen erst an die Verteilungsdatenbank übermittelt werden, wenn Sie in der Publikationsdatenbank gesichert wurden. Die neueste Sicherung der Publikationsdatenbank kann dann auf dem Verleger wiederhergestellt werden, und es besteht keine Möglichkeit, dass die Verteilungsdatenbank Transaktionen enthält, die in der wiederhergestellten Publikationsdatenbank nicht vorhanden sind.
Wartezeit 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 Wartezeit von fünf Minuten zwischen dem Ausführen des Commit für eine Transaktion auf dem Verleger und dem Übermitteln der Transaktion an die Verteilerdatenbank und anschließend an den Abonnenten.Hinweis: Mit der Option sync with backup wird die Konsistenz zwischen der Publikationsdatenbank und der Verteilerdatenbank 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 Publikationsdatenbank oder der Verteilungsdatenbank verfügbar. Das ist dasselbe Verhalten wie bei einer nicht replizierten Datenbank.
So legen Sie die Option sync with backup fest
- Replikationsprogrammierung mit Transact-SQL: How to: Enable Coordinated Backups for Transactional Replication (Replication Transact-SQL Programming)
Wiederherstellen der an der Replikation beteiligten Datenbanken
Wenn aktuelle Sicherungen verfügbar sind und die richten Schritte befolgt werden, können alle Datenbanken einer Replikationstopologie wiederhergestellt werden. Die Wiederherstellungsschritte für die Publikationsdatenbak hängen vom Typ der verwendeten Replikation und den 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 Publikationen und Abonnements neu erstellt werden.
Verleger
Wiederherstellungsschritte werden für die folgenden Replikationstypen bereitgestellt:
- Snapshotreplikation
- Schreibgeschützte Transaktionsreplikation
- Transaktionsreplikation mit aktualisierbaren Abonnements
- Peer-to-Peer-Transaktionsreplikation
Die Wiederherstellung der Datenbanken msdb und master (ebenfalls in diesem Abschnitt erläutert) verläuft bei allen vier Typen gleich.
Publikationsdatenbank: Snapshotreplikation
- Stellen Sie die aktuellste Sicherung der Publikationsdatenbank wieder her. Fahren Sie mit Schritt 2 fort.
- Enthält die Sicherung der Publikationsdatenbank die aktuelle Konfiguration für alle Publikationen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 3 fort.
- Entfernen Sie die Replikationskonfiguration vom Verleger, Verteiler und den Abonnenten, und erstellen Sie die Konfiguration dann neu. Die Wiederherstellung ist abgeschlossen.
Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).
Publikationsdatenbank: Schreibgeschützte Transaktionsreplikation
- Stellen Sie die aktuellste Sicherung der Publikationsdatenbank wieder her. Fahren Sie mit Schritt 2 fort.
- War die Einstellung sync with backup vor dem Fehler für die Publikationsdatenbank aktiviert? Wenn ja, fahren Sie mit Schritt 3 fort, wenn nein, fahren Sie mit Schritt 5 fort.
War die Einstellung aktiviert, gibt die AbfrageSELECT DATABASEPROPERTYEX('<PublicationDatabaseName>', 'IsSyncWithBackup');
den Wert '1' zurück. - Ist die wiederhergestellte Sicherung vollständig und aktuell; enthält sie die aktuelle Konfiguration für alle Publikationen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 4 fort.
- Die Konfigurationsinformationen in der wiederhergestellten Publikationsdatenbank sind nicht aktuell. Deshalb müssen Sie sicherstellen, dass die Abonnenten alle ausstehenden Befehle in der Verteilungsdatenbank aufweisen. Anschließend löschen Sie die Replikationskonfiguration und erstellen Sie sie erneut.
- Führen Sie den Verteilungs-Agent aus, bis alle Abonnenten mit den ausstehenden Befehlen in der Verteilungsdatenbank synchronisiert wurden. Überprüfen Sie, ob alle Befehle an die Abonnenten übermittelt wurden. Verwenden Sie dazu im Replikationsmonitor die Registerkarte Nicht verteilte Befehle, oder fragen Sie die MSdistribution_status-Sicht in der Verteilungsdatenbank ab. Fahren Sie mit Schritt b fort.
Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Programming Replication Agent Executables.
Weitere Informationen zum Überprüfen von Befehlen finden Sie unter How to: View Replicated Commands and Other Information in the Distribution Database (Replication Transact-SQL Programming) und Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einem Abonnement zugeordneten Agents (Replikationsmonitor). - Entfernen Sie die Replikationskonfiguration vom Verleger, Verteiler und den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt. Die Wiederherstellung ist abgeschlossen.
Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).
Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und How to: Initialize a Subscription Manually (Replication Transact-SQL Programming).
- 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.
- Die Option sync with backup war für die Publikationsdatenbank nicht 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 Publikationsdatenbank an, die nicht in die wiederhergestellte Sicherung eingeschlossen waren:
Wichtig: Beim Ausführen dieses Prozesses, kann es passieren, dass veröffentlichte Tabellen nach dem Wiederherstellen aus der Sicherung einen neueren Stand aufweisen als nicht veröffentlichte Tabellen.
Publikationsdatenbank: Transaktionsreplikation mit aktualisierbaren Abonnements
- Stellen Sie die aktuellste Sicherung der Publikationsdatenbank wieder her. Fahren Sie mit Schritt 2 fort.
- Führen Sie den Verteilungs-Agent aus, bis alle Abonnenten mit den ausstehenden Befehlen in der Verteilungsdatenbank synchronisiert wurden. Überprüfen Sie, ob alle Befehle an die Abonnenten übermittelt wurden. Verwenden Sie dazu im Replikationsmonitor die Registerkarte Nicht verteilte Befehle, oder fragen Sie die MSdistribution_status-Sicht in der Verteilungsdatenbank ab. Fahren Sie mit Schritt 3 fort.
Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Programming Replication Agent Executables.
Weitere Informationen zum Überprüfen von Befehlen finden Sie unter How to: View Replicated Commands and Other Information in the Distribution Database (Replication Transact-SQL Programming) und Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für die einem Abonnement zugeordneten Agents (Replikationsmonitor). - Wenn Sie Abonnements mit verzögertem Aktualisieren über eine Warteschlange verwenden, stellen Sie mit jedem Abonnenten eine Verbindung her, und löschen Sie in der Abonnementdatenbank alle Zeilen aus der MSreplication_queue-Tabelle. Fahren Sie mit Schritt 4 fort.
Hinweis: Wenn Sie Abonnements mit verzögertem Aktualisieren über eine Warteschlange verwenden und Tabellen Identitätsspalten enthalten, müssen Sie sicherstellen, dass nach jeder Wiederherstellung die richtigen Identitätsbereiche zugewiesen werden. Weitere Informationen finden Sie unter Replizieren von Identitätsspalten. - Stellen Sie nun sicher, dass die Abonnenten über alle ausstehenden Befehle in der Verteilungsdatenbank verfügen. Wenden Sie dann manuell alle Transaktionen auf die Publikationsdatenbank an, die nicht in die wiederhergestellte Sicherung eingeschlossen waren:
Wichtig: Beim Ausführen dieses Prozesses, kann es passieren, dass veröffentlichte Tabellen nach dem Wiederherstellen aus der Sicherung einen neueren Stand aufweisen als nicht veröffentlichte Tabellen.
Publikationsdatenbank: Peer-to-Peer-Transaktionsreplikation
In den folgenden Schritten sind die Publikationsdatenbanken A, B und C Bestandteil der Transaktionsreplikationstopologie. Die Datenbanken A und C sind online und funktionieren ordnungsgemäß; Datenbank B muss wiederhergestellt werden.
- Führen Sie die Verteilungs-Agents aus, und synchronisieren Sie die Abonnements in den Datenbanken A und C. Fahren Sie mit Schritt 2 fort.
Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Programming Replication Agent Executables. - 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.
- Entfernen Sie Metadaten aus der von B verwendeten Verteilungsdatenbank. Führen Sie dazu in der Verteilungsdatenbank sp_removedistpublisherdbreplication (Transact-SQL) für B aus. Fahren Sie mit Schritt 4 fort.
- Löschen Sie in den Datenbanken A und C die Abonnements für die Publikation in Datenbank B. Fahren Sie mit Schritt 5 fort.
Weitere Informationen zum Löschen von Abonnements finden Sie unter Abonnieren von Publikationen. - Führen Sie eine Protokollsicherung oder eine vollständige Sicherung für Datenbank A aus. Fahren Sie mit Schritt 6 fort.
- Stellen Sie die Sicherung von Datenbank A in 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.
- Erstellen Sie die Publikation auf Datenbank B neu, und erstellen Sie anschließend Abonnements zwischen den Datenbanken A und B neu (Abonnements, die Datenbank C mit einbeziehen, werden in einem umfassenderen Schritt behandelt):
- Erstellen Sie die Publikation in Datenbank B neu. Fahren Sie mit Schritt b fort.
- Erstellen Sie das Abonnement auf Datenbank B für die Publikation auf 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 (Transact-SQL)). Fahren Sie mit Schritt c fort.
- Erstellen Sie das Abonnement auf Datenbank A für die Publikation auf Datenbank B neu. Geben Sie dabei an, dass das Abonnement bereits über die Daten verfügt (ein Wert replication support only für den @sync_type-Parameter von sp_addsubscription (Transact-SQL)). Fahren Sie mit Schritt 8 fort.
Die einfachste Möglichkeit zum Ausführen der Schritte a bis c ist diejenige mithilfe des Assistenten zum Konfigurieren der Peer-to-Peer-Topologie. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren der Peer-to-Peer-Transaktionsreplikation (SQL Server Management Studio). Sie können auch gespeicherte Prozeduren verwenden. Weitere Informationen finden Sie unter How to: Configure Peer-to-Peer Transactional Replication (Replication Transact-SQL Programming).
- Führen Sie die Verteilungs-Agents zum Synchronisieren der Abonnements auf den Datenbanken A und B aus. Falls veröffentlichte Tabellen Identitätsspalten enthalten, fahren Sie mit Schritt 9 fort. Fahren Sie andernfalls mit Schritt 10 fort.
- Nach der Wiederherstellung würden die Identitätsbereiche, die Sie für die einzelnen 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.
- Führen Sie sp_requestpeerresponse (Transact-SQL) für Datenbank B aus, und rufen Sie den @request_id-Ausgabeparameter ab. Fahren Sie mit Schritt b fort.
- 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 Programming Replication Agent Executables bzw. Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio). Fahren Sie mit Schritt c fort.
- Führen Sie sp_helppeerresponses (Transact-SQL) aus, und stellen Sie den unter Schritt b abgerufenen @request_id-Wert bereit. Warten Sie, bis alle Knoten anzeigen, dass die Peeranforderung empfangen wurde. Fahren Sie mit Schritt d fort.
- Verwenden Sie DBCC CHECKIDENT, um den einzelnen Tabellen in Datenbank B neue Ausgangswerte zuzuweisen, um sicherzustellen, dass ein ordnungsgemäßer Bereich verwendet wird. Fahren Sie mit Schritt 10 fort.
Weitere Informationen zum Verwalten von Identitätsbereichen finden Sie im Abschnitt zum Zuweisen von Bereichen bei der manuellen Verwaltung von Identitätsbereichen unter Replizieren von Identitätsspalten.
- An diesem Punkt sind die Datenbanken B und C nicht direkt verbunden, sie erhalten jedoch Änderungen über Datenbank A. Führen Sie zum Verbinden von Datenbank B mit Datenbank C die Schritte 11 bis 13 aus.
- Versetzen Sie das System in einen inaktiven Status. Um das System in einen inaktiven Status zu versetzen, beenden Sie alle Aktivitäten in veröffentlichten Tabellen in allen Knoten, und stellen Sie sicher, dass jeder Knoten alle Änderungen aller anderen Knoten erhalten hat.
- Beenden Sie alle Aktivitäten an allen veröffentlichten Tabellen in der Peer-to-Peer-Topologie. Fahren Sie mit Schritt b fort.
- Führen Sie sp_requestpeerresponse (Transact-SQL) für Datenbank B aus, und rufen Sie den @request_id-Ausgabeparameter ab. Fahren Sie mit Schritt c fort.
- 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.
- Führen Sie sp_helppeerresponses (Transact-SQL) aus, und stellen Sie den unter Schritt b abgerufenen @request_id-Wert bereit. Warten Sie, bis alle Knoten anzeigen, dass die Peeranforderung empfangen wurde. Fahren Sie mit Schritt 12 fort.
- Erstellen Sie das Abonnement zwischen den Datenbanken B und C neu:
- Erstellen Sie das Abonnement auf Datenbank B für die Publikation auf Datenbank C neu. Geben Sie dabei an, dass das Abonnement von einer Sicherung initialisiert werden soll. Fahren Sie mit Schritt b fort.
- Erstellen Sie das Abonnement auf Datenbank C für die Publikation auf Datenbank B neu. Geben Sie dabei an, dass der Abonnent bereits über die Daten verfügt. Fahren Sie mit Schritt 13 fort.
- Führen Sie die Verteilungs-Agents zum Synchronisieren der Abonnements auf den Datenbanken B und C aus. Die Wiederherstellung ist abgeschlossen.
msdb-Datenbank (Verleger)
- Stellen Sie die aktuellste Sicherung der msdb-Datenbank wieder her.
- Ist die wiederhergestellte Sicherung vollständig und aktuell; enthält sie die aktuelle Konfiguration für alle Publikationen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 3 fort.
- Erstellen Sie den Replikationsauftrag Abonnementcleanup mithilfe der Replikationsskripts neu. Die Wiederherstellung ist abgeschlossen.
master-Datenbank (Verleger)
- Stellen Sie die aktuellste Sicherung der master-Datenbank wieder her.
- Stellen Sie sicher, dass die Datenbank hinsichtlich der Replikationskonfiguration und der Einstellungen mit der Publikationsdatenbank konsistent ist.
Datenbanken auf dem Verteiler
Verteilungsdatenbank
- Stellen Sie die aktuellste Sicherung der Verteilungsdatenbank wieder her.
- 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.
War die Einstellung aktiviert, gibt die AbfrageSELECT DATABASEPROPERTYEX('<DistributionDatabaseName>', 'IsSyncWithBackup');
den Wert '1' zurück. - Ist die wiederhergestellte Sicherung vollständig und aktuell; enthält sie die aktuelle Konfiguration für alle Publikationen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 4 fort.
- Entweder die Konfigurationsinformationen in der wiederhergestellten Publikationsdatenbank sind nicht aktuell oder die Option sync with backup war für die Verteilungsdatenbank nicht festgelegt (nach dem Wiederherstellen fehlen der Verteilungsdatenbank möglicherweise Transaktionen, für die auf dem Verleger ein Commit ausgeführt wurde, die jedoch noch nicht an die Abonnenten übermittelt wurden). Löschen Sie die Replikation, und erstellen Sie sie neu. Führen Sie dann eine Überprüfung aus:
- Entfernen Sie die Replikationskonfiguration vom Verleger, Verteiler und den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt. Fahren Sie mit Schritt b fort.
Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).
Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und How to: Initialize a Subscription Manually (Replication Transact-SQL Programming). - Markieren Sie alle Publikationen zur Überprüfung. Initialisieren Sie alle Abonnements neu, bei denen die Überprüfung einen Fehler erzeugt. Die Wiederherstellung ist abgeschlossen.
Weitere Informationen zur Überprüfung finden Sie unter Überprüfen von replizierten Daten.
Weitere Informationen zur Neuinitialisierung finden Sie unter Erneutes Initialisieren eines Abonnements.
- Entfernen Sie die Replikationskonfiguration vom Verleger, Verteiler und 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.
msdb-Datenbank (Verteiler)
- Stellen Sie die aktuellste Sicherung der msdb-Datenbank wieder her.
- Ist die wiederhergestellte Sicherung vollständig und aktuell; enthält sie die aktuelle Konfiguration für alle Publikationen und Abonnements? Wenn ja, ist die Wiederherstellung abgeschlossen. Wenn nein, fahren Sie mit Schritt 3 fort.
- Entfernen Sie die Replikationskonfiguration vom Verleger, Verteiler und den Abonnenten, und erstellen Sie die Konfiguration dann neu. Geben Sie beim Neuerstellen von Abonnements an, dass der Abonnent bereits über die Daten verfügt. Fahren Sie mit Schritt 4 fort.
Weitere Informationen zum Entfernen einer Replikation finden Sie unter Entfernen der Replikation und sp_removedbreplication (Transact-SQL).
Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und How to: Initialize a Subscription Manually (Replication Transact-SQL Programming). - Markieren Sie alle Publikationen zur Überprüfung. Initialisieren Sie alle Abonnements neu, bei denen die Überprüfung einen Fehler erzeugt. Die Wiederherstellung ist abgeschlossen.
Weitere Informationen zur Überprüfung finden Sie unter Überprüfen von replizierten Daten.
Weitere Informationen zur Neuinitialisierung finden Sie unter Erneutes Initialisieren eines Abonnements.
master-Datenbank (Verteiler)
- Stellen Sie die aktuellste Sicherung der master-Datenbank wieder her.
- Stellen Sie sicher, dass die Datenbank hinsichtlich der Replikationskonfiguration und der Einstellungen mit der Publikationsdatenbank konsistent ist.
Datenbanken auf dem Abonnenten
Abonnementdatenbank
- Ist die aktuellste Sicherung der Abonnementdatenbank jünger als die Einstellung für die maximalen Beibehaltungsdauer der Verteilung für die Verteilungsdatenbank? (Hiermit ermitteln Sie, ob der Verteiler noch über alle Befehle verfügt, die zum Aktualisieren des Abonnenten erforderlich sind.) Wenn ja, fahren Sie mit Schritt 2 fort. Wenn nein, initialisieren Sie das Abonnement erneut. Die Wiederherstellung ist abgeschlossen.
Um die Einstellung für die maximalen Beibehaltungsdauer der Verteilung zu ermitteln, führen Sie sp_helpdistributiondb (Transact-SQL) aus, und rufen Sie den Wert aus der max_distretention-Spalte ab (es handelt sich um einen Stundenwert).
Weitere Informationen zum erneuten Initialisieren eines Abonnements finden Sie unter Vorgehensweise: Erneutes Initialisieren eines Abonnements (SQL Server Management Studio) und How to: Reinitialize a Subscription (Replication Transact-SQL Programming). - Stellen Sie die aktuellste Sicherung der Abonnementdatenbank wieder her. Fahren Sie mit Schritt 3 fort.
- Wenn die Abonnementdatenbank nur Pushabonnements enthält, fahren Sie mit Schritt 4 fort. Enthält die Abonnementdatenbank auch Pullabonnements: Sind die Abonnementinformationen aktuell? Sind im Abonnement 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.
- Führen Sie zum Synchronisieren des Abonnenten den Verteilungs-Agent aus. Die Wiederherstellung ist abgeschlossen.
Weitere Informationen zum Ausführen des Verteilungs-Agents finden Sie unter Vorgehensweise: Starten und Beenden eines Replikations-Agents (SQL Server Management Studio) und Programming Replication Agent Executables.
msdb-Datenbank (Abonnent)
- Stellen Sie die aktuellste Sicherung der msdb-Datenbank wieder her. Werden Pullabonnements auf diesem Abonnenten verwendet? Wenn nein, ist die Wiederherstellung abgeschlossen. Wenn ja, fahren Sie mit Schritt 2 fort.
- 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.
- Löschen Sie die Pullabonnements, und erstellen Sie sie neu. Geben Sie beim Neuerstellen der Abonnements an, dass der Abonnent bereits über die Daten verfügt. Die Wiederherstellung ist abgeschlossen.
Weitere Informationen zum Löschen von Abonnements finden Sie unter Abonnieren von Publikationen.
Weitere Informationen zum Angeben, dass der Abonnement bereits über die Daten verfügt, finden Sie unter Vorgehensweise: Manuelles Initialisieren eines Abonnements (SQL Server Management Studio) und How to: Initialize a Subscription Manually (Replication Transact-SQL Programming).
master-Datenbank (Abonnent)
- Stellen Sie die aktuellste Sicherung der master-Datenbank wieder her.
- Stellen Sie sicher, dass die Datenbank hinsichtlich der Replikationskonfiguration und der Einstellungen mit der Publikationsdatenbank konsistent ist.
Siehe auch
Konzepte
Sichern und Wiederherstellen replizierter Datenbanken
Konfigurieren der Verteilung
Veröffentlichen von Daten und Datenbankobjekten
Abonnieren von Publikationen
Initialisieren eines Abonnements
Synchronisieren von Daten
Andere Ressourcen
Sichern und Wiederherstellen von Datenbanken in SQL Server