Configureer websynchronisatie

van toepassing op:SQL Server-

De websynchronisatieoptie voor SQL Server Merge Replication maakt datareplicatie mogelijk door gebruik te maken van het HTTPS-protocol via het internet. Om Websynchronisatie te gebruiken, voltooi je eerst de volgende configuratiestappen:

  1. Maak nieuwe domeinaccounts en koppel SQL Server-aanmeldingen.

  2. Configureer de computer waarop Microsoft Internet Information Services (IIS) wordt uitgevoerd om abonnementen te synchroniseren.

  3. Configureer een samenvoegpublicatie om websynchronisatie toe te staan.

  4. Configureer een of meer abonnementen voor het gebruik van websynchronisatie.

Notitie

Als u van plan bent grote hoeveelheden gegevens te repliceren of grote gegevenstypen zoals varchar(max), leest u de sectie 'Grote hoeveelheden gegevens repliceren' in dit onderwerp.

Om Websynchronisatie succesvol op te zetten, moet je beslissen hoe je beveiliging configureert om aan jouw specifieke eisen en beleidsregels te voldoen. Neem deze beslissingen en maak de benodigde accounts aan voordat je probeert IIS, de publicatie en abonnementen te configureren.

De volgende procedures beschrijven een vereenvoudigde beveiligingsconfiguratie die lokale accounts gebruikt. Deze vereenvoudigde configuratie is geschikt voor installaties waarbij zowel IIS als de SQL Server Publisher en Distributor op dezelfde computer draaien, ook al is het veel waarschijnlijker (en aanbevolen) dat je een multi-server-topologie gebruikt voor een productie-installatie. U kunt domeinaccounts vervangen door de lokale accounts in de procedures.

Nieuwe accounts aanmaken en SQL Server-aanmeldingen koppelen

De SQL Server Replication Listener (replisapi.dll) maakt verbinding met de Publisher door het account te imiteren dat je opgeeft voor de applicatiepool die aan de replicatiewebsite is gekoppeld.

Het account dat je gebruikt voor de SQL Server Replication Listener heeft de machtigingen nodig die beschreven zijn in Merge Agent Security, onder de sectie "Connect to the Publisher or Distributor." Samengevat moet het account:

  • Lid zijn van de publicatietoegangslijst (PAL).

  • Worden toegewezen aan een login dat gekoppeld is aan een gebruiker in de publicatiedatabase.

  • Worden toegewezen aan een aanmelding die is gekoppeld aan een gebruiker in de distributiedatabase.

  • Leesmachtigingen hebben voor de momentopnameshare.

Als dit de eerste keer is dat je SQL Server Replication gebruikt, moet je ook accounts en inloggegevens aanmaken voor de replicatieagenten. Voor meer informatie, zie de secties "De publicatie configureren" en "Het abonnement configureren" in dit artikel.

Lees voordat je websynchronisatie configureert, de sectie "Security Best Practices for Web Synchronization" in dit artikel. Zie Beveiligingsarchitectuur voor websynchronisatievoor meer informatie over de beveiliging van websynchronisatie.

De computer configureren waarop IIS wordt uitgevoerd

Voor websynchronisatie moet u IIS installeren en configureren. Je hebt de URL van de replicatiewebsite nodig voordat je een publicatie kunt configureren om websynchronisatie te gebruiken.

Websynchronisatie wordt ondersteund op IIS vanaf versie 5.0. De Configure Web Synchronization Wizard wordt niet ondersteund op IIS versie 7.0. Vanaf SQL Server 2012 kan men om de Web Sync-component op de IIS-server te gebruiken, SQL Server met replicatie installeren. Dit kan de gratis SQL Server Express-editie zijn.

TLS is vereist voor websynchronisatie. Je hebt een beveiligingscertificaat nodig dat door een certificeringsinstantie is afgegeven. Alleen voor testdoeleinden kunt u een zelf uitgegeven beveiligingscertificaat gebruiken.

IIS configureren voor websynchronisatie

Een webtuin creëren

De SQL Server Replication Listener ondersteunt twee gelijktijdige synchronisatiebewerkingen per thread. Het overschrijden van deze limiet kan ervoor zorgen dat de Replication Listener stopt met reageren. De eigenschap Maximum Worker Processes van de applicatiepool bepaalt het aantal threads dat aan replisapi.dllwordt toegewezen. Standaard is deze eigenschap ingesteld op 1.

U kunt een groter aantal gelijktijdige synchronisatiebewerkingen per CPU ondersteunen door de waarde van de eigenschap Maximum worker process te verhogen. Uitschalen door het aantal werkprocessen per CPU te verhogen, wordt ook wel een 'webtuin' genoemd.

Webtuinieren maakt het mogelijk dat meer dan twee abonnees tegelijkertijd synchroniseren. Het verhoogt ook het CPU-gebruik met replisapi.dll, wat de algehele serverprestaties negatief kan beïnvloeden. Houd deze overwegingen in balans wanneer je een waarde kiest voor Maximum Worker Processes.

Om het aantal maximale werkprocessen in IIS 7 te verhogen

  1. Vouw in IIS-beheer (Internet Information Services)het lokale serverknooppunt uit en klik vervolgens op het knooppunt groep van toepassingen.

  2. Selecteer de groep toepassingen die is gekoppeld aan de website voor websynchronisatie en klik vervolgens op Geavanceerde instellingen in het deelvenster Acties.

  3. Klik in het dialoogvenster Geavanceerde instellingen onder de kop Procesmodel op de rij met het label Maximumwerkprocessen. Wijzig de eigenschapswaarde en klik vervolgens op OK.

Het configureren van de publicatie

Om websynchronisatie te gebruiken, maak je een publicatie op dezelfde manier als je een standaard merge-topologiepublicatie maakt. Zie Gegevens- en databaseobjecten publicerenvoor meer informatie.

Na het aanmaken van de publicatie schakel je de optie in om websynchronisatie toe te staan met een van de volgende methoden: SQL Server Management Studio, Transact-SQL of Replication Management Objects (RMO). Om websynchronisatie mogelijk te maken, moet je het webserveradres voor abonnee-verbindingen opgeven.

Als je voor het eerst een Publisher gebruikt, moet je ook een Distributor en een snapshot share configureren. De samenvoegingsagent bij elke subscriptie moet leesmachtigingen hebben voor de momentopname-share. Zie Distributie- configureren en De momentopnamemap beveiligenvoor meer informatie.

gen is een gereserveerd woord in websync XML-bestanden. Probeer geen tabellen te publiceren met kolommen genaamd gen.

Het abonnement configureren

Nadat u een publicatie hebt ingeschakeld en IIS hebt geconfigureerd, maakt u een pull-abonnement en geeft u op dat het pull-abonnement moet worden gesynchroniseerd met IIS. (Websynchronisatie wordt alleen ondersteund voor pull-abonnementen.)

Upgraden van een eerdere versie van SQL Server

Als je een bestaande websynchronisatietopologie hebt geconfigureerd en je upgrade SQL Server, zorg er dan voor dat de nieuwste versie van replisapi.dll wordt gekopieerd naar de virtuele directory die door websynchronisatie wordt gebruikt. Standaard bevindt de nieuwste versie van replisapi.dll zich in C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Grote hoeveelheden data repliceren

Om mogelijke geheugenproblemen op abonneecomputers te helpen voorkomen, gebruikt websynchronisatie een standaard maximale grootte van 100 MB voor het XML-bestand dat wordt gebruikt om wijzigingen over te dragen. Verhoog de limiet door de volgende registersleutel in te stellen:

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

WebSyncMaxXmlSize DWORD 20000000

Het bereik van acceptabele waarden voor deze sleutel is 100 MB tot 4 GB. De waarde wordt opgegeven in KB. Deze parameter op een hoge waarde zetten garandeert niet dat je die hoeveelheid data kunt synchroniseren. De effectieve limiet wordt beperkt door hoeveel aaneengesloten geheugen beschikbaar is op de computer Abonnee. Als je een waarde groter dan 100 MB moet hebben, verhoog dan de waarde stapsgewijs en test je het geheugenverbruik met een typische werklast op de abonnee.

De maximale grootte voor het XML-bestand is 4 GB, maar de replicatie synchroniseert de wijzigingen van dat bestand in batches. De maximale batchgrootte van gegevens en metagegevens is 25 MB. Je moet ervoor zorgen dat de data in elke batch niet groter is dan ongeveer 20 MB, wat metadata en andere overhead toelaat. Deze limiet heeft de volgende gevolgen:

  • Je kunt geen kolom repliceren waardoor de data en metadata meer dan 25 MB zijn. Deze limiet kan een probleem zijn wanneer je rijen repliceert met grote datatypes, zoals varchar(max).

  • Als je grote hoeveelheden data repliceert, moet je mogelijk de batchgrootte van de Merge Agent aanpassen.

De batchgrootte voor samenvoegreplicatie wordt gemeten in generaties, die verzamelingen van wijzigingen per artikel bevatten. Gebruik de parameters -DownloadGenerationsPerBatch en -UploadGenerationsPerBatch van de Merge Agent om het aantal generaties in een batch aan te geven. Zie Replicatiesamenvoegagentvoor meer informatie.

Geef voor grote hoeveelheden gegevens een klein aantal op voor elk van de batchparameters. Begin met een waarde van 10 en stel het vervolgens af op de behoeften van de applicatie en de prestaties. Meestal specificeer je deze parameters in een agentprofiel. Zie Replicatieagentprofielenvoor meer informatie over profielen.

Aanbevolen beveiligingsprocedures voor websynchronisatie

Websynchronisatie biedt veel keuzemogelijkheden voor beveiligingsgerelateerde omgevingen. Gebruik de volgende methode:

  • De SQL Server Distributor en Publisher kunnen zich op dezelfde computer bevinden (een typische installatie voor samenvoegreplicatie). Installeer IIS echter op een aparte computer.

  • Gebruik Transport Layer Security (TLS), voorheen ssl (Secure Sockets Layer) genoemd, om de verbinding tussen de abonnee en de computer met IIS te versleutelen. Websynchronisatie vereist deze encryptie.

  • Gebruik basisverificatie voor verbindingen van de abonnee naar IIS. Door gebruik te maken van Basic Authentication kan IIS namens de abonnee verbindingen maken met de Publisher/Distributor zonder delegatie. Delegering is vereist als u geïntegreerde verificatie gebruikt.

    Notitie

    Basisverificatie is de methode waarmee referenties worden doorgegeven aan IIS. Basic Authentication voorkomt niet dat Windows-domeinaccounts worden gespecificeerd voor verbindingen die met IIS worden gemaakt.

  • Specificeer dat de Snapshot Agent onder een Windows-domeinaccount draait, en geef aan dat de agent verbindingen maakt als dat account. (Dit is de standaardconfiguratie.) Specificeer dat elke Merge Agent draait onder het domeinaccount van de gebruiker die de abonneecomputer gebruikt, en geef aan dat de agent verbindingen maakt als dat account.

    Voor meer informatie over de rechten die agenten nodig hebben, zie Replication Agent Security Model.

  • Geef hetzelfde domeinaccount op als dat de samenvoegagent gebruikt wanneer u een account en wachtwoord specificeert op de webservergegevenspagina van de wizard Nieuw abonnement of wanneer u waarden specificeert voor de @internet_url en @internet_login parameters van sp_addpullsubscription_agent. Dit account moet leesmachtigingen hebben voor de momentopnameshare.

  • Elke publicatie moet een afzonderlijke virtuele map voor IIS gebruiken.

  • Het account waaronder de SQL Server Replication Listener (replisapi.dll) draait, is ook het account dat tijdens synchronisatie verbinding maakt met de Publisher en Distributor. Dit account moet worden gekoppeld aan een SQL Server Login-account op de Publisher and Distributor. Zie de sectie Machtigingen instellen voor de SQL Server-replicatielistener in het gedeelte IIS configureren voor websynchronisatievoor meer informatie.

  • Je kunt FTP gebruiken om de snapshot van de Publisher naar de computer te leveren die IIS draait. De computer die IIS draait, levert de snapshot altijd aan de abonnee via HTTPS. Zie Momentopnamen overdragen via FTP-voor meer informatie.

  • Als servers in de replicatietopologie zich achter een firewall bevinden, moet u mogelijk poorten in de firewall openen om websynchronisatie in te schakelen.

    • De abonneecomputer maakt verbinding met de computer die IIS via HTTPS draait via TLS, dat doorgaans is geconfigureerd om poort 443 te gebruiken. Abonnees van SQL Server Compact kunnen ook verbinding maken via HTTP, die doorgaans is geconfigureerd voor het gebruik van poort 80.

    • De computer die IIS draait, maakt doorgaans verbinding met de Publisher of Distributor via poort 1433 (standaardinstantie). Wanneer de Publisher of Distributor een benoemde instantie is op een server met een andere standaardinstantie, wordt poort 1500 meestal gebruikt om verbinding te maken met de benoemde instantie.

    • Als de computer met IIS gescheiden is van de distributeur door een firewall en een FTP-share wordt gebruikt voor snapshotlevering, moet je de poorten openen die voor FTP worden gebruikt. Zie Momentopnamen overdragen via FTP-voor meer informatie.

Belangrijk

Als u poorten opent in uw firewall, kan uw server blootgesteld blijven aan schadelijke aanvallen. Zorg ervoor dat u firewallsystemen begrijpt voordat u poorten opent. Zie Beveiligingsoverwegingen voor een SQL Server-installatievoor meer informatie.