Koncept för replikationsprogrammering

gäller för:SQL ServerAzure SQL Managed Instance

Innan du utvecklar en applikation som använder replikationsfunktioner, följ dessa allmänna planeringssteg:

  1. Definiera din replikationstopologi.

  2. Definiera applikationens funktionalitet.

  3. Planera för säkerhet.

  4. Välj en utvecklingsmiljö.

  5. Välj lämpligt replikationsprogrammeringsgränssnitt.

Resten av denna artikel beskriver dessa steg mer i detalj. För att illustrera planeringsprocessen ingår ett exempel.

Definiera replikationstopologin

Det första steget i programmeringsreplikering är att definiera replikationstopologin för din applikation. Om du skriver en applikation som använder en befintlig replikationstopologi, till exempel en klientapplikation som får tillgång till data hos en befintlig abonnent, gå vidare till nästa steg.

Note

I vissa fall är implementeringen av replikationstopologin applikationens enda syfte.

Den replikationstopologi du definierar beror på många faktorer, inklusive följande:

  • Om replikerad data behöver uppdateras, och av vem.

  • Dina behov av datadistribution när det gäller konsistens, autonomi och latens.

  • Replikationsmiljön, inklusive affärsanvändare, teknisk infrastruktur, nätverk och säkerhet samt dataegenskaper.

  • Typerna av replikation och replikationsalternativ.

  • Replikationstopologierna och hur de stämmer överens med typerna av replikation.

Om du är ny på Microsoft SQL Server-replikering, se Typer av replikering.

Definierar applikationens funktionalitet

Efter att du definierat replikationstopologin, bestäm vilka funktioner din applikation erbjuder. Dessa funktioner kan variera från ett skript som synkroniserar en prenumeration till en applikation med ett användargränssnitt för att konfigurera replikering. Replikering stödjer följande allmänna programmeringsuppgifter:

  • Sätter upp replikering.

  • Synkronisera prenumeranter.

  • Upprätthåll av en replikationstopologi.

  • Övervakning av en replikationstopologi.

  • Felsökning av replikering.

Det är också vanligt att utöka din applikation genom att kombinera replikeringsfunktioner med andra funktioner som tillhandahålls av SQL Server. Följande tabell visar några utökade funktioner som du kan erbjuda i din replikationsapplikation.

Functionality Example
Serveradministration med SQL Server Management Objects (SMO) En applikation som gör det möjligt för en administratör att bifoga och konfigurera en databas som en Publisher i en replikationstopologi.
Dataåtkomst med ADO.NET En applikation som gör det möjligt för användare att programmatiskt komma åt och ändra replikerad försäljningsdata i en lokal prenumerantdatabas medan de är offline, och sedan ansluta och synkronisera pull-prenumerationen genom att välja en knapp.

Planering för säkerhet

Säkerhet är viktigt i alla applikationer, och du bör planera för säkerhet innan du skriver någon kod. Applikationssäkerhet kan delas in i tre huvuddelar: att säkra databasen, säkra replikering och skriva säker kod.

Följande artiklar ger information om säkerhet:

Val av utvecklingsmiljö

När du utvecklar en replikationsapplikation, överväg dessa tre grundläggande utvecklingsmiljöer. Varje utvecklingsmiljö har tillgång till samma replikationsfunktioner med vissa undantag. Du kan utveckla replikationsapplikationer i var och en av följande miljöer.

  • Hanterad kod

    Objektorienterad utvecklingsmiljö som utnyttjar fördelarna med .NET Framework-programmering och .NET common language runtime (CLR). Managed code är den rekommenderade programmeringsmiljön för både .NET-utveckling och SQL Server-applikationer. Hanterade replikeringsgränssnitt gör det möjligt för dig att programmera replikeringsadministration på ett objektorienterat sätt utan att behöva kunna Transact-SQL. Den erbjuder också vissa callback-funktioner när replikeringsagenter körs som inte är tillgängliga från skript. Managed code är den bästa miljön för att utveckla återanvändbara komponenter och användargränssnittsapplikationer.

  • Scripting

    Enkla applikationer som utför en serie kommandon antingen som replikeringssystem, lagrade procedurer i Transact-SQL skript eller kommandon i batchfiler. Medan du kan köra skript i en hanterad miljö genom att använda SQL Server in-process managed provider, kan du få samma funktionalitet genom att använda hanterade replikeringsgränssnitt, som också erbjuder callback-funktioner. Skriptning är den bästa miljön för att köra uppgifter som körs bara några få gånger och där callback-funktioner inte krävs, som att installera en replikeringsserver.

  • Inhemsk kod

    Objektorienterad utvecklingsmiljö som använder direkt åtkomst till systemet eller COM-objekt så att koden inte hanteras av CLR. Native kodreplikeringsgränssnitt är föråldrade eller avvecklade. För mer information, se Föråldrade funktioner i SQL Server Replication eller Replication Backward Compatibility.

Välj lämpligt replikationsprogrammeringsgränssnitt

Det sista planeringssteget är att välja det lämpliga replikeringsprogrammeringsgränssnittet som implementerar önskad replikeringsfunktionalitet för den valda utvecklingsmiljön. Följande tabell visar de tillgängliga replikationsprogrammeringsgränssnitten.

Gränssnitt Environment Användningar
Begrepp för replikeringshanteringsobjekt Hanterad kod Administration, övervakning och synkronisering.
Microsoft.SqlServer.Replication Hanterad kod Synkronisering.
Microsoft.SqlServer.Replication.BusinessLogicSupport Hanterad kod Skapande av affärslogikhanterare för att integrera anpassad logik med sammanslagningssynkroniseringsprocessen.
Replikeringslagrade procedurer (Transact-SQL) Scripting Administration och övervakning.
Begrepp för körbara replikeringsagenter Scripting Synkronisering.

Example

På Adventure Works behöver data publiceras för 200 säljare runt om i världen. Säljarna reser ofta och behöver använda bärbara datorer eller personliga digitala assistenter (PDA) för att ändra kunddata och lägga till nya beställningar. Säljarna behöver synkronisera ändringarna med Publisher när de kopplar laptopen till nätverket.

För denna ansökan kan planeringsstegen se ut så här:

  1. Replikationstopologin för denna applikation finns redan. Du måste dock skapa en ny pull-prenumeration hos klienten. Använd parameteriserade filter i publikationen för att replikera en unik datamängd till varje säljrepresentant.

  2. Utöver den typiska dataåtkomst som krävs för en försäljningsapplikation, bör denna applikation göra det möjligt för en säljare att synkronisera pull-prenumerationen på begäran genom att klicka på en knapp. Eftersom en säljare installerar och kör applikationen måste den också kunna konfigurera en prenumeration och tillämpa den initiala snapshoten hos kunden. Eventuellt använder applikationen infrastrukturen som tillhandahålls av Windows för att känna av trådlös anslutning och automatiskt synkronisera prenumerationen när en anslutning upptäcks.

  3. Följ alla säkerhetsriktlinjer för replikering, inklusive användning av Windows-autentisering och ett virtuellt privat nätverk (VPN) när du ansluter till Publisher. Om du implementerar webbsynkronisering, använd en Transport Layer Security (TLS), tidigare känt som Secure Sockets Layer (SSL), anslutning. För mer information, se Konfigurera webbsynkronisering.

  4. För att dra nytta av funktionerna i .NET Framework, utveckla applikationen med hjälp av ett hanterat kodspråk.

  5. Baserat på dessa krav kan Replication Management Objects (RMO)-hanterade gränssnittet tillhandahålla all nödvändig replikeringsfunktionalitet för denna applikation.

Du kan ladda ner AdventureWorks-exempelapplikationen som implementerar detta exempelscenario från SQL Server.