Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Voordat u een applicatie ontwikkelt die replicatiefunctionaliteiten gebruikt, volgt u deze algemene planningstappen:
Definieer je replicatietopologie.
Definieer applicatiefunctionaliteit.
Plan voor de beveiliging.
Kies een ontwikkelomgeving.
Kies de juiste replicatie-programmeerinterface.
De rest van dit artikel beschrijft deze stappen in meer detail. Om het planningsproces te illustreren, is een voorbeeld toegevoegd.
Het definiëren van de replicatietopologie
De eerste stap bij het programmeren van replicatie is het definiëren van de replicatietopologie voor je applicatie. Als je een applicatie schrijft die een bestaande replicatietopologie gebruikt, zoals een clientapplicatie die data van een bestaande abonnee benadert, ga dan door naar de volgende stap.
Note
In sommige gevallen is het uitrollen van de replicatietopologie het enige doel van de applicatie.
De replicatietopologie die je definieert hangt af van veel factoren, waaronder de volgende:
Of gerepliceerde data bijgewerkt moet worden, en door wie.
Je datadistributiebehoeften op het gebied van consistentie, autonomie en latentie.
De replicatieomgeving, inclusief zakelijke gebruikers, technische infrastructuur, netwerk- en beveiligingssystemen, en datakenmerken.
De soorten replicatie en replicatie-opties.
De replicatietopologieën en hoe deze overeenkomen met de soorten replicatie.
Als je nieuw bent met Microsoft SQL Server-replicatie, zie dan Soorten replicatie.
Applicatiefunctionaliteit definiëren
Nadat je de replicatietopologie hebt gedefinieerd, bepaal je welke functionaliteiten je applicatie biedt. Deze functionaliteiten kunnen variëren van een script dat een abonnement synchroniseert tot een applicatie met een gebruikersinterface om replicatie te configureren. Replicatie ondersteunt de volgende algemene programmeertaken:
Replicatie wordt ingesteld.
Abonnees synchroniseren.
Een replicatietopologie onderhouden.
Monitoring van een replicatietopologie.
Probleemoplossing voor replicatie.
Het is ook gebruikelijk om je applicatie uit te breiden door replicatiefunctionaliteiten te combineren met andere functionaliteiten die door SQL Server worden aangeboden. De volgende tabel toont enkele uitgebreide functionaliteiten die je mogelijk in je replicatieapplicatie kunt bieden.
| Functionality | Example |
|---|---|
| Serverbeheer met SQL Server Management Objects (SMO) | Een applicatie die een beheerder in staat stelt een database toe te voegen en te configureren als een Publisher in een replicatietopologie. |
| Gegevenstoegang met ADO.NET | Een applicatie waarmee gebruikers programmatisch toegang krijgen tot en wijzigen van gerepliceerde verkoopgegevens in een lokale abonneedatabase terwijl ze offline zijn, en vervolgens verbinding maken en het pull-abonnement synchroniseren door een knop te selecteren. |
Planning voor veiligheid
Beveiliging is belangrijk in elke applicatie, en je moet rekening houden met beveiliging voordat je code schrijft. Applicatiebeveiliging kan worden onderverdeeld in drie hoofdonderdelen: het beveiligen van de database, het beveiligen van replicatie en het schrijven van veilige code.
De volgende artikelen geven informatie over beveiliging:
Beveiligingsinstellingen voor replicatie weergeven en wijzigen
Security Center voor SQL Server Database Engine en Azure SQL Database
Het kiezen van een ontwikkelomgeving
Wanneer je een replicatieapplicatie ontwikkelt, overweeg dan deze drie basisontwikkelomgevingen. Elke ontwikkelomgeving heeft toegang tot dezelfde replicatiefunctionaliteiten met enkele uitzonderingen. Je kunt replicatieapplicaties ontwikkelen in elk van de volgende omgevingen.
Beheerde code
Objectgeoriënteerde ontwikkelomgeving die profiteert van de voordelen van het .NET Framework programmeren en de .NET common language runtime (CLR). Managed code is de aanbevolen programmeeromgeving voor zowel .NET-ontwikkeling als SQL Server-toepassingen. Beheerde replicatie-interfaces stellen je in staat om replicatiebeheer objectgeoriënteerd te programmeren zonder Transact-SQL te hoeven kennen. Het biedt ook enkele callback-functionaliteiten bij het draaien van replicatieagenten die niet beschikbaar zijn via scripts. Beheerde code is de beste omgeving voor het ontwikkelen van herbruikbare componenten en gebruikersinterface-applicaties.
Scripting
Eenvoudige applicaties die een reeks commando's uitvoeren als replicatiesysteem-opgeslagen procedures in Transact-SQL scripts of commando's in batchbestanden. Hoewel je scripts kunt uitvoeren in een beheerde omgeving met de SQL Server in-process managed provider, kun je dezelfde functionaliteit krijgen door managed replicatie-interfaces te gebruiken, die ook callback-functionaliteiten bieden. Scripting is de beste omgeving voor het uitvoeren van taken die slechts een paar keer worden uitgevoerd en waarbij callback-functionaliteiten niet nodig zijn, zoals het installeren van een replicatieserver.
Native code
Objectgeoriënteerde ontwikkelomgeving die directe toegang tot het systeem of COM-objecten maakt, zodat code niet door de CLR wordt beheerd. Native code-replicatieinterfaces zijn verouderd of stopgezet. Voor meer informatie, zie Verouderde Functies in SQL Server Replicatie of Replicatie Backward Compatibiliteit.
Kies de juiste replicatie-programmeerinterface
De laatste planningsstap is het kiezen van de juiste replicatie-programmeerinterface die de gewenste replicatiefunctionaliteit voor de gekozen ontwikkelomgeving implementeert. De volgende tabel toont de beschikbare replicatie-programmeerinterfaces.
| Interface | Environment | Gebruik |
|---|---|---|
| concepten voor replicatiebeheerobjecten | Beheerde code | Administratie, monitoring en synchronisatie. |
| Microsoft.SqlServer.Replication | Beheerde code | Synchronisatie. |
| Microsoft.SqlServer.Replication.BusinessLogicSupport | Beheerde code | Creatie van business logic handlers om aangepaste logica te integreren met het merge synchronisatieproces. |
| Replicatie opgeslagen procedures (Transact-SQL) | Scripting | Administratie en monitoring. |
| Concepten voor uitvoerbare replicatieagents | Scripting | Synchronisatie. |
Example
Bij Adventure Works moeten er gegevens worden gepubliceerd voor 200 verkoopmedewerkers wereldwijd. De verkoopmedewerkers reizen vaak en moeten laptops of persoonlijke digitale assistenten (PDA's) gebruiken om klantgegevens te wijzigen en nieuwe bestellingen toe te voegen. De verkoopmedewerkers moeten de wijzigingen synchroniseren met de Publisher wanneer ze de laptop op het netwerk aansluiten.
Voor deze aanvraag kunnen de planningsstappen er als volgt uitzien:
De replicatietopologie voor deze toepassing bestaat al. Je moet echter een nieuw pull-abonnement aanmaken bij de client. Gebruik geparametriseerde filters in de publicatie om een unieke set gegevens aan elke verkoopvertegenwoordiger te repliceren.
Naast de gebruikelijke data-toegang die vereist is voor een verkoopapplicatie, zou deze applicatie een verkoper in staat moeten stellen het pull-abonnement op aanvraag te synchroniseren door op een knop te klikken. Omdat een verkoopvertegenwoordiger de applicatie installeert en uitvoert, moet hij ook een abonnement kunnen configureren en de initiële snapshot op de klant kunnen toepassen. Optioneel gebruikt de applicatie de infrastructuur die Windows biedt om draadloze connectiviteit te detecteren en het abonnement automatisch te synchroniseren wanneer een verbinding wordt gedetecteerd.
Volg alle beveiligingsrichtlijnen voor replicatie, inclusief het gebruik van Windows-authenticatie en een virtueel privénetwerk (VPN) bij het verbinden met de Publisher. Als je websynchronisatie implementeert, gebruik dan een Transport Layer Security (TLS), voorheen bekend als Secure Sockets Layer (SSL), verbinding. Voor meer informatie, zie Websynchronisatie configureren.
Om gebruik te maken van de functies van het .NET Framework, ontwikkel je de applicatie met behulp van een beheerde codetaal.
Op basis van deze eisen kan de door Replication Management Objects (RMO) beheerde interface alle benodigde replicatiefunctionaliteit voor deze applicatie bieden.
Je kunt de voorbeeldapplicatie AdventureWorks downloaden die dit voorbeeldscenario implementeert van SQL Server.