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.
Hinweis |
---|
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:
Die Zuordnung wird standardmäßig für Artikel in Mergeveröffentlichungen, jedoch nicht für Artikel in Snapshot- oder Transaktionsveröffentlichungen durchgeführt. Bei Mergeveröffentlichungen wird die Methode, nach der Typen zugeordnet werden, durch den Veröffentlichungskompatibilitätsgrad bestimmt. Wenn eine Spalte beispielsweise den Typ geography aufweist und der Kompatibilitätsgrad 90RTM lautet, dann wird der Typ varbinary(max) zugeordnet. Wenn der Kompatibilitätsgrad 80RTM lautet, wird der Typ image zugeordnet.
Das Zuordnungsverhalten wird durch den Parameter @schema_option von sp_addarticle und sp_addmergearticle gesteuert.
Weitere Informationen darüber, wie Schemaoptionen festgelegt werden, finden Sie unter Vorgehensweise: Angeben von Schemaoptionen (SQL Server Management Studio) und Vorgehensweise: Angeben von Schemaoptionen (Replikationsprogrammierung mit Transact-SQL).
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:
Wenn auf dem Verleger bereits eine Einschränkung vorhanden ist, löschen Sie die Einschränkung, oder geben Sie an, dass sie nicht repliziert werden soll. Um anzugeben, dass sie nicht repliziert werden soll, verwenden Sie die Artikelschemaoption für Standardeinschränkungen:
Wählen Sie den Wert False für die Option Standardwertspezifikationen kopieren aus. Weitere Informationen finden Sie unter Vorgehensweise: Angeben von Schemaoptionen (SQL Server Management Studio).
Deaktivieren Sie die Schemaoption 0x800. Weitere Informationen finden Sie unter Vorgehensweise: Angeben von Schemaoptionen (Replikationsprogrammierung mit Transact-SQL).
Wenn Sie eine Standardeinschränkung auf dem Verleger hinzufügen möchten, geben Sie zuerst an, dass Schemaänderungen nicht repliziert werden sollen. Weitere Informationen finden Sie unter Vorgehensweise: Replizieren von Schemaänderungen (SQL Server Management Studio) und Vorgehensweise: Replizieren von Schemaänderungen (Replikationsprogrammierung mit Transact-SQL).
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:
Mit dem Parameter @publication_compatibility_level von sp_addmergepublication. Weitere Informationen finden Sie unter Vorgehensweise: Festlegen des Kompatibilitätsgrads von Mergeveröffentlichungen (Replikationsprogrammierung mit Transact-SQL).
Auf der Seite Abonnententypen des Assistenten für neue Veröffentlichung. Weitere Informationen zum Ausführen dieses Assistenten finden Sie unter Vorgehensweise: Erstellen einer Veröffentlichung und Definieren von Artikeln (SQL Server Management Studio).
Auf der Seite Allgemein des Dialogfelds Veröffentlichungseigenschaften - <Veröffentlichung>. Weitere Informationen finden Sie unter Vorgehensweise: Festlegen des Kompatibilitätsgrades bei Mergeveröffentlichungen (SQL Server Management Studio).
Das folgende Features erfordert einen Kompatibilitätsgrad von 90RTM oder höher:
logische Datensätze. Weitere Informationen finden Sie unter Gruppieren von Änderungen an verknüpften Zeilen mithilfe von logischen Datensätzen.
Abonnentenuploadoptionen. Weitere Informationen finden Sie unter Optimieren der Leistung der Mergereplikation durch nur herunterladbare Artikel.
nicht überlappende Partitionen. Weitere Informationen finden Sie unter Parametrisierte Zeilenfilter.
Geschäftslogikhandler. Weitere Informationen finden Sie unter Ausführen der Geschäftslogik während der Mergesynchronisierung.
Schemaänderungen mithilfe von ALTER <OBJECT>-Anweisungen. Weitere Informationen finden Sie unter Vornehmen von Schemaänderungen in Veröffentlichungsdatenbanken.
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.
vorausberechnete Partitionen. Weitere Informationen finden Sie unter Optimieren der Leistung parametrisierter Filter mithilfe vorausberechneter Partitionen.
Websynchronisierung. Weitere Informationen finden Sie unter Websynchronisierung für die Mergereplikation.
Parallelphasen-Agents (Angeben von -ParallelUploadDownload für den Merge-Agent). Weitere Informationen finden Sie unter Replikationsmerge-Agent.
Snapshotfeatures für Veröffentlichungen mit parametrisierten Filtern. Diese Features stellen die folgenden Funktionen bereit:
Ein Abonnent kann einen Snapshot anfordern, wenn für die entsprechende Partition keiner verfügbar ist.
Ein Administrator kann Snapshots im Voraus erstellen oder die Generierung per Zeitplan festlegen.
Übermitteln parametrisierter Snapshots mithilfe von FTP.
Weitere Informationen finden Sie unter Snapshots für Mergeveröffentlichungen mit parametrisierten Filtern und Übertragen von Snapshots über FTP.
Verbesserte Verlaufsprotokollierung und Statistiken auf Artikelebene im Replikationsmonitor. Weitere Informationen finden Sie unter Vorgehensweise: Anzeigen von Informationen und Ausführen von Aufgaben für ein Abonnement (Replikationsmonitor).
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.