Überlegungen zum Aktualisieren replizierter Datenbanken

SQL Server 2008 unterstützt das Aktualisieren replizierter Datenbanken von früheren Versionen von SQL Server. Während der Aktualisierung eines Knotens müssen die auf anderen Knoten ausgeführten Aktivitäten nicht beendet werden. Stellen Sie sicher, dass die Regeln, die im Hinblick auf die in einer Topologie unterstützten Versionen gelten, eingehalten werden:

  • SQL Server 2000, Service Pack 3 (SP3) ist die erforderliche Mindestversion, um an einer Replikationstopologie mit SQL Server 2008 teilzunehmen. Bei Verwendung von SQL Server 2005 gilt keine erforderliche Mindestversion.

  • Für den Verteiler ist jede Version zulässig, die der Verleger-Version entspricht oder höher als diese ist. (In vielen Fällen gehören Verteiler und Verleger derselben Instanz an.)

  • Für den Verleger ist jede Version zulässig, die der Verteiler-Version entspricht oder niedriger als diese ist.

  • Die Abonnenten-Version ist vom Veröffentlichungstyp abhängig:

    • Ein Abonnent einer Transaktionsveröffentlichung kann einer der beiden Versionen im Rahmen der Verlegerversion angehören. Beispiel: Ein aktiver SQL Server 2000-Verleger kann mit SQL Server 2008-Abonnenten verwendet werden, und ein SQL Server 2008-Verleger kann mit SQL Server 2000-Abonnenten verwendet werden.

    • Für einen Abonnenten einer Mergeveröffentlichung ist jede Version zulässig, die der Verleger-Version entspricht oder niedriger als diese ist.

HinweisHinweis

Das Thema ist sowohl in der Hilfe zum Setup als auch in der SQL Server-Onlinedokumentation enthalten. Über die fett formatierten Hyperlinks in der Hilfe zum Setup gelangen Sie zu Themen, die nur in der Onlinedokumentation verfügbar sind.

Führen Sie den Protokolllese-Agent für die Transaktionsreplikation vor dem Upgrade aus.

Bevor Sie auf SQL Server 2008 aktualisieren, müssen Sie sich vergewissern, dass alle Transaktionen mit ausgeführtem Commit von veröffentlichten Tabellen vom Protokollese-Agent verarbeitet wurden. Um sicherzustellen, dass alle Transaktionen verarbeitet wurden, führen Sie die folgenden Schritte für jede Datenbank aus, die Transaktionsveröffentlichungen enthält:

  1. Stellen Sie sicher, dass der Protokolllese-Agent für die Datenbank ausgeführt wird. Standardmäßig wird der Agent ununterbrochen ausgeführt.

  2. Beenden Sie die Benutzeraktivität auf veröffentlichten Tabellen.

  3. Warten Sie eine gewissen Zeit, bis der Protokolllese-Agent die Transaktionen in die Verteilungsdatenbank kopiert hat, und beenden Sie dann den Agent.

  4. Führen Sie sp_replcmds aus, um zu überprüfen, ob alle Transaktionen verarbeitet wurden. Das Resultset dieser Prozedur sollte leer sein.

  5. Führen Sie sp_replflush aus, um die Verbindung von sp_replcmds zu trennen.

  6. Führen Sie das Serverupgrade auf SQL Server 2008 aus.

  7. Starten Sie den SQL Server-Agent und den Protokolllese-Agent neu, wenn sie nach dem Upgrade nicht automatisch starten.

Ausführen von Agents nach der Aktualisierung für die Mergereplikation

Führen Sie nach der Aktualisierung für jede Mergeveröffentlichung den Snapshot-Agent und für jedes Abonnement den Merge-Agent aus, um die Replikationsmetadaten zu aktualisieren. Sie müssen den neuen Snapshot nicht anwenden, da er für die erneute Initialisierung der Abonnements nicht benötigt wird. Die Metadaten des Abonnements werden aktualisiert, sobald der Merge-Agent zum ersten Mal nach der Aktualisierung ausgeführt wird. Dies bedeutet, dass die Abonnementdatenbank während der Aktualisierung des Verlegers online und aktiv bleiben kann.

Die Mergereplikation speichert die Metadaten der Veröffentlichung und des Abonnements in einer Reihe von Systemtabellen in den Veröffentlichungs- und Abonnement-Datenbanken. Bei Ausführung des Snapshot-Agents werden die Veröffentlichungsmetadaten aktualisiert, und bei Ausführung des Merge-Agents werden die Abonnementmetadaten aktualisiert. Der Agent wird nur benötigt, um einen Snapshot der Veröffentlichung zu generieren. Wenn bei einer Mergeveröffentlichung parametrisierte Filter verwendet werden, gibt es auch für jede Partition einen Snapshot. Diese partitionierten Snapshots zu aktualisieren, ist nicht erforderlich. (In SQL Server 2000 wurden parametrisierte Filter als dynamische Filter und partitionierte Snapshots als dynamische Snapshots bezeichnet.)

Die Agents werden in SQL Server Management Studio im Replikationsmonitor oder in der Befehlszeile ausgeführt. Weitere Informationen zum Ausführen des Snapshot-Agents finden Sie unter den folgenden Themen:

Weitere Informationen zum Ausführen des Merge-Agents finden Sie unter den folgenden Themen:

Nach der Aktualisierung von SQL Server in einer Topologie, in der die Mergereplikation verwendet wird, müssen Sie den Kompatibilitätsgrad aller Veröffentlichungen ändern, um neue Features verwenden zu können. Weitere Informationen finden Sie unter Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie.

Aktualisieren auf die Standard Edition, Workgroup Edition oder Express Edition

Bevor eine Edition von SQL Server 2008 auf eine andere Edition aktualisiert wird, sollten Sie überprüfen, ob die derzeit verwendete Funktionalität in der Edition, die Ziel der Aktualisierung ist, unterstützt wird. Weitere Informationen finden Sie im Abschnitt "SQL Server 2008-Replikationsfeatures" im Thema Von den SQL Server 2008-Editionen unterstützte Features.

Das neue Sicherheitsmodell des Replikations-Agents

In Versionen von SQL Server vor SQL Server 2005 wurden Agents standardmäßig im Kontext des SQL Server-Agent-Dienstkontos ausgeführt. In SQL Server 2005 wurde eine differenzierte Steuerung der Konten eingeführt, in deren Kontext die Replikations-Agents ausgeführt und die integrierten Windows-Verbindungen mit Datenbanken und anderen Ressourcen hergestellt werden, wobei für jeden Agent ein eigenes Konto angegeben werden kann. Weitere Informationen finden Sie unter Sicherheit und Schutz (Replikation) und Sicherheitsmodell des Replikations-Agents.

Aufgrund des neuen Sicherheitsmodells sind bei der Aktualisierung oder bei Ausführung von SQL Server 2000 in einer Topologie folgende Auswirkungen zu erwarten:

  • In SQL Server 2000 erstellte Replikationsskripts sollten für die Verwendung in SQL Server 2008 aktualisiert werden, damit die Sicherheitsverbesserungen genutzt werden können. Weitere Informationen finden Sie unter Vorgehensweise: Aktualisieren von Replikationsskripts (Replikationsprogrammierung mit Transact-SQL).

  • Ein Verteiler oder Abonnent, der von SQL Server 2000 auf SQL Server 2008 aktualisiert wurde, wird weiterhin unter dem Konto des SQL Server-Agents ausgeführt und verfügt wahrscheinlich über mehr Privilegien als tatsächlich erforderlich. Nach der Aktualisierung sollten für die Agents separate Konten mit entsprechend minimierten Privilegien angegeben werden. So geben Sie separate Konten an:

    1. Geben Sie die Veröffentlichung und die Abonnements aus.

    2. Nehmen Sie die erforderlichen Änderungen an den Skripts vor. Weitere Informationen finden Sie unter Vorgehensweise: Aktualisieren von Replikationsskripts (Replikationsprogrammierung mit Transact-SQL).

    3. Löschen Sie die Veröffentlichung und die Abonnements. Weitere Informationen finden Sie unter Veröffentlichen von Daten und Datenbankobjekten und Abonnieren von Veröffentlichungen.

    4. Erstellen Sie sie mithilfe der geänderten Skripts neu.

    Informationen zu den für die Agents erforderlichen Privilegien finden Sie unter Sicherheitsmodell des Replikations-Agents. Informationen zum Verwalten von Anmeldenamen und Kennwörtern finden Sie unter Verwalten von Anmeldeinformationen und Kennwörtern bei der Replikation. Aufgrund der nach einer Aktualisierung erstellten neuen Replikationskonfigurationen müssen die Konten für die einzelnen Replikations-Agents gesondert konfiguriert werden.

    HinweisHinweis

    Agents, für die für Verbindungen mit der lokalen Datenbank die SQL Server-Authentifizierung konfiguriert wurde, werden zum Verwenden der Windows-Authentifizierung geändert. Lokale Verbindungen sind die Verbindungen, die durch einen Agent zu einer Instanz von SQL Server auf demselben Computer wie der Agent hergestellt werden. Wenn beispielsweise der Merge-Agent für ein Pullabonnement auf dem Abonnenten ausgeführt wird, handelt es sich bei den zum Abonnenten hergestellten Verbindungen um lokale Verbindungen.

  • An einer Replikationstopologie teilnehmende Computer mit früheren Versionen von SQL Server behalten das frühere Replikationssicherheitsmodell unverändert bei. Beispiel:

    • Für ein Pullabonnement für einen Abonnenten mit SQL Server 2000 wird das neue Sicherheitsmodell nicht verwendet, da der Merge-Agent oder die Verteilung auf dem Abonnenten erstellt wird.

    • Für ein Pushabonnement eines Verteilers mit SQL Server 2008 für einen Abonnenten mit SQL Server 2000 wird das neue Sicherheitsmodell verwendet, da der Merge-Agent oder die Verteilung auf dem Verteiler erstellt wird.

    • Für einen Verleger mit SQL Server 2000 mit einem Verteiler mit SQL Server 2008 wird das neue Sicherheitsmodell nicht verwendet (für Snapshot-, Protokolllese- oder Warteschlangenlese-Agents), da die Agents im Kontext der Veröffentlichungsdatenbank erstellt werden.

  • In SQL Server 2005 und SQL Server 2008 wird das gleiche Sicherheitsmodell verwendet.

Websynchronisierung für die Mergereplikation

Bei der Websynchronisierung für die Mergereplikation ist es erforderlich, dass die SQL Server-Replikationsüberwachung (replisapi.dll) in das virtuelle Verzeichnis auf dem Server mit Internetinformationsdienste (Internet Information Services, IIS) kopiert wird, der für die Synchronisierung verwendet wird. Wenn Sie die Websynchronisierung konfigurieren, wird die Datei vom Assistenten zum Konfigurieren der Websynchronisierung in das virtuelle Verzeichnis kopiert. Wenn Sie die auf dem IIS-Server installierten SQL Server-Komponenten aktualisieren, müssen Sie replisapi.dll manuell vom Verzeichnis COM in das virtuelle Verzeichnis auf dem IIS-Server kopieren. Weitere Informationen zum Konfigurieren der Websynchronisierung finden Sie unter Konfigurieren der Websynchronisierung.

Wiederherstellen einer replizierten Datenbank von einer früheren Version

Um sicherzustellen, dass die Replikationseinstellungen beibehalten werden, wenn die Sicherung einer replizierten Datenbank mithilfe einer früheren Version wiederhergestellt wird, stellen Sie die Sicherung auf einem Server und in einer Datenbank wieder her, deren Namen mit den Namen des Servers und der Datenbank übereinstimmen, von dem bzw. der die Sicherung erstellt wurde.