sql >> Database teknologi >  >> RDS >> Database

Sådan opretter du transaktionsreplikering

I denne artikel vil jeg demonstrere, hvordan man opretter transaktionsreplikering.

Transaktionel replikering genererede et øjebliksbillede af publikations-DB-objekter og data i det. Når øjebliksbilledet er genereret, leveres alle dataændringer og skemaændringer, der er sket på udgiverdatabasen, til abonnentdatabaser. I transaktionsreplikering er data- og skemaændringer næsten i realtid, derfor kan transaktionsreplikering bruges til at aflæse rapporter og kan nogle gange bruges som DR-websted.

Når vi opretter transaktionsreplikering, opretter SQL Server følgende SQL-job

  1. Snapshot Agent Job: Snapshot Agent Job genererer et øjebliksbillede af publikationsdatabaseobjekter. Snapshottet gemmes enten på netværksplaceringen eller på harddisken
  2. Loglæserjob: Log Reader Job overvåger løbende publikationer. Den registrerer skemaændringer og Indsæt, Opdater og Slet forespørgsler og markerer dem til replikering. Loglæseren bruger "Sp_Replcmds ” for at anvende kommandoerne markeret til replikering.

Demoopsætning:

Til denne demo har jeg oprettet to SQL Server-instanser på den samme databaseserver. Forekomstens navne og detaljer er følgende:

Ved opsætning af demoen har jeg ikke oprettet en distributør, så udgiverinstansen vil også fungere som distributør. Jeg har oprettet "Kunde ” tabel i AdventureWorks2014-databasen. Jeg vil replikere dataene i kundetabellen. Derfor vil det blive kaldt en artikel af forlaget.

Konfigurer Publisher

For at konfigurere udgiveren skal du åbne SQL Server Management Studio, udvide databaseforekomsten, udvide replikering node og højreklik på Lokal udgivelse og vælg Ny udgivelse .

Guiden Ny udgivelse starter. I dialogboksen findes en kort oversigt over guiden. Du kan springe over yderligere visning af denne dialogboks ved at markere Vis ikke denne startside igen afkrydsningsfelt. Klik på Næste for at gå til den næste dialogboks.

I den næste dialogboks skal du vælge den database, der fungerer som udgiver. I denne demo bruger jeg AdventureWorks2014 database, så vælg AdventureWorks2014 fra databaselisten, og klik på Næste .

I den næste dialogboks skal du vælge publikationstypen fra listen over publikationstyper, og deres beskrivelser findes også i Publicationstypebeskrivelser tekstboks. Vælg Transaktionsudgivelse og klik på Næste .

I den næste dialogboks skal du vælge publikationstypen fra listen over publikationstyper, og deres beskrivelser findes også i Publicationstypebeskrivelser tekstboks. Vælg Transaktionsudgivelse og klik på Næste .

Hvis du vil filtrere tabellens data, kan du angive betingelsen i dialogboksen Filtrer tabelrækker. For at tilføje filteret skal du klikke på Tilføj knap. En anden dialogboks Tilføj filter åbner. I denne dialogboks kan du angive den ønskede filtersætning i Filtersætningen tekstboks.

Til denne demo filtrerer vi ikke data fra kunden tabel, så spring denne dialogboks over og klik på Næste .

For at initialisere transaktionsreplikering skal vi generere øjebliksbilledet. Konfigurer snapshotgenereringsintervallet i dialogboksen Snapshot Agent. Du kan generere øjebliksbilledet med det samme, eller du kan planlægge det specifikke tidspunkt for at generere database-øjebliksbilledet. Som standard genereres øjebliksbilledet hver time, men vi kan ændre det. Klik på Skift. for at generere øjebliksbilledet i et bestemt interval Dialogboksen Nyt jobplan åbnes. Konfigurer den ønskede tidsplan, og klik på OK .

I denne demo genererer jeg øjebliksbilledet med det samme, så tjek Opret et øjebliksbillede, og hold snapshottet tilgængeligt for at initialisere abonnementet og klik på Næste .

Konfigurer SQL Agent-sikkerheden i den næste dialogboks. For at konfigurere agentsikkerheden skal du klikke på Sikkerhedsindstillinger knap. Snapshot Agent Security ” dialogboksen åbnes. I dialogboksen skal du angive den konto, under hvilken abonnenten opretter forbindelse til udgiveren. Angiv desuden de kontooplysninger, under hvilke SQL Server-agentjobbet skal udføres. Til denne demo udføres SQL Server-job under SQL Server Agent-tjenestekontoen, så vælg Kør under SQL Server Agent-tjenestekontoen mulighed. Abonnenter vil blive forbundet til udgiveren ved hjælp af SQL-login, så vælg Brug følgende SQL Server-login og angiv SQL-login og adgangskode. I denne demo skal du oprette forbindelse ved hjælp af "sa " Log på. Klik på OK for at lukke dialogboksen og klikke på Næste .

I den næste dialogboks kan du vælge at oprette en publikation eller generere scripts for at oprette publikationen. Vælg Generer en scriptfil for at oprette publikationen mulighed for at generere scripts af replikeringstrin. Vi opretter publikationen, så vælg Opret publikationen og klik på Næste .

I den næste dialogboks skal du angive navnet på publikationen, gennemgå oversigten over de opgaver, der skal udføres for at oprette replikering, og klikke på Udfør for at oprette publikationen og lukke Ny udgivelse Wizard .

Som jeg nævnte i begyndelsen af ​​artiklen, når vi opretter en transaktionsreplikering, opretter den loglæseragentjobbet, øjebliksbilledeagentjobbet og oprydningsjobbet for udløbne abonnementer.

For at se dem skal du udvide SQL Server Agent , og udvid derefter Jobs .

Når udgivelsen er konfigureret, skal du konfigurere abonnenterne.

Konfigurer abonnenten

For at konfigurere abonnenten skal du først oprette forbindelse til en anden SQL-instans. Når du har oprettet forbindelse til forekomsten, skal du udvide replikering og højreklik på Lokalt abonnement .

Guiden Nyt abonnement åbner. I dialogboksen findes en kort oversigt over guiden. Du kan springe over yderligere visning af denne skærm ved at markere Vis ikke denne startside igen afkrydsningsfelt. Klik på Næste for at gå til den næste dialogboks.

I den næste dialogboks skal du vælge udgivelsesserveren. Klik på Udgiver rullemenuen, og klik på Find SQL Server Publisher . En dialogboks for at oprette forbindelse til udgiveren åbnes. I Servernavn tekstboks, angiv værtsnavnet på udgiverserveren og klik på Forbind .

Når forbindelsen er etableret med udgiveren, Customer_Publication og AdventureWorks2014 vil blive vist i Databaser og publikation tekstboks. Vælg Customer_Publication og klik på Næste .

I den næste dialogboks skal du vælge distributionsagentens placering. Til denne demo vil jeg bruge Pull Subscription , så vælg Kør hver agent hos dens abonnent og klik på Næste :

I den næste dialogboks skal du vælge en abonnementsdatabase. Jeg har oprettet en database ved navn Customer_DB , der fungerer som en abonnentdatabase. I Abonnementsdatabasen rullemenuen, vælg Customer_DB database fra listen. Når du har valgt abonnementsdatabasen, skal du klikke på Næste .

I den næste dialogboks skal du konfigurere distributionsagentsikkerhed. Klik på knappen […] for at konfigurere sikkerheden. Distributionsagentsikkerheden dialogboksen åbnes. I det første afsnit skal du angive den domænekonto, som distributionsagentprocessen skal køre under. Distributionsagenten kører under SQL Server Agent-tjenesten, så vælg Kør under SQL Server-agentservicekontoen mulighed.

Her har jeg ikke konfigureret distributionsserveren, så udgiveren fungerer som distributør. Abonnenten vil oprette forbindelse til Publisher/Distributor ved hjælp af et SQL-login. Brug "sa" for at forbinde distributøren login og adgangskode.

Klik på OK for at lukke dialogboksen. Klik på Næste i dialogboksen Distribution Agent Security .

I den næste dialogboks skal du konfigurere abonnementssynkroniseringsplanen. Du kan vælge, at den skal køre kontinuerligt eller konfigurere den planlagte udførelse. Vælg Kør kontinuerligt i Agentplanen drop-down boks. Klik på Næste .

I den næste dialogboks skal du vælge, om abonnementet skal initialiseres med det samme med snapshot af publikationsdata og skema eller efter den første synkronisering. Vi initialiserer abonnementet med det samme, så vælg Straks fra Initialiser hvornår drop-down boks. Klik på Næste .

I den næste dialogboks kan du vælge at oprette abonnement med det samme eller generere scripts for at oprette et abonnement. Vælg Generer en scriptfil for at oprette abonnementet mulighed for at generere scripts af replikeringstrin. Vi opretter en publikation, så vælg Opret abonnementet og klik på Næste .

I den næste dialogboks vises en liste over opgaver udført for at oprette abonnementet. Du kan gennemgå dem og klikke på Udfør .

Når abonnementet er oprettet, kan du se abonnementet under Lokalt abonnement node.

Se replikeringsstatus

Du kan bruge Replikeringsmonitor til at se replikeringsstatussen. For at åbne Replication Monitor skal du udvide Replication , og udvid derefter Lokale publikationer. Højreklik på Customer_Publication og vælg Start replikeringsovervågning.

Oversigt:

I denne artikel forklarede jeg:

  1. En oversigt på højt niveau af transaktionsreplikering.
  2. Demoopsætning.
  3. Sådan konfigureres replikeringspublikation.
  4. Sådan konfigurerer du replikeringsabonnenter.

Nyttige værktøjer:

dbForge Data Compare til SQL Server – kraftfuldt SQL-sammenligningsværktøj, der kan arbejde med big data.

dbForge Schema Compare til SQL Server – pålideligt værktøj, der sparer din tid og kræfter, når du sammenligner og synkroniserer databaser på SQL Server.


  1. Tips til migrering fra HAProxy til ProxySQL

  2. psql:FATAL:Peer-godkendelse mislykkedes for brugerudvikler

  3. Brug af PIVOT i SQL Server 2008

  4. T-SQL:Afrund til nærmeste 15 minutters interval