Delen via


Websynchronisatie configureren

van toepassing op:SQL Server-

De optie Websynchronisatie voor SQL Server Merge Replication maakt gegevensreplicatie mogelijk met behulp van het HTTPS-protocol via internet. Als u websynchronisatie wilt gebruiken, moet u eerst de volgende configuratieacties uitvoeren:

  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.

Als u websynchronisatie wilt instellen, moet u bepalen hoe u de beveiliging configureert om te voldoen aan uw specifieke vereisten en beleid. Het is raadzaam om deze beslissingen te nemen en de benodigde accounts te maken voordat u IIS, de publicatie en abonnementen probeert te configureren.

In de volgende procedures wordt een vereenvoudigde beveiligingsconfiguratie met behulp van lokale accounts beschreven voor beknoptheid. Deze vereenvoudigde configuratie is geschikt voor installaties waarbij zowel IIS als SQL Server Publisher en Distributor op dezelfde computer worden uitgevoerd, ook al is het veel waarschijnlijker (en aanbevolen) dat u een topologie met meerdere servers 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 publisher door het account te imiteren dat is opgegeven voor de groep van toepassingen die is gekoppeld aan de replicatiewebsite.

Het account dat wordt gebruikt voor de SQL Server Replication Listener moet machtigingen hebben, zoals beschreven in Merge Agent Security, onder de sectie Verbinding maken met de uitgever of distributeur. Kortom, het account moet:

  • 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 u SQL Server-replicatie gebruikt, moet u ook accounts en aanmeldingen maken voor de replicatieagents. Zie de secties 'De publicatie configureren' en 'Het abonnement configureren' in dit onderwerp voor meer informatie.

Voordat u websynchronisatie configureert, raden we u aan de sectie 'Aanbevolen procedures voor beveiliging voor websynchronisatie' in dit onderwerp te lezen. 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. U hebt de URL naar de replicatiewebsite nodig voordat u een publicatie kunt configureren voor het gebruik van websynchronisatie.

Websynchronisatie wordt ondersteund op IIS vanaf versie 5.0. De wizard Websynchronisatie configureren wordt niet ondersteund op IIS-versie 7.0. Vanaf SQL Server 2012 wordt u aangeraden SQL Server te installeren met replicatie om het websynchronisatieonderdeel op IIS-server te gebruiken. Dit kan de gratis SQL Server Express-editie zijn.

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

IIS configureren voor websynchronisatie

Een webtuin maken

De SQL Server Replication Listener ondersteunt twee gelijktijdige synchronisatiebewerkingen per thread. Het overschrijden van deze limiet kan ertoe leiden dat de replicatielistener niet meer reageert. Het aantal threads dat is toegewezen aan replisapi.dll wordt bepaald door de eigenschap Maximumwerkprocessen van de groep van toepassingen. Deze eigenschap is standaard 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.

Met webtuinen kunnen meer dan twee abonnees tegelijkertijd synchroniseren. Het verhoogt ook het CPU-gebruik door replisapi.dll, wat negatieve gevolgen kan hebben voor de algehele serverprestaties. Het is belangrijk om deze overwegingen te verdelen wanneer u een waarde kiest voor Maximale werkprocessen.

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.

De publicatie configureren

Als u websynchronisatie wilt gebruiken, maakt u een publicatie op dezelfde manier als voor een standaardsamenvoegingstopologie. Zie Gegevens- en databaseobjecten publicerenvoor meer informatie.

Nadat de publicatie is gemaakt, schakelt u de optie in om websynchronisatie toe te staan met behulp van een van de volgende methoden: SQL Server Management Studio, Transact-SQL of Replication Management Objects (RMO). Als u websynchronisatie wilt inschakelen, moet u het adres van de webserver opgeven voor abonneeverbindingen.

Als u een uitgever voor het eerst gebruikt, moet u ook een distributeur en een momentopnameshare 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 met de naam 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 u een bestaande websynchronisatietopologie hebt geconfigureerd en u SQL Server bijwerken, moet u ervoor zorgen dat de nieuwste versie van Replisapi.dll wordt gekopieerd naar de virtuele map die wordt gebruikt door websynchronisatie. Standaard bevindt de nieuwste versie van Replisapi.dll zich in C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Grote hoeveelheden gegevens repliceren

Om potentiële geheugenproblemen op abonneecomputers websynchronisatie te voorkomen, wordt een standaard maximale grootte van 100 MB gebruikt voor het XML-bestand dat wordt gebruikt om wijzigingen over te dragen. De limiet kan worden verhoogd door de volgende registersleutel in te stellen:

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

WebSyncMaxXmlSize DWORD 2000000

Het bereik van acceptabele waarden voor deze sleutel is 100 MB tot 4 GB. De waarde wordt opgegeven in KB. Het instellen van deze parameter op een hoge waarde garandeert niet dat u die hoeveelheid gegevens kunt synchroniseren. De effectieve limiet wordt beperkt door hoeveel aaneengesloten geheugen beschikbaar is op de computer Abonnee. Als u een waarde van meer dan 100 MB moet hebben, raden we u aan de waarde incrementeel te verhogen en het geheugenverbruik te testen met een typische werkbelasting 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. U moet ervoor zorgen dat de gegevens in elke batch niet groter zijn dan ongeveer 20 MB, waardoor metagegevens en eventuele andere overhead mogelijk zijn. Deze limiet heeft de volgende gevolgen:

  • U kunt geen kolom repliceren waardoor de gegevens en metagegevens groter zijn dan 25 MB. Dit kan een probleem zijn wanneer u rijen repliceert die grote gegevenstypen bevatten, zoals varchar(max).

  • Als u grote hoeveelheden gegevens repliceert, moet u mogelijk de batchgrootte van de Merge Agent aanpassen.

De batchgrootte voor samenvoegreplicatie wordt gemeten in generaties, die verzamelingen van wijzigingen per artikel bevatten. Het aantal generaties in een batch wordt opgegeven met behulp van de parameters -DownloadGenerationsPerBatch en -UploadGenerationsPerBatch parameters van de samenvoegagent. Zie Replicatiesamenvoegagentvoor meer informatie.

Geef voor grote hoeveelheden gegevens een klein aantal op voor elk van de batchparameters. We raden u aan om te beginnen met een waarde van 10 en vervolgens af te stemmen op basis van de behoeften en prestaties van de toepassing. Deze parameters worden doorgaans opgegeven in een agentprofiel. Zie Replicatieagentprofielenvoor meer informatie over profielen.

Aanbevolen beveiligingsprocedures voor websynchronisatie

Er zijn veel opties voor beveiligingsinstellingen in websynchronisatie. We raden de volgende methode aan:

  • De SQL Server Distributor en Publisher kunnen zich op dezelfde computer bevinden (een typische installatie voor samenvoegreplicatie). IIS moet echter op een afzonderlijke computer worden geïnstalleerd.

  • Gebruik Transport Layer Security (TLS), voorheen ssl (Secure Sockets Layer) genoemd, om de verbinding tussen de abonnee en de computer met IIS te versleutelen. Dit is vereist voor websynchronisatie.

  • Gebruik basisverificatie voor verbindingen van de abonnee naar IIS. Met behulp van basisverificatie kan IIS namens de abonnee verbindingen maken met de uitgever/distributeur zonder dat hiervoor delegatie is vereist. Delegering is vereist als u geïntegreerde verificatie gebruikt.

    Notitie

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

  • Geef op dat de momentopnameagent moet worden uitgevoerd onder een Windows-domeinaccount en geef op dat de agent verbindingen moet maken als dat account. (Dit is de standaardconfiguratie.) Geef op dat elke samenvoegagent moet worden uitgevoerd onder het domeinaccount van de gebruiker die de computer Abonnee gebruikt en geef op dat de agent verbindingen moet maken als dat account.

    Zie Replication Agent Security Modelvoor meer informatie over de machtigingen die zijn vereist voor agents.

  • 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) wordt uitgevoerd, is ook het account dat tijdens de synchronisatie verbinding maakt met de uitgever en distributeur. Dit account moet worden toegewezen aan een SQL-aanmeldingsaccount in Publisher en Distributor. Zie de sectie Machtigingen instellen voor de SQL Server-replicatielistener in het gedeelte IIS configureren voor websynchronisatievoor meer informatie.

  • U kunt FTP gebruiken om de momentopname van Publisher te leveren aan de computer waarop IIS wordt uitgevoerd. De momentopname wordt altijd geleverd vanaf de computer waarop IIS wordt uitgevoerd voor de abonnee met behulp van 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 waarop IIS via HTTPS wordt uitgevoerd met behulp van TLS, die doorgaans is geconfigureerd voor het gebruik van poort 443. Abonnees van SQL Server Compact kunnen ook verbinding maken via HTTP, die doorgaans is geconfigureerd voor het gebruik van poort 80.

    • De computer waarop IIS wordt uitgevoerd, maakt doorgaans verbinding met de uitgever of distributeur via poort 1433 (standaardexemplaren). 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 is gescheiden van de distributeur door een firewall en een FTP-share wordt gebruikt voor de levering van momentopnamen, moeten de poorten die worden gebruikt voor FTP worden geopend. 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.