Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie

Die Replikation unterstützt das Replizieren von Daten in verschiedene Versionen von SQL Server. In diesem Thema finden Sie Informationen zu den folgenden Themen:

  • Unterstützte Versionen von SQL Server

  • Zuordnen von SQL Server 2008-Datentypen für frühere Versionen

  • Wiederherstellen einer replizierten Datenbank von einer früheren Version

  • Kompatibilitätsgrad von Mergeveröffentlichungen

Weitere Informationen zum Replizieren von Daten in SQL Server Express und SQL Server Compact 3.5 SP1 finden Sie unter Replizieren von Daten nach SQL Server Express und unter Replizieren von Daten nach SQL Server Compact. Informationen zu den von den einzelnen SQL Server-Editionen unterstützten Features finden Sie unter Von den SQL Server 2008-Editionen unterstützte Features.

Unterstützte SQL Server-Versionen

Sowohl SQL Server 2000 als auch SQL Server 2005 können in Replikationstopologien mit SQL Server 2008 verwendet werden. Für SQL Server 2000 ist mindestens Service Pack 3 (SP3) erforderlich. Für SQL Server 2005 ist mindestens Service Pack 2 (SP2) erforderlich.

Bei einer Replikation mit unterschiedlichen Versionen von SQL Server ist der verfügbare Funktionsumfang häufig auf die Funktionen der frühesten Version begrenzt. Wenn Sie beispielsweise einen Verteiler auf eine Instanz von SQL Server 2008 aktualisieren, jedoch einen Verleger verwenden, auf dem eine Instanz von SQL Server 2005 ausgeführt wird, und einen Abonnenten, auf dem eine Instanz von SQL Server 2000 ausgeführt wird, ist der Funktionsumfang auf die allgemeine Funktionalität und die Replikationsfunktionalität von SQL Server 2000 beschränkt.

HinweisHinweis

Da das SQL Server-Speicherformat für Datenträger in 64-Bit- und in 32-Bit-Umgebungen übereinstimmt, können für eine Replikationstopologie Serverinstanzen, die in einer 32-Bit-Umgebung ausgeführt werden, mit Serverinstanzen, die in einer 64-Bit-Umgebung ausgeführt werden, kombiniert werden.

Bei allen Replikationstypen darf auf dem Verteiler keine frühere Version ausgeführt werden als auf dem Verleger. (Häufig handelt es sich bei Verteiler und Verleger um dieselbe Instanz.)

Bei einer Transaktionsreplikation kann auf dem Abonnenten einer Transaktionsveröffentlichung eine Version verwendet werden, die sich um höchstens zwei Versionen von der Verlegerversion unterscheidet. Beispiel: Ein SQL Server 2000-Verleger kann mit SQL Server 2008-Abonnenten, und ein SQL Server 2008-Verleger kann mit SQL Server 2000-Abonnenten verwendet werden.

Bei einer Mergereplikation ist auf dem Abonnenten jede Version zulässig, die nicht höher ist als die des Verlegers. Weitere Informationen zur Kompatibilität früherer Versionen finden Sie im Abschnitt zur Kompatibilitätsstufe für Mergeveröffentlichungen weiter unten in diesem Thema. Weitere Informationen zu den Replikationsfeatures, die in den verschiedenen Editionen von SQL Server unterstützt werden, finden Sie unter Von den SQL Server 2008-Editionen unterstützte Features.

Verwenden eines SQL Server 2005- oder SQL Server 2008-Verteilers mit einem SQL Server 2000-Verleger

SQL Server 2005 und SQL Server 2008 können als Remoteverteiler für Verleger mit SQL Server 2000 verwendet werden. Führen Sie auf dem Verteiler die folgenden gespeicherten Prozeduren aus, um die Agenteigenschaften in diesem Szenario zu ändern. Diese Prozeduren ermöglichen es Ihnen, Eigenschaften zu ändern, die in SQL Server 2005 eingeführt wurden:

Wenn Sie einen Verleger und einen Verteiler mit SQL Server 2000 verwenden, können Sie mithilfe von sp_changedistpublisher und sp_changesubscriber die Anmeldeinformationen ändern, mit denen die Agents Verbindungen herstellen. Wenn Sie den Verteiler jedoch auf SQL Server 2008 aktualisieren, können diese Prozeduren nicht zum Ändern von Anmeldeinformationen in vorhandenen Agent-Aufträgen verwendet werden. Die Prozeduren haben Auswirkungen auf Agent-Aufträge, die nach dem Aufrufen der Prozeduren erstellt werden. Zum Ändern der Anmeldeinformationen vorhandener Agent-Aufträge rufen Sie eine der vier oben aufgeführten Prozeduren auf.

Zuordnen von neuen Datentypen für frühere Versionen

SQL Server 2008 und SQL Server 2005 unterstützen mehrere neue Datentypen. Wie in der folgenden Tabelle gezeigt, werden diese neuen Datentypen kompatiblen Datentypen beim Abonnenten zugeordnet, wenn Pushabonnements von einem SQL Server 2005- oder SQL Server 2008-Verteiler verwendet werden. Wenn Sie neue Datentypen für Abonnenten replizieren, auf denen ältere Versionen als SQL Server ausgeführt werden, müssen Sie sicherstellen, dass die Datentypen richtig zugeordnet werden:

SQL Server 2008-Datentyp

SQL Server 2005-Datentyp

SQL Server 2000-Datentyp

Benutzerdefinierter CLR-Typ (User Defined Type, UDT): bis 8000 Byte

UDT

image

UDT: mehr als 8000 Byte1

varbinary(max)

image

date2, 3

nvarchar(10)

nvarchar(10)

datetime22, 3

nvarchar(27)

nvarchar(27)

datetimeoffset2, 3

nvarchar(34)

nvarchar(34)

FILESTREAM-Attribut1, 4

varbinary(max)

Nicht unterstützt

geography und geometry1, 3

varbinary(max)

image

hierarchyid1, 5

varbinary(max)

image

nvarchar(max)

nvarchar(max)

ntext

time2, 3

nvarchar(16)

nvarchar(16)

varchar(max)

varchar(max)

text

varbinary(max)

varbinary(max)

image

xml

xml

ntext

1 Zuordnungen für die Typen UDT, FILESTREAM, geography, geometry und hierarchyid werden für Transaktionsveröffentlichungen mit aktualisierbaren Abonnements nicht unterstützt. Verwenden Sie diese Typen nur, wenn auf allen aktualisierbaren Abonnenten SQL Server 2008 oder eine höhere Version ausgeführt wird.

2 Bei der Replikation wird das Format der auf dem Abonnenten eingefügten Daten nicht überprüft. Aus diesem Grund müssen Sie über die Anwendung sicherstellen, dass die eingefügten Daten das richtige Format für Spalten vom Typ date, datetime2, datetimeoffset und time aufweisen. Hierzu wird normalerweise eine Einschränkung verwendet. Daten, die nicht das richtige Format aufweisen, können nicht auf dem Verleger eingefügt werden.

3SQL Server Compact 3.5-Abonnenten konvertieren diese Typen, nachdem sie auf dem Abonnenten repliziert wurden. Weitere Informationen zu Datentypzuordnungen für SQL Server Compact 3.5 finden Sie in der Dokumentation zu SQL Server Compact 3.5.

Wenn Sie Spalten vom Typ geography oder geometry zu varbinary(max) oder image zuordnen, können Sie keine Einschränkungen für diese Spalten replizieren. Dies hat die folgenden Auswirkungen:

4 FILESTREAM ist ein Attribut für eine varbinary(max)-Spalte. Informationen zur Verwendung von FILESTREAM-Spalten in replizierbaren Tabellen finden Sie unter FILESTREAM und andere SQL Server-Features im Abschnitt "Replikation". Spalten mit dem FILESTREAM-Attribut sollten nicht in Veröffentlichungen aufgenommen werden, in denen ein Snapshot im Zeichenmodus verwendet wird.

5 Die Unterstützung für Spalten vom Typ hierarchyid hängt vom Typ der Replikation und von den verwendeten Versionen von SQL Server ab. Weitere Informationen finden Sie unter hierarchyid (Transact-SQL) im Abschnitt "Verwenden von hierarchyid-Spalten in replizierten Tabellen". Bei einer Mergereplikation wird hierarchyid dem Typ image zugeordnet, wenn der Veröffentlichungskompatibilitätsgrad 100RTM lautet und ein Snapshot im Zeichenmodus verwendet wird.

Replizieren von XML-Datentypen

Wenn Sie XML-Datentypen in SQL Server Compact 3.5 SP1 replizieren, ordnet die Mergereplikation sie Ntext zu. Die XML-Daten von SQL Server 2008 verfügen über Präfixbytes für die UTF-16-Codierung. Beim Replizieren von SQL Server in SQL Server Compact 3.5 SP1 mit der Mergereplikation werden diese Bytes beibehalten. Beim Anzeigen der Spalte Ntext der SQL Server Compact 3.5 SP1-Datenbank können diese Präfixbytes von SQL Server Management Studio nicht analysiert werden. Deshalb werden diese Bytes als Garbagezeichen angezeigt.

Die XML-Schemaauflistung in SQL Server 2008 wurde aktualisiert. Dies hat einen Effekt auf die Replikation der XML-Spalten, die an XML-Schemas gebunden sind, von SQL Server 2008 nach SQL Server 2005.

Zeitzonen sind für die XML-Schemawerte date, time und datetime in SQL Server 2008 nicht erforderlich. Wenn also keine Zeitzone für die XML-Verlegerspalte von SQL Server 2008 angegeben wurde, wird die Änderung nicht auf SQL Server 2005-Abonnenten angewendet, da für SQL Server 2005 eine Zeitzone angegeben werden muss.

Zeitzoneninformation zu den typisierten Werten date, time und datetime im XML-Schema des SQL Server 2008-Verlegers werden in SQL Server 2005 in die Zeitzone UTC-0 konvertiert. Dies wird mit dem Zeitzonenindikator Z dargestellt.

Die Typen date, time und datetime im SQL Server 2008-XML-Schema unterstützen eine größere Genauigkeit. Daher werden diese Werte bei der Replikation auf SQL Server 2005 gerundet.

Bei der Replikation der XML-Schemawerte date und datetime von SQL Server 2005 nach SQL Server 2008 sind die Werte mit einem negativen Jahr in SQL Server 2008 ungültig, da sie in SQL Server 2008 nicht unterstützt werden.

In diesen Situationen können die Methoden sp_table_validation und Validate in Replikations-Agents fehlschlagen. Weitere Informationen finden Sie im Abschnitt "Aktualisieren von typisiertem XML von SQL Server 2005 zu SQL Server 2008" unter Typisiertes XML im Vergleich zu nicht typisiertem XML.

Veröffentlichen komprimierter Daten

SQL Server 2008 unterstützt sowohl die Zeilen- als auch die Seitenkomprimierung für Tabellen und Indizes. Informationen zur Replikationsunterstützung für komprimierte Daten finden Sie unter Erstellen komprimierter Tabellen und Indizes im Abschnitt "Auswirkungen der Komprimierung auf die Replikation".

Wiederherstellen einer replizierten Datenbank von einer früheren Version

Beim Wiederherstellen der Sicherung einer replizierten Datenbank von einer früheren Version können Sie Replikationseinstellungen beibehalten. Wenn Sie die Sicherung auf einem Server und in einer Datenbank wiederherstellen, deren Namen mit den Namen des Servers und der Datenbank übereinstimmen, von dem bzw. der die Sicherung erstellt wurde, oder wenn Sie die Option KEEP_REPLICATION angeben, bleiben die Replikationseinstellungen erhalten. Weitere Informationen finden Sie unter RESTORE (Transact-SQL). Führen Sie nach dem Wiederherstellen der Datenbank sp_vupgrade_replication aus, um Schema- und Systemdaten zu aktualisieren, sodass die Replikation auf der aktuellen Produktebene unterstützt wird.

Auch wenn das Beibehalten der Replikation nach dem Wiederherstellen von einer Sicherung einer früheren Version möglich ist, wird dies selten als Aktualisierungsoption verwendet. Meist wird die replizierte Datenbank im Rahmen eines Produktupdates aktualisiert, oder die Datenbank und die Replikationskonfiguration werden mit einer Reihe von Skripts neu erstellt.

Kompatibilitätsgrad von Mergeveröffentlichungen

Die Mergereplikation bestimmt mithilfe des Kompatibilitätsgrades von Veröffentlichungen, welche Features von Veröffentlichungen in einer vorhandenen Datenbank verwendet werden können. Die Werte reichen von 80RTM (SQL Server 2000 ohne installierte Service Packs) bis 100RTM für SQL Server 2008. Der Kompatibilitätsgrad wird mit einer der folgenden Methoden angegeben:

Das folgende Features erfordert einen Kompatibilitätsgrad von 90RTM oder höher:

Die folgenden Features sind nicht vom Kompatibilitätsgrad abhängig, setzen jedoch den im Lieferumfang von SQL Server 2005 und aktuelleren Versionen enthaltenen Merge-Agent voraus. Abonnenten mit älteren Versionen von SQL Server sind funktionsfähig, das Feature ist jedoch nicht aktiviert.

Verhalten des Veröffentlichungskompatibilitätsgrads in SQL Server 2008

Im Folgenden sind einige wichtige Verhaltensweisen des Veröffentlichungskompatibilitätsgrads aufgeführt:

  • Der Veröffentlichungskompatibilitätsgrad steht nicht mit dem Datenbank-Kompatibilitätsgrad in Zusammenhang.

  • Wenn Sie eine Veröffentlichung mit sp_addmergepublication oder über Replikationsverwaltungsobjekte (RMO) erstellen, wird der Veröffentlichungskompatibilitätsgrad standardmäßig auf 80RTM festgelegt. Wenn Sie eine Veröffentlichung im Assistenten für neue Veröffentlichung erstellen, wird der Kompatibilitätsgrad basierend auf den auf der Seite Abonnententypen des Assistenten ausgewählten Optionen festgelegt.

  • In Versionen von SQL Server, die älter als SQL Server 2005 sind, wurde der Veröffentlichungskompatibilitätsgrad automatisch erhöht, wenn Sie ein Feature aktivierten, das einen höheren Grad erforderte. Ab SQL Server 2005 müssen Sie den Veröffentlichungskompatibilitätsgrad manuell auf 90RTM oder höher festlegen, bevor Sie eine Funktionalität aktivieren, die diesen Kompatibilitätsgrad erfordert.

  • Der Veröffentlichungskompatibilitätsgrad kann nur gesenkt werden, wenn der Snapshot-Agent nicht gestartet wurde und es keine Abonnements für die Veröffentlichung gibt.

  • Alle Veröffentlichungen in derselben Datenbank müssen denselben Kompatibilitätsgrad besitzen. Diese Anforderung hat folgende Konsequenzen:

    • Wenn eine Datenbank eine Veröffentlichung mit einem niedrigeren Kompatibilitätsgrad besitzt (z. B. 80RTM) und Sie derselben Datenbank eine weitere Veröffentlichung mit einem Grad von 90RTM oder höher hinzufügen möchten, müssen Sie vor dem Hinzufügen der neuen Veröffentlichung manuell den Grad der ersten Veröffentlichung erhöhen.

    • Wenn eine Datenbank zwei oder mehr Veröffentlichungen mit einem geringeren Kompatibilitätsgrad enthält und Sie derselben Datenbank eine weitere Veröffentlichung mit einem Grad von 90RTM oder höher hinzufügen möchten, müssen Sie folgendermaßen vorgehen: Löschen Sie alle vorhandenen Veröffentlichungen außer einer, erhöhen Sie den Grad der verbleibenden Veröffentlichung auf 90RTM oder höher, erstellen Sie die gelöschten Veröffentlichungen erneut mit einem Grad von 90RTM oder höher, und erstellen Sie dann die neue Veröffentlichung mit einem Grad von 90RTM oder höher.

Erforderliche Komponenten und Kompatibilitätsgrade für die Websynchronisierung

SQL Server 2008 unterstützt die Websynchronisierung für Abonnenten, die SQL Server 2005, SQL Server 2008 und die SQL Server Compact 3.5-Versionen 3.0, 3.1 und 3.5. ausführen. In der folgenden Tabelle sind die Veröffentlichungskompatibilitätsgrade und Serverkomponenten aufgeführt, die für die einzelnen Abonnententypen erforderlich sind.

Verlegerversion

Abonnentenversion

Erforderlicher Veröffentlichungskompatibilitätsgrad

Erforderliche Komponenten auf dem IIS-Server

SQL Server 2008

SQL Server 2008

100RTM

SQL Server 2008-IIS-Komponenten

SQL Server 2008

SQL Server Compact 3.5 3.0, 3.1 und 3.5

90RTM

SQL Server Compact 3.5 SP1 IIS-Komponenten und SQL Server 2008 IIS-Komponenten

SQL Server 2008

SQL Server 2005

90RTM

SQL Server 2008-IIS-Komponenten

SQL Server 2005

SQL Server 2005

90RTM

SQL Server 2005-IIS-Komponenten

SQL Server 2005

SQL Server Compact 3.5 3.0, 3.1 und 3.5

90RTM

SQL Server Compact 3.5 SP1 IIS-Komponenten und SQL Server 2005 IIS-Komponenten

SQL Server 2005

SQL Server 2008

Nicht verfügbar1

Nicht verfügbar1

1  Diese Konfiguration wird nicht unterstützt, da die Verlegerversion nicht älter als die Abonnentenversion sein darf.