sql >> Databasteknik >  >> RDS >> Database

Hur man skapar transaktionsreplikering

I den här artikeln kommer jag att visa hur man skapar transaktionsreplikering.

Transaktionell replikering genererade en ögonblicksbild av publicerings-DB-objekt och data i den. Efter att ögonblicksbilden har genererats levereras alla dataändringar och schemaändringar som inträffade i utgivardatabasen till abonnentdatabaser. I transaktionsreplikering sker data- och schemaändringar nästan i realtid, därför kan transaktionsreplikering användas för att ladda ner rapporter och kan ibland användas som DR-webbplats.

När vi skapar transaktionsreplikering skapar SQL Server följande SQL-jobb

  1. Snapshot Agent Job: Snapshot Agent Job genererar en ögonblicksbild av publikationsdatabasobjekt. Ögonblicksbilden lagras antingen på nätverksplatsen eller hård
  2. Jobb för loggläsare: Log Reader Job övervakar kontinuerligt publikationer. Den upptäcker schemaändringar och infoga, uppdatera och ta bort frågor och markerar dem för replikering. Loggläsaren använder "Sp_Replcmds ” för att tillämpa de kommandon som är markerade för replikering.

Demoinställningar:

För denna demo har jag skapat två SQL Server-instanser på samma databasserver. Förekomstnamnen och detaljerna är följande:

När jag konfigurerade demon har jag inte skapat en distributör, så utgivarinstansen kommer också att fungera som distributör. Jag har skapat "Kund ”-tabellen i AdventureWorks2014-databasen. Jag kommer att replikera data från kundtabellen. Därför kommer det att kallas en artikel av förlaget.

Konfigurera Publisher

För att konfigurera utgivaren, öppna SQL Server Management Studio, expandera databasinstansen, expandera replikering nod och högerklicka på Lokal publikation och välj Ny publikation .

Guiden Ny publicering startar. I dialogrutan finns en kort sammanfattning av guiden. Du kan hoppa över ytterligare visning av den här dialogrutan genom att markera Visa inte den här startsidan igen kryssruta. Klicka på Nästa för att gå till nästa dialogruta.

I nästa dialogruta väljer du den databas som fungerar som utgivare. I den här demon använder jag AdventureWorks2014 databas, så välj AdventureWorks2014 från databaslistan och klicka på Nästa .

I nästa dialogruta väljer du publikationstyp från listan över publikationstyper, och deras beskrivningar finns också i Publicationstypbeskrivningar textruta. Välj Transaktionspublicering och klicka på Nästa .

I nästa dialogruta väljer du publikationstyp från listan över publikationstyper, och deras beskrivningar finns också i Publicationstypbeskrivningar textruta. Välj Transaktionspublicering och klicka på Nästa .

Om du vill filtrera tabellens data kan du ange villkoret i dialogrutan Filtrera tabellrader. För att lägga till filtret, klicka på Lägg till knapp. Ytterligare en dialogruta Lägg till filter öppnas. I den här dialogrutan kan du ange önskad filtersats i Filtersatsen textruta.

För den här demon filtrerar vi inte data från kunden tabell, så hoppa över den här dialogrutan och klicka på Nästa .

För att initiera transaktionsreplikering måste vi generera ögonblicksbilden. Konfigurera intervallet för generering av ögonblicksbild i dialogrutan Snapshot Agent. Du kan omedelbart generera ögonblicksbilden eller så kan du schemalägga den specifika tiden för att generera ögonblicksbilden av databasen. Som standard genereras ögonblicksbilden varje timme, men vi kan ändra den. För att generera ögonblicksbilden i ett specifikt intervall, klicka på Ändra. Dialogrutan Nytt jobbschema öppnas. Konfigurera önskat schema och klicka på OK .

I den här demon kommer jag att generera ögonblicksbilden omedelbart, så kontrollera Skapa en ögonblicksbild och håll ögonblicksbilden tillgänglig för att initiera prenumerationen och klicka på Nästa .

I nästa dialogruta konfigurerar du SQL Agent-säkerheten. För att konfigurera agentsäkerheten klickar du på Säkerhetsinställningar knapp. Snapshot Agent Security " dialogrutan öppnas. I dialogrutan anger du det konto under vilket prenumeranten ansluter till utgivaren. Ange dessutom den kontoinformation under vilken SQL Server-agentjobbet ska köras. För denna demo körs SQL Server-jobb under SQL Server Agent-tjänstkonto, så välj Kör under SQL Server Agent-tjänstkonto alternativ. Prenumeranter kommer att kopplas till utgivaren med SQL-inloggningen, så välj Använda följande SQL Server-inloggning alternativet och ange SQL-inloggning och lösenord. I den här demon ansluter du med "sa " logga in. Klicka på OK för att stänga dialogrutan och klicka på Nästa .

I nästa dialogruta kan du välja att skapa en publikation eller generera skript för att skapa publikationen. Välj Skapa en skriptfil för att skapa publikationen alternativet för att generera skript för replikeringssteg. Vi kommer att skapa publikationen, så välj Skapa publikationen och klicka på Nästa .

I nästa dialogruta anger du namnet på publikationen, granskar sammanfattningen av de uppgifter som ska utföras för att skapa replikering och klickar på Slutför för att skapa publikationen och stänga Ny publikation Wizard .

Som jag nämnde i början av artikeln, när vi skapar en transaktionsreplikering skapar den loggläsaragentjobbet, ögonblicksbildsagentjobbet och rensningsjobbet för utgångna prenumerationer.

För att se dem, expandera SQL Server Agent , expandera sedan Jobb .

När publikationen är konfigurerad konfigurerar du prenumeranterna.

Konfigurera prenumeranten

För att konfigurera abonnenten, anslut först till en annan SQL-instans. När du har anslutit till instansen expanderar du replikering och högerklicka på Lokal prenumeration .

Guiden för nya prenumerationer öppnas. I dialogrutan finns en kort sammanfattning av guiden. Du kan hoppa över ytterligare visning av den här skärmen genom att markera Visa inte den här startsidan igen kryssruta. Klicka på Nästa för att gå till nästa dialogruta.

I nästa dialogruta väljer du publiceringsservern. Klicka på Utgivare rullgardinsmenyn och klicka på Hitta SQL Server Publisher . En dialogruta för att ansluta till utgivaren öppnas. I Servernamn textrutan, ange utgivarserverns värdnamn och klicka på Anslut .

När anslutningen har upprättats med utgivaren, Customer_Publication och AdventureWorks2014 kommer att visas i Databaser och publikation textruta. Välj Customer_Publication och klicka på Nästa .

I nästa dialogruta väljer du distributionsagentens plats. För den här demon kommer jag att använda Pull-prenumeration , så välj Kör varje agent hos sin prenumerant och klicka på Nästa :

I nästa dialogruta väljer du en prenumerationsdatabas. Jag har skapat en databas med namnet Customer_DB , som fungerar som en abonnentdatabas. I Prenumerationsdatabasen rullgardinsmenyn, välj Customer_DB databas från listan. När du har valt prenumerationsdatabasen klickar du på Nästa .

Konfigurera distributionsagentens säkerhet i nästa dialogruta. För att konfigurera säkerheten, klicka på knappen […]. Distribution Agent Security dialogrutan öppnas. I det första avsnittet anger du det domänkonto under vilket distributionsagentprocessen ska köras. Distributionsagenten körs under SQL Server Agent-tjänsten, så välj Kör under SQL Server-agenttjänstkontot alternativ.

Här har jag inte konfigurerat distributionsservern, så utgivaren fungerar som distributör. Prenumeranten kommer att ansluta till Publisher/Distributör med en SQL-inloggning. För att ansluta distributören, använd ”sa” inloggning och lösenord.

Klicka på OK för att stänga dialogrutan. Klicka på Nästa i dialogrutan Distribution Agent Security .

I nästa dialogruta konfigurerar du schemat för prenumerationssynkronisering. Du kan välja att den ska köras kontinuerligt eller konfigurera den schemalagda körningen. Välj Kör kontinuerligt i Agentschemat rullgardinsmenyn. Klicka på Nästa .

I nästa dialogruta väljer du om du vill initiera prenumerationen omedelbart med ögonblicksbilden av publiceringsdata och schema eller efter den första synkroniseringen. Vi kommer att initiera prenumerationen omedelbart, så välj Omedelbart från Initiera när rullgardinsmenyn. Klicka på Nästa .

I nästa dialogruta kan du välja att skapa prenumeration omedelbart eller generera skripten för att skapa en prenumeration. Välj Skapa en skriptfil för att skapa prenumerationen alternativet för att generera skript för replikeringssteg. Vi kommer att skapa en publikation, så välj Skapa prenumerationen och klicka på Nästa .

I nästa dialogruta visas en lista över uppgifter som utförts för att skapa prenumerationen. Du kan granska dem och klicka på Slutför .

När prenumerationen har skapats kan du se prenumerationen under Lokal prenumeration nod.

Visa replikeringsstatus

Du kan använda Replication Monitor för att se replikeringsstatusen. För att öppna Replication Monitor, expandera Replication och expandera sedan Lokala publikationer. Högerklicka på Customer_Publication och välj Starta replikeringsövervakning.

Sammanfattning:

I den här artikeln förklarade jag:

  1. En sammanfattning på hög nivå av transaktionsreplikering.
  2. Demoinställningar.
  3. Hur man konfigurerar replikeringspublicering.
  4. Hur man konfigurerar replikeringsprenumeranter.

Användbara verktyg:

dbForge Data Compare för SQL Server – kraftfullt SQL-jämförelseverktyg som kan arbeta med big data.

dbForge Schema Compare för SQL Server – pålitligt verktyg som sparar tid och ansträngning när du jämför och synkroniserar databaser på SQL Server.


  1. Introduktion till Python SQL-bibliotek

  2. SQLite Ta bort

  3. Msg 8672, Level 16, State 1, Line 1 MERGE-satsen försökte UPPDATERA eller DELETE samma rad mer än en gång

  4. SQL Server Interns:Problematiska operatörer Pt. III – Sorterar