Websynchronisierung konfigurieren
Die Websynchronisierungsoption für die SQL Server -Mergereplikation ermöglicht die Datenreplikation mithilfe des HTTPS-Protokolls über das Internet. Um die Websynchronisierung zu verwenden, müssen Sie zuerst die folgenden Konfigurationsaktionen ausführen:
Erstellen Sie neue Domänenkonten und ordnen Sie SQL Server -Anmeldungen zu.
Konfigurieren Sie den Computer, auf dem Microsoft Internetinformationsdienste (Internet Information Services, IIS) ausgeführt wird, für die Synchronisierung von Abonnements.
Konfigurieren Sie eine Mergeveröffentlichung für die Websynchronisierung.
Konfigurieren Sie ein oder mehrere Abonnements zur Verwendung der Websynchronisierung.
Hinweis
Wenn Sie große Datenmengen replizieren oder umfangreiche Datentypen wie varchar(max)
verwenden möchten, lesen Sie den Abschnitt "Replizieren großer Datenmengen" in diesem Thema.
Um die Websynchronisierung erfolgreich einzurichten, müssen Sie entscheiden, wie die Sicherheit gemäß bestimmter Anforderungen und Richtlinien konfiguriert werden soll. Es wird empfohlen, diese Entscheidungen zu treffen und die notwendigen Konten zu erstellen, bevor Sie IIS, die Veröffentlichung und die Abonnements konfigurieren.
In den folgenden Schritten wird aus Platzgründen eine vereinfachte Sicherheitskonfiguration mit lokalen Konten beschrieben. Diese vereinfachte Konfiguration ist für Installationen geeignet, bei denen IIS und der SQL Server -Verleger und -Verteiler auf dem gleichen Computer ausgeführt werden, obwohl es viel wahrscheinlicher ist (und empfohlen wird), dass eine Multiservertopologie für eine Produktionsinstallation verwendet wird. Sie können in diesen Schritten die lokalen Konten durch Domänenkonten ersetzen.
Erstellen von neuen Konten und Zuordnen von SQL Server-Anmeldungen
Die SQL Server -Replikationsüberwachung (replisapi.dll) stellt eine Verbindung mit dem Verleger durch Identitätswechsel des für den Anwendungspool angegebenen Kontos her, der der Replikationswebsite zugeordnet ist.
Das für den SQL Server-Replikation Listener verwendete Konto muss über Berechtigungen verfügen, wie unter Merge-Agent Sicherheit im Abschnitt "Herstellen einer Verbindung mit dem Herausgeber oder Verteiler" beschrieben. Zusammenfassend muss das Konto Folgendes ausführen:
Es muss Mitglied der Veröffentlichungszugriffsliste (PAL) sein.
Es muss einer mit einem Benutzer in der Veröffentlichungsdatenbank verknüpften Anmeldung zugeordnet sein.
Es muss einer mit einem Benutzer in der Verteilungsdatenbank verknüpften Anmeldung zugeordnet sein.
Es muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen.
Wenn Sie die SQL Server -Replikation das erste Mal verwenden, müssen Sie auch Konten und Anmeldungen für die Replikations-Agents erstellen. Weitere Informationen finden Sie in diesem Thema in den Abschnitten "Konfigurieren der Veröffentlichung" und "Konfigurieren des Abonnements".
Bevor Sie die Websynchronisierung konfigurieren, sollten Sie den Abschnitt "Bewährte Methoden bezüglich der Sicherheit bei der Websynchronisierung" in diesem Thema lesen. Weitere Informationen zur Sicherheit bei der Websynchronisierung finden Sie unter Security Architecture for Web Synchronization.
Konfigurieren des Computers, auf dem IIS ausgeführt wird
Für die Websynchronisierung ist es erforderlich, IIS zu installieren und zu konfigurieren. Sie benötigen die URL zur Replikationswebsite, bevor Sie eine Veröffentlichung zur Verwendung der Websynchronisierung konfigurieren können.
Die Websynchronisierung wird auf IIS ab Version 5.0 unterstützt. Der Assistent zum Konfigurieren der Websynchronisierung wird auf IIS Version 7.0 nicht unterstützt. Beginnend mit SQL Server 2012, empfiehlt sich für die Nutzung der Web-Sync-Komponente auf dem IIS-Server die Installation des SQL Servers mit Replikation. Dabei kann es sich um die kostenlose SQL Server Express Edition handeln.
SSL ist für die Websynchronisierung erforderlich. Sie benötigen ein von einer Zertifizierungsstelle ausgestelltes Sicherheitszertifikat. Nur zu Testzwecken können Sie ein selbst ausgestelltes Sicherheitszertifikat verwenden.
So konfigurieren Sie IIS für die Websynchronisierung
SQL Server Management Studio: Konfigurieren von IIS für die Websynchronisierung
SQL Server Management Studio: Konfigurieren von IIS 7 für die Websynchronisierung
Erstellen eines Webgartens
Die SQL Server -Replikationsüberwachung unterstützt zwei gleichzeitige Synchronisierungsvorgänge pro Thread. Das Überschreiten dieser Grenze kann dazu führen, dass die Replikationsüberwachung nicht mehr antwortet. Die Anzahl der replisapi.dll zugeordneten Threads wird von der Eigenschaft "Maximale Anzahl von Arbeitsprozessen" des Anwendungspools bestimmt. Standardmäßig ist diese Eigenschaft auf 1 festgelegt.
Erhöhen Sie den Wert der Eigenschaft "Maximale Anzahl von Arbeitsprozessen", um eine größere Anzahl gleichzeitiger Synchronisierungsvorgänge pro CPU zu unterstützen. Das horizontale Skalieren durch Erhöhen der Anzahl von Arbeitsprozessen pro CPU wird als Erstellen eines "Webgartens" bezeichnet.
Ein Webgarten lässt die gleichzeitige Synchronisierung von mehr als zwei Abonnenten zu. Er erhöht außerdem die CPU-Auslastung durch replisapi.dll, was sich negativ auf die Gesamtleistung des Servers auswirken kann. Diese Überlegungen müssen bei der Auswahl eines Werts für die Eigenschaft "Maximale Anzahl von Arbeitsprozessen" beachtet werden.
So erhöhen Sie die maximale Anzahl von Arbeitsprozessen in IIS 7
Erweitern Sie im Internetinformationsdienste-Managerden Knoten für den lokalen Server, und klicken Sie dann auf den Knoten Anwendungspool .
Wählen Sie den der Websynchronisierungswebsite zugeordneten Anwendungspool aus, und klicken Sie dann im Bereich Aktionen auf Erweiterte Einstellungen .
Klicken Sie im Dialogfeld Erweiterte Einstellungen unter der Überschrift Prozessmodellauf die Zeile mit der Bezeichnung Maximale Anzahl von Arbeitsprozessen. Ändern Sie den Eigenschaftswert, und klicken Sie dann auf OK.
Konfigurieren der Veröffentlichung
Erstellen Sie eine Veröffentlichung auf dieselbe Weise wie für eine standardmäßige Mergetopologie, um die Websynchronisierung zu verwenden. Weitere Informationen finden Sie unter Veröffentlichen von Daten und Datenbankobjekten.
Aktivieren Sie nach dem Erstellen der Veröffentlichung die Option zum Zulassen der Websynchronisierung mithilfe einer der folgenden Methoden: SQL Server Management Studio, Transact-SQL oder Replikationsverwaltungsobjekte (Replication Management Objects, RMO). Um die Websynchronisierung zu aktivieren, müssen Sie die Webserveradresse für Abonnentenverbindungen angeben.
Wenn Sie einen Verleger zum ersten Mal verwenden, müssen Sie auch einen Verteiler und eine Momentaufnahmefreigabe konfigurieren. Der Merge-Agent bei jedem Abonnenten muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen. Weitere Informationen finden Sie unter Verteilung konfigurieren und Sichern des Momentaufnahmeordners.
gen
ist ein reserviertes Wort in Websync-Dateien (XML). Versuchen Sie nicht, Tabellen zu veröffentlichen, in denen Spalten mit dem Namen gen
enthalten sind.
Konfigurieren des Abonnements
Nachdem Sie eine Veröffentlichung aktiviert und IIS konfiguriert haben, erstellen Sie ein Pullabonnement und geben an, dass es mithilfe von IIS synchronisiert werden soll. (Die Websynchronisierung wird nur für Pullabonnements unterstützt.)
Aktualisieren von einer früheren Version von SQL Server
Wenn eine vorhandene Websynchronisierungstopologie konfiguriert wurde und Sie SQL Serveraktualisieren, müssen Sie sicherstellen, dass die neueste Version von Replisapi.dll in das von der Websynchronisierung verwendete virtuelle Verzeichnis kopiert wird. Standardmäßig befindet sich die neueste Version von Replisapi.dll unter C:\Programme\Microsoft SQL Server\<nnn>\COM.
Replizieren großer Datenmengen
Um Speicherprobleme auf Abonnentencomputern zu vermeiden, verwendet die Websynchronisierung eine maximale Standardgröße von 100 MB für die XML-Datei zur Übertragung von Änderungen. Die Grenze kann in folgendem Registrierungsschlüssel erweitert werden:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication
WebSyncMaxXmlSize DWORD 2000000
Der Bereich akzeptabler Werte für diesen Schlüssel ist 100 MB bis 4 GB. Der Wert wird in KB angegeben. Das Setzen diese Parameters auf einen hohen Wert bietet keine Garantie, dass Sie diese Datenmenge synchronisieren können. Die effektive Grenze ist davon abhängig, wie viel zusammenhängender Arbeitsspeicher auf dem Abonnentencomputer verfügbar ist. Falls Sie mehr als 100 MB benötigen, sollten Sie den Wert schrittweise erhöhen und den Speicherbedarf bei einer typischen Arbeitsauslastung auf dem Abonnentencomputer testen.
Die maximale Größe für die XML-Datei beträgt 4 GB, aber die Replikation synchronisiert die Änderungen aus dieser Datei batchweise. Die Batchgröße von Daten und Metadaten beträgt maximal 25 MB. Achten Sie daher darauf, dass die Daten in jedem Batch höchstens 20 MB ausmachen, damit ausreichend Platz für Metadaten und andere Komponenten vorhanden ist. Diese Grenze bringt die folgenden Auswirkungen mit sich:
Es können keine Spalten repliziert werden, die bewirken, dass Daten und Metadaten 25 MB überschreiten. Dies stellt möglicherweise ein Problem dar, wenn Sie Zeilen mit umfangreichen Datentypen wie
varchar(max)
replizieren.Wenn Sie große Datenmengen replizieren, müssen Sie ggf. die Batchgröße des Merge-Agents anpassen.
Die Batchgröße für die Mergereplikation wird in Generierungengemessen, bei denen es sich um Auflistungen von Änderungen pro Artikel handelt. Die Anzahl der Generationen in einem Batch wird mithilfe der Parameter -DownloadGenerationsPerBatch
und -UploadGenerationsPerBatch
des Merge-Agent angegeben. Weitere Informationen finden Sie unter Replication Merge Agent.
Geben Sie für große Datenmengen eine kleine Zahl für die einzelnen Batchverarbeitungsparameter an. Es wird empfohlen, mit dem Wert 10 zu beginnen und dann je nach Anwendungsanforderungen und -leistung diesen Wert zu optimieren. Normalerweise werden diese Parameter in einem Agentprofil angegeben. Weitere Informationen zu Profilen finden Sie unter Replication Agent Profiles.
Bewährte Methoden bezüglich der Sicherheit bei der Websynchronisierung
Es gibt verschiedene Auswahlmöglichkeiten für die sicherheitsbezogenen Einstellungen bei der Websynchronisierung. Der folgende Ansatz ist empfehlenswert:
Der SQL Server -Verteiler und -Verleger können sich auf demselben Computer befinden (eine typische Konfiguration für die Mergereplikation). IIS sollte jedoch auf einem separaten Computer installiert werden.
Verwenden Sie SSL (Secure Sockets Layer), um die Verbindung zwischen dem Abonnenten und dem Computer mit IIS zu verschlüsseln. Dies ist für die Websynchronisierung erforderlich.
Verwenden Sie die Standardauthentifizierung für Verbindungen zwischen dem Abonnenten und IIS. Mithilfe der Standardauthentifizierung kann IIS Verbindungen zum Verleger/Verteiler im Namen des Abonnenten herstellen, ohne dass eine Delegierung erforderlich ist. Die Delegierung ist erforderlich, wenn Sie die integrierte Authentifizierung verwenden.
Hinweis
Die Standardauthentifizierung ist die Methode, mit der Anmeldeinformationen an IIS weitergegeben werden. Die Standardauthentifizierung verhindert nicht die Angabe von Windows-Domänenkonten für zu IIS hergestellte Verbindungen.
Geben Sie an, dass der Momentaufnahme-Agent unter einem Windows-Domänenkonto ausgeführt werden soll und dass der Agent als dieses Konto Verbindungen herstellen soll. (Dies ist die Standardkonfiguration.) Geben Sie an, dass jeder Merge-Agent unter dem Domänenkonto des Benutzers ausgeführt werden soll, der den Abonnentencomputer verwendet. Geben Sie zudem an, dass der Agent Verbindungen als dieses Konto herstellen soll.
Weitere Informationen zu den erforderlichen Berechtigungen für die Agents finden Sie unter Replication Agent Security Model.
Geben Sie das Domänenkonto an, das auch vom Merge-Agent verwendet wird, wenn Sie auf der Seite Webserverinformationen des Assistenten für neue Abonnements ein Konto und ein Kennwort oder wenn Sie Werte für die Parameter @internet_url und @internet_login von sp_addpullsubscription_agentangeben. Dieses Konto muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen.
Jede Veröffentlichung sollte ein separates virtuelles Verzeichnis für IIS verwenden.
Das Konto, unter dem die SQL Server -Replikationsüberwachung (Replisapi.dll) ausgeführt wird, ist auch das Konto, das während der Synchronisierung eine Verbindung mit dem Verleger und dem Verteiler herstellt. Dieses Konto muss einem SQL-Anmeldekonto auf dem Verleger und dem Verteiler zugeordnet werden. Weitere Informationen finden Sie im Abschnitt „Festlegen von Berechtigungen für die SQL-Replikationsüberwachung“ unter Konfigurieren von IIS für die Websynchronisierung.
Sie können FTP verwenden, um die Momentaufnahme vom Verleger an den Computer mit IIS zu übermitteln. Die Momentaufnahme wird von dem Computer mit IIS immer mithilfe von HTTPS an den Abonnenten übermittelt. Weitere Informationen finden Sie unter Übertragen von Momentaufnahmen über FTP.
Wenn sich Server in der Replikationstopologie hinter einer Firewall befinden, müssen Sie möglicherweise Ports in der Firewall öffnen, um die Websynchronisierung zu aktivieren.
Der Abonnentencomputer stellt die Verbindung mit dem Computer, auf dem IIS ausgeführt wird, über HTTPS mithilfe von SSL her, das normalerweise für die Verwendung von Port 443 konfiguriert ist. SQL Server Compact -Abonnenten können die Verbindung auch über HTTP herstellen, das normalerweise für die Verwendung von Port 80 konfiguriert ist.
Der Computer, auf dem IIS ausgeführt wird, stellt die Verbindung mit dem Verleger oder Verteiler in der Regel über Port 1433 (Standardinstanz) her. Wenn der Verleger oder der Verteiler eine benannte Instanz auf einem Server mit einer anderen Standardinstanz ist, wird normalerweise die Verbindung mit der benannten Instanz über Port 1500 hergestellt.
Wenn der Computer, auf dem ISS ausgeführt wird, vom Verteiler durch eine Firewall getrennt ist und für die Momentaufnahmeübermittlung eine FTP-Freigabe verwendet wird, müssen die für FTP verwendeten Ports geöffnet sein. Weitere Informationen finden Sie unter Übertragen von Momentaufnahmen über FTP.
Wichtig
Das Öffnen von Ports in der Firewall kann dazu führen, dass der Server böswilligen Angriffen ausgesetzt ist. Daher sollten Sie Ports grundsätzlich nur dann öffnen, wenn Sie sicher sind, dass Sie das Konzept von Firewallsystemen verstanden haben. Weitere Informationen finden Sie unter Security Considerations for a SQL Server Installation.