Synkronisera data

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

Synkronisering av data avser processen där data- och schemaändringar sprids mellan Publisher och prenumeranter efter att den initiala snapshoten har applicerats på prenumeranten. Synkronisering kan ske:

  • Kontinuerligt, vilket är typiskt för transaktionell replikation.

  • Vid behov, vilket är typiskt för sammanslagningsreplikering.

  • Enligt ett schema, vilket är typiskt för snapshot-replikering.

När en prenumeration är synkroniserad sker olika processer beroende på vilken typ av replikering du använder:

  • Ögonblicksbildreplikering. Synkronisering innebär att Distribution Agent återapplicerar snapshoten hos prenumeranten så att schemat och data i prenumerationsdatabasen är förenliga med publiceringsdatabasen.

    Om ändringar i data eller schema har gjorts hos Publisher måste en ny snapshot genereras för att kunna sprida ändringar till prenumeranten.

  • Transaktionell replikation. Synkronisering innebär att Distribution Agent överför uppdateringar, insättningar, raderingar och andra ändringar från distributionsdatabasen till prenumeranten.

  • Slå ihop replikationen. Synkronisering innebär att Merge Agent laddar upp ändringar från Subscriber till Publisher och sedan laddar ner ändringar från Publisher till Subscriber. Konflikter, om några, upptäcks och löses. Data konvergerar, och Publisher och alla prenumeranter får så småningom samma datavärden. Om konflikter upptäcktes och löstes ändras arbete som utförts av några av användarna för att lösa konflikten enligt de policyer du definierar.

Snapshot-publikationer uppdaterar helt schemat hos prenumeranten varje gång synkronisering sker, så alla schemaändringar tillämpas på prenumeranten. Transaktionell replikering och sammanslagningsreplikering stödjer också de vanligaste schemaändringarna. Mer information finns i Göra schemaändringar i publikationsdatabaser.

Information om hur du synkroniserar en push-prenumeration finns i Synkronisera en push-prenumeration.

Information om hur du synkroniserar en pull-prenumeration finns i Synkronisera en pull-prenumeration.

För att ställa in synkroniseringsscheman, se Specificera synkroniseringsscheman.

För att visa och lösa synkroniseringskonflikter

Körning av kod under synkronisering

Replikering stödjer två metoder för att köra kod under synkronisering

  • Skriptexekvering på begäran stöds för transaktionell replikering och sammanslagningsreplikering. Med on-demand-skriptexekvering kan du specificera ett SQL-skript som ska köras under synkroniseringen. Skriptet kopieras till prenumeranten och körs med sqlcmd i början av synkroniseringsprocessen. Skriptet har inte tillgång till de replikerade ändringarna när de tillämpas på prenumeranten. Mer information finns i Köra skript under synkronisering (replikering Transact-SQL programmering).

  • Affärslogikhanterare stöds för sammanslagningsreplikering. Med affärslogikhanterarramverket kan du skriva en hanterad kodassembly som anropas under sammanslagningssynkroniseringsprocessen. Assembleren innehåller affärslogik som kan svara på ett antal villkor under synkronisering: dataändringar, konflikter och fel. Mer information finns i Köra affärslogik under sammanslagningssynkronisering.