sql >> Databasteknik >  >> RDS >> Database

Hur man skapar snapshot-replikering

Konceptet med replikering av ögonblicksbilder är enkelt. Den genererar och distribuerar ögonblicksbilden av schema och data för artiklar, dök upp vid en specifik tidpunkt och uppdaterar ändringarna på prenumerationer. När vi skapar snapshot-replikering skapar SQL Server ett Snapshot Agent Job som genererar en ögonblicksbild av publikationsdatabasobjekt. Snapshot lagras antingen på nätverksplatsen eller på hårddisken. Du kan definiera intervallet för att generera ögonblicksbilden med hjälp av SQL Job-schemat.

Demoinställningar

För denna demo har jag skapat två SQL Server-instanser i en databasserver. Förekomstnamn och detaljer är följande:

[tabell id=54 /]

I demo-inställningen har jag inte skapat en distributör och därför kommer utgivarinstansen också att fungera som distributör. Jag kommer att replikera tabeller och data som tillhörpersonen schema för AdventureWorks2014-databasen.

Konfigurera Publisher

För att konfigurera utgivaren, öppna SQL Server Management Studio, expandera databasinstansen, expandera replikeringen nod, högerklicka på Local Publication och välj Ny publikation . Se följande bild:

Ny publiceringsguide startar. På skärmen finns en kort sammanfattning av guiden. Du kan hoppa över 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 skärm. Se följande bild:

På nästa skärm väljer du den databas som fungerar som utgivare. I den här demon använder jag AdventureWorks2014 databas, välj därför AdventureWorks2014 databas från databaslistan och klicka på Nästa . Se följande bild:

På nästa skärm väljer du en publikationstyp. Typerna listas i listrutan Publikationstyper, och för individuell publikationstyp förklaras dess beskrivningar också i Beskrivning av publikationstyp textruta. Välj Snapshot Replicatio n och klicka på Nästa . Se följande bild:

Vid replikering är databasobjekten kända som artiklar. På Artiklar visas listan över databasobjekt i publikationsdatabasen. Jag ska replikera data för alla tabeller som tillhör personschemat, välj därför de tabeller som tillhör personschemat från listan med artiklar och klicka på Nästa . Se följande bild:

För att initiera replikering måste vi skapa en ögonblicksbild. På Snapshot Agent konfigurera intervallet för generering av ögonblicksbilder. 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. Klicka på Ändra för att skapa en ögonblicksbild på ett specifikt intervall . Nytt jobbschema dialogrutan öppnas. Konfigurera önskat schema och klicka på OK . Se följande bild:

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

På nästa skärm 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 kontot under vilket prenumeranten ansluter till utgivaren. Ange dessutom kontoinformationen under vilken SQL Server-agentjobbet kommer att köras. För denna demo körs SQL Server-jobb under tjänstekontot för SQL-serveragenten, välj därför Kör under tjänstekontot för SQL Server Agent alternativ. Prenumeranter kommer att kopplas till utgivaren med SQL-inloggning, välj därför Använda följande SQL Server-inloggningsalternativ och ge 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 t. Se följande bild:

På nästa skärm kan du välja att skapa en publikation eller generera skript för att skapa publikationen. Välj Generera en skriptfil för att skapa publikationen alternativet för att generera skript för replikeringssteg. Vi skapar en publikation, välj därför Skapa publikationen och klicka på Nästa . Se följande bild:

På nästa skärm, ange namnet på publikationen, granska sammanfattningen av uppgifter som ska utföras för att skapa replikering och klicka på Slutför för att skapa publikationen och stänga New Publication Wizard. Se följande bild:

Som jag nämnde i början av artikeln, när vi skapar en ögonblicksbildreplikering, skapar SQL ett jobb som skapar en ögonblicksbild och lagrar ögonblicksbildfilerna i standardkatalogen.

För att se dem, expandera SQL Server Agent>> expandera Jobb . Se följande bild:

När publicering är konfigurerad, konfigurera prenumeranter.

Konfigurera prenumerant

För att konfigurera prenumerant, anslut först till en annan SQL-instans. När du har anslutit till instansen expanderar du replikeringen och högerklickar på Lokal prenumeration . Se följande bild:

New SubscriptionWizard öppnas. På skärmen finns en kort sammanfattning av guiden. Du kan hoppa över 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 skärm. Se följande bild:

På nästa skärm väljer du publiceringsservern. Klicka på Utgivare rullgardinsmenyn och välj Hitta SQL Server Publisher från listan. En dialogruta för att ansluta utgivaren öppnas. Ange utgivarserverns värdnamn i textrutan för servernamn och klicka på anslut. Se följande bild:

När anslutningen till utgivaren har upprättats visas Snapshot_Replication publikationen och AdventureWorks2014 databasen kommer att visas i Databaser och publikation textruta. Välj Snapshot_Replication och klicka på Nästa . Se följande bild:

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

På nästa skärm väljer du en prenumerationsdatabas. Jag har skapat en databas med namnet Personer som fungerar som en abonnentdatabas. Iprenumerationsdatabasen rullgardinsmenyn väljer du Personer databas från listan. När du har valt en prenumerationsdatabas klickar du på Nästa . Se följande bild:

På nästa skärm konfigurerar du distributionsagentens säkerhet. För att konfigurera säkerhet, klicka på […] knapp. Distribution Agent Security dialogrutan öppnas. I det första avsnittet anger du det domänkonto under vilket distributionsagentprocessen kommer att köras. Distributionsagenten körs under SQL Server-agenttjänsten, välj därför Kör under SQL Server-agenttjänstkontot alternativ.

Här har jag inte konfigurerat distributionsservern, därför fungerar utgivaren som distributör. Prenumerant kommer att ansluta till utgivare/distributör med SQL-inloggning. För att ansluta distributören, använd sa inloggning och lösenord. Se följande bild:

Klicka på OK för att stänga dialogrutan. Och på Distribution Agent Security klickar du på Nästa . Se följande bild:

På nästa skärm 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 . Se följande bild:

På nästa skärm väljer du om du vill initiera prenumerationen omedelbart med en ögonblicksbild av publiceringsdata och schema eller efter den första synkroniseringen. Vi kommer att initiera prenumerationen omedelbart, välj därförOmedelbart från Initiera när rullgardinsmenyn. Klicka på Nästa . Se följande bild:

På nästa skärm kan du välja att skapa en prenumeration direkt eller generera skripten för att skapa en prenumeration. Välj Skapa en skriptfil för att skapa prenumerationen . Möjlighet att generera skript för replikeringssteg. Vi skapar en publikation, välj därför alternativet Skapa prenumeration och klicka på Nästa t. Se följande bild:

På nästa skärm visas en lista över uppgifter som utförs för att skapa prenumeration. Du kan granska dem och klicka på Slutför . Se följande bild:

När prenumerationen har skapats kan du se prenumerationen under Lokal prenumeration nod. Se följande bild:

Ändra schema för ögonblicksbild

Som jag nämnde, när vi skapar en publikation kan vi konfigurera ett ögonblicksbildintervall från Snapshot Agent skärm. Vi kan ändra ögonblicksbildintervallet genom att ändra schemat för ett SQL-jobb för replikering av ögonblicksbilder. För att göra det expanderar du SQL Server Agent på utgivarservern>> Expandera Jobb och högerklicka på replikeringsjobbet Snapshot (TTI412-VM\SQL2017-AdventureWorks2014-Snapshot_Replication-4) och välj Egenskaper . Se följande bild:

Dialogrutan Jobbegenskaper öppnas. Välj Schema sida, välj schemat och klicka på Redigera . Se följande bild:

Jobbschema dialogrutan öppnas. konfigurera lämpligt schema och klicka på OK .

Ovanstående konfiguration genererar en ögonblicksbild varje timme.

Ändra plats för ögonblicksbildfilerna

Vi kan också lägga ögonblicksbildfilerna i en annan mapp. För denna demo lagras ögonblicksbildfilerna i standardmappen som är E:\ReplicationSnapshot . Jag kommer att ändra platsbildsfilerna. Den nya platsen kommer att vara E:\Snapshot\PersonsSchema .

Vi kan ändra ögonblicksbildens plats från publikationsegenskaperna. För att öppna publikationsegenskaper högerklickar du på Lokal publicering på utgivarservern och välj Egenskaper. Se följande bild:

Publiceringsegenskaper dialogrutan öppnas. Välj Ögonblicksbild i dialogrutan . På Snapshot rensar du Placera filer i standardmappen och välj Placera filer i följande mapp alternativ. Ange en ny sökväg i textrutan och klicka påOK . Se följande bild:

När vi utför denna ändring blir den aktuella ögonblicksbilden ogiltig. Efter att ha ändrat denna inställning får du därför en varning som visas i följande bild:

Klicka på ja. Den kommer att generera en ny ögonblicksbild och spara ögonblicksbildfiler på E:\Snapshots\PersonsSchema\unc . Se följande bild:

Visa replikeringsstatus

Du kan använda Replication Monitor för att se replikeringsstatusen. För att öppna replikeringsmonitorn, expandera replikering n nod>> expandera Lokala publikationer>> högerklicka på Snapshot_Replication och välj Starta replikeringsövervakning . Se följande bild.

Med hjälp av replikeringsmonitorn kan du se:

  1. Status för replikering
  2. Lista över prenumerationer
  3. Senaste synkroniseringsdatum och tid.

Med hjälp av replikeringsmonitorn kan du se den statusen för agenten och jobb relaterade till jobbet. Om du vill visa den väljer du Agentreplikeringsmonitorn dialog ruta. Se följande bild:

Under Agent fliken kan du se följande detaljer:

  1. Status för publiceringsjobb.
  2. Namn på publiceringsjobb.
  3. Sista startdatum och tid för publiceringsjobbet.
  4. Längd för att slutföra publiceringsjobbet.
  5. Den senaste åtgärden vidtogs av publiceringsjobb.

Sammanfattning

I den här artikeln hade jag förklarat:

  1. Hög nivå är sammanfattning av ögonblicksbildreplikering.
  2. Hur man konfigurerar utgivare och prenumerant.
  3. Replikeringsmonitor och dess användning.

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. Hur kontrollerar jag om en kolumn är tom eller null i MySQL?

  2. MariaDB FIELD() vs FIND_IN_SET():Vad är skillnaden?

  3. Hur current_time fungerar i PostgreSQL

  4. Unik begränsning med villkor i MYSQL