Web-Synchronisation konfigurieren

Gilt für:SQL Server

Die Web-Synchronisationsoption für SQL Server Merge Replication ermöglicht die Datenreplikation mithilfe des HTTPS-Protokolls über das Internet. Um Web-Synchronisation zu verwenden, führen Sie zunächst die folgenden Konfigurationsschritte durch:

  1. Erstellen Sie neue Domänenkonten und ordnen Sie SQL Server-Anmeldungen zu.

  2. Konfigurieren Sie den Computer, auf dem Microsoft-Internetinformationsdienste (Internet Information Services, IIS) ausgeführt wird, für die Synchronisierung von Abonnements.

  3. Konfigurieren Sie eine Mergeveröffentlichung für die Websynchronisierung.

  4. 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 Web-Synchronisation erfolgreich einzurichten, müssen Sie entscheiden, wie Sie die Sicherheit so konfigurieren, dass sie Ihren spezifischen Anforderungen und Richtlinien entspricht. Triff diese Entscheidungen und erstelle die notwendigen Konten, bevor du versuchst, IIS, die Veröffentlichung und Abonnements zu konfigurieren.

Die folgenden Verfahren beschreiben eine vereinfachte Sicherheitskonfiguration, die lokale Konten verwendet. Diese vereinfachte Konfiguration eignet sich für Installationen, bei denen sowohl IIS als auch der SQL Server Publisher und Distributor auf demselben Computer laufen, obwohl es viel wahrscheinlicher (und empfohlen) ist, dass man für eine Produktionsinstallation eine Mehrserver-Topologie verwendet. Sie können in diesen Schritten die lokalen Konten durch Domänenkonten ersetzen.

Neue Konten erstellen und SQL Server-Logins zuordnen

Der SQL Server Replication Listener (replisapi.dll) verbindet sich mit dem Publisher, indem er das von Ihnen angegebene Konto für den Anwendungspool imitiert, der mit der Replikationswebsite verknüpft ist.

Das Konto, das Sie für den SQL Server Replication Listener verwenden, benötigt die in Merge-Agent Security beschriebenen Berechtigungen unter dem Abschnitt "Connect to the Publisher or Distributor." Zusammenfassend muss das Konto:

  • Seien Sie Mitglied der Liste für den Publikationszugriff (PAL).

  • Es muss einer mit einer benutzenden Person in der Veröffentlichungsdatenbank verknüpften Anmeldung zugeordnet sein.

  • Es muss einer mit einer benutzenden Person in der Verteilungsdatenbank verknüpften Anmeldung zugeordnet sein.

  • Es muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen.

Wenn Sie zum ersten Mal SQL Server Replication verwenden, müssen Sie auch Konten und Logins für die Replikationsagenten erstellen. Weitere Informationen finden Sie in den Abschnitten "Konfiguration der Publikation" und "Konfiguration des Abonnements" in diesem Artikel.

Bevor Sie die Websynchronisation konfigurieren, lesen Sie den Abschnitt "Security Best Practices for Web Synchronization" in diesem Artikel. 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 Publikation mit Websynchronisation konfigurieren können.

Die Websynchronisierung wird auf IIS ab Version 5.0 unterstützt. Der Configure Web Synchronization Wizard wird auf IIS Version 7.0 nicht unterstützt. Ab SQL Server 2012 kann man zur Nutzung der Web-Sync-Komponente auf dem IIS-Server einen SQL Server mit Replikation installieren. Dabei kann es sich um die kostenlose SQL Server Express Edition handeln.

TLS ist für die Websynchronisierung erforderlich. Du brauchst ein Sicherheitszertifikat, das von einer Zertifizierungsstelle ausgestellt wurde. Nur zu Testzwecken können Sie ein selbst ausgestelltes Sicherheitszertifikat verwenden.

So konfigurieren Sie IIS für die Websynchronisierung

Erstellung eines Webgartens

Der SQL Server-Replikationslistener unterstützt je Thread zwei gleichzeitige Synchronisierungsvorgänge. Das Überschreiten dieses Limits kann dazu führen, dass der Replikations-Listener nicht mehr reagiert. Die Eigenschaft „Maximum Worker Processes“ des Anwendungspools bestimmt die Anzahl der Threads, die replisapi.dll zugewiesen werden. Standardmäßig ist diese Eigenschaft auf 1 gesetzt.

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.

Web-Gardening ermöglicht es mehr als zwei Abonnenten, gleichzeitig zu synchronisieren. Es erhöht außerdem die CPU-Auslastung um , replisapi.dllwas sich negativ auf die Gesamtleistung des Servers auswirken kann. Berücksichtigen Sie diese Überlegungen, wenn Sie einen Wert für maximale Arbeiterprozesse auswählen.

So erhöhen Sie die maximale Anzahl von Arbeitsprozessen in IIS 7

  1. Erweitern Sie im Internetinformationsdienste-Managerden Knoten für den lokalen Server, und klicken Sie dann auf den Knoten Anwendungspool .

  2. Wählen Sie den der Websynchronisierungswebsite zugeordneten Anwendungspool aus, und klicken Sie dann im Bereich Aktionen auf Erweiterte Einstellungen .

  3. 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.

Konfiguration der Publikation

Um Web-Synchronisation zu nutzen, erstellen Sie eine Publikation auf die gleiche Weise wie eine Standard-Merge-Topologie-Publikation. Weitere Informationen finden Sie unter Veröffentlichen von Daten und Datenbankobjekten.

Nach der Erstellung der Veröffentlichung aktivieren Sie die Option zur Web-Synchronisation mit einer der folgenden Methoden: SQL Server Management Studio, Transact-SQL oder Replication Management Objects (RMO). Um die Websynchronisation zu ermöglichen, müssen Sie die Webserveradresse für die Abonnentenverbindungen angeben.

Wenn Sie zum ersten Mal einen Publisher verwenden, müssen Sie außerdem einen Distributor und eine Snapshot-Übertragung 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-XML-Dateien. Versuche nicht, Tabellen mit Spalten namens gen zu veröffentlichen.

Konfiguration 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.)

Upgrade von einer früheren Version von SQL Server

Wenn Sie eine bestehende Web-Synchronisationstopologie konfiguriert haben und den SQL Server aktualisieren, stellen Sie sicher, dass die neueste Version von replisapi.dll in das virtuelle Verzeichnis kopiert wird, das von der Web-Synchronisation verwendet wird. Standardmäßig befindet sich die neueste Version von replisapi.dll in C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Replizierung großer Datenmengen

Um potenzielle Speicherprobleme auf Abonnentencomputern zu vermeiden, verwendet die Web-Synchronisation eine Standardgröße von maximal 100 MB für die XML-Datei, die zur Übertragung von Änderungen verwendet wird. Erhöhen Sie das Limit, indem Sie folgenden Registrierungsschlüssel setzen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 20000000

Der akzeptable Bereich für diesen Schlüssel liegt zwischen 100 MB und 4 GB. Der Wert wird in KB angegeben. Diesen Parameter auf einen hohen Wert zu setzen, garantiert nicht, dass du diese Datenmenge synchronisieren kannst. Die effektive Grenze ist davon abhängig, wie viel zusammenhängender Arbeitsspeicher auf dem Abonnentencomputer verfügbar ist. Wenn Sie einen Wert größer als 100 MB benötigen, erhöhen Sie den Wert schrittweise und testen Sie den Speicherverbrauch mit einer typischen Arbeitslast auf dem Abonnenten.

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. Sie müssen sicherstellen, dass die Daten in jedem Batch nicht über etwa 20 MB hinausgehen, was Metadaten und sonstigen Overhead ermöglicht. Diese Grenze bringt die folgenden Auswirkungen mit sich:

  • Man kann keine Spalte replizieren, die dazu führt, dass die Daten und Metadaten 25 MB überschreiten. Diese Begrenzung könnte ein Problem sein, wenn du Zeilen replizierst, die große Datentypen enthalten, wie zum Beispiel varchar(max).

  • Wenn du große Datenmengen replizierst, musst du eventuell die Batchgröße des Merge-Agent anpassen.

Die Batchgröße für die Mergereplikation wird in Generierungengemessen, bei denen es sich um Auflistungen von Änderungen pro Artikel handelt. Verwenden Sie die Parameter -DownloadGenerationsPerBatch und -UploadGenerationsPerBatch des Merge-Agent, um die Anzahl der Generationen in einem Batch anzugeben. Weitere Informationen finden Sie unter Replication Merge-Agent.

Geben Sie für große Datenmengen eine kleine Zahl für die einzelnen Batchverarbeitungsparameter an. Beginne mit einem Wert von 10 und passe dann nach Anwendungsbedarf und Leistung ab. Typischerweise geben Sie diese Parameter in einem Agentenprofil an. Weitere Informationen zu Profilen finden Sie unter Replication Agent Profiles.

Sicherheitsbest-Practices für Web-Synchronisation

Web-Synchronisation bietet viele Möglichkeiten für sicherheitsbezogene Umgebungen. Verwenden Sie den folgenden Ansatz:

  • Der SQL Server-Verteiler und -Verleger können sich auf demselben Computer befinden (eine typische Konfiguration für die Mergereplikation). Installiere IIS jedoch auf einem separaten Computer.

  • Verwenden Sie Transport Layer Security (TLS), früher als SSL (Secure Sockets Layer) bezeichnet, um die Verbindung zwischen dem Abonnenten und dem Computer mit IIS zu verschlüsseln. Websynchronisation erfordert diese Verschlüsselung.

  • Verwenden Sie die Standardauthentifizierung für Verbindungen zwischen dem Abonnenten und IIS. Durch die Verwendung von Basic Authentication kann IIS im Namen des Abonnenten Verbindungen zum Publisher/Distributor herstellen, ohne dass eine Delegation 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 grundlegende Authentifizierung verhindert nicht, dass Windows-Domänenkonten für Verbindungen zu IIS angegeben werden.

  • Geben Sie an, dass der Momentaufnahmen-Agent unter einem Windows-Domainkonto läuft, und geben Sie an, dass der Agent Verbindungen als dieses Konto herstellt. (Dies ist die Standardkonfiguration.) Geben Sie an, dass jeder Merge-Agent unter dem Domänenkonto des Benutzers läuft, der den Abonnentencomputer nutzt, und geben Sie an, dass der Agent Verbindungen als dieses Konto herstellt.

    Weitere Informationen zu den Berechtigungen, die Agenten benötigen, 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 für die Parameter @internet_url und @internet_login von sp_addpullsubscription_agent Werte angeben. 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 der SQL Server Replication Listener (replisapi.dll) läuft, ist auch das Konto, das während der Synchronisation mit dem Publisher und Distributor verbunden ist. Dieses Konto muss einem SQL Server-Login-Konto im Publisher and Distributor 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.

  • Du kannst FTP verwenden, um den Schnappschuss vom Publisher an den Computer zu liefern, der IIS ausführt. Der Computer, der IIS ausführt, liefert den Snapshot immer über HTTPS an den Abonnenten. 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 verbindet sich mit dem Computer, der IIS über HTTPS betreibt, über TLS, das typischerweise so konfiguriert ist, dass Port 443 verwendet wird. 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, der IIS ausführt, verbindet sich typischerweise mit dem Publisher oder Distributor über Port 1433 (Standardinstanz). 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, der IIS betreibt, durch eine Firewall vom Distributor getrennt ist und ein FTP-Share für die Snapshot-Lieferung verwendet wird, müssen Sie die für FTP verwendeten Ports öffnen. 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.