SQLShack
volumet av data som beholdes, administreres og nås i dag, er uten sidestykke. Bedrifter forventer AT IT-avdelingen skal holde data på nettet og tilgjengelig på ubestemt tid, og legger sterkt press på databasene som kreves for å lagre og administrere dem. For å møte dagens behov må vi erstatte utdaterte og ineffektive eldre prosesser med nye, mer smidige teknikker. SQL Server Replikering er en av teknikkene for å imøtekomme slike krav.
-
Merk: Hvis Du vil vite mer om replikere databaser, kan du lese Ulike Interessenter, Ulike Visninger: Hvorfor Database Management Krever En Systematisk Tilnærming artikkel.
i denne artikkelen, la oss du forme din forståelse av FULL SQL Server replikering topografi inkludert komponenter, internals OG SQL å binde det hele sammen. Etter at du har lest denne artikkelen, vil du forstå:
- KOMPONENTER av transaksjons SQL Server-replikering, spesielt
- hvordan få distributøregenskaper
- hvordan finne utgiveren ved hjelp av samme distributør
- hva er databasene som brukes til SQL Server-replikering
- Den generelle topologien til et replikeringsmiljø
- hva er artiklene som er kartlagt til TYPEN SQL Server-replikeringsmodell
- hvordan få publikasjon detaljer
- hvordan få abonnement detaljer
- sql server replikering Agenter
- og
Replikering
SQL Server replikering ER en teknologi for å kopiere og distribuere data og databaseobjekter fra en database til en annen og deretter synkronisere mellom databaser for å opprettholde konsistens og integritet av dataene. I de fleste tilfeller er replikering en prosess for å reprodusere dataene til de ønskede målene. SQL Server-replikering brukes til å kopiere og synkronisere data kontinuerlig, eller det kan også planlegges å kjøre med forhåndsbestemte intervaller. Det finnes flere forskjellige replikeringsteknikker som støtter en rekke datasynkroniseringsmetoder; enveis; en-til-mange; mange-til-en; og toveis, og holder flere datasett synkronisert med hverandre.
Transaksjons sql Server replikering komponenter
følgende diagram viser komponentene i transaksjons SQL Server replikering.
Distribusjonsdatabase
SQL Server replikasjonsdiagram
artikkel
en artikkel er den grunnleggende enheten for sql server-replikering. En artikkel kan bestå av tabeller, lagrede prosedyrer og visninger. Det er mulig å skalere artikkelen, horisontalt og vertikalt ved hjelp av et filteralternativ. Vi kan også lage flere artikler på samme objekt med noen begrensninger og begrensninger.
Ved Hjelp Av Veiviseren For Ny Publikasjon kan Artikkelen navigeres. Det tillater oss å vise egenskapene til en artikkel og gi alternativer for å angi egenskaper for artiklene. I noen tilfeller kan egenskapene angis under publiseringstidspunktet, og det er en skrivebeskyttet egenskap.
etter opprettelsen AV EN SQL Server replikering publikasjon, for eksempel, hvis noen egenskap krever en endring, vil det i sin tur krever en ny replikering snapshot skal genereres. Hvis publikasjonen har ett eller flere abonnementer, krever endringen at alle abonnementer skal initialiseres på nytt. Hvis du vil ha mer informasjon, kan du se legge til/slippe artikler til/fra eksisterende publikasjon I SQL Server-artikkel.
for å liste alle artiklene som er publisert, kjør følgende T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
|
velg
pub.
,Art.
,Art.
,Art.
,Art.
FRA
.. Art
INDRE SAMMENFØYNING .. Pub
På Kunst. = Pub.
ORDER BY
Pub., Art.
|
To get the details of articles in transactional or merge SQL Server replication in a published database, run the following T-SQL.
1
2
3
4
5
6
7
8
|
SELECT st.name , st.schema_id, st.is_published , st.is_merge_published, is_schema_published
FRA sys.tabeller st HVOR st. is_published = 1 eller st. is_merge_published = 1 ELLER st.is_schema_published = 1
UNION
VELG sp.name, sp.schema_id, 0, 0, sp. is_schema_published
FRA sys.prosedyrer sp HVOR sp. is_schema_published = 1
UNION
VELG sv.name, sv.schema_id, 0, 0, sv. is_schema_published
FRA sys.visninger sv HVOR sv. is_schema_published = 1;
|
To get detailed information about an article in the listed publisher, run the following T-SQL
1
2
3
4
5
6
7
|
DECLARE @publication AS sysname;
SET @publication = N’PROD_HIST_Pub’;
USE MES_PROD_AP
EXEC sp_helparticle
@publication = @publication;
GO
|
To get column level details, run the following T-SQL
1
2
3
|
USE MES_PROD_AP
GO
sp_helparticlecolumns @publication = N’PROD_HIST_Pub’ , @article = ‘tb_Branch_Plant’
|
for å vise kolonnene som er publisert i transaksjonsreplikasjon i publikasjonsdatabasen, kjør FØLGENDE T-SQL
1
|
Publikasjoner
En Publikasjon er en logisk samling av artikler fra en database. Enheten tillater oss å definere og konfigurere artikkelegenskaper på høyere nivå slik at egenskapene arves til alle artiklene i den gruppen.
1
|
exec sp_helppublication;
|
Utgiverdatabase
utgiveren er en database som inneholder en liste over objekter som er angitt som SQL Server replikering artikler er kjent som publikasjonsdatabase. Utgiveren kan ha en eller flere publikasjoner. Hver utgiver definerer en datautbredelsesmekanisme ved å opprette flere interne replikeringslagrede prosedyrer.
1
2
3
|
USE Distribution
GO
select * from MSpublications
|
Publisher
The Publisher is a database instance that makes data available to other locations through SQL Server replication. Utgiveren kan ha en eller flere publikasjoner, som hver definerer et logisk relatert sett med objekter og data som skal replikeres.
Distributør
Distributøren er en database som fungerer som et lagerhus for replikeringsspesifikke data knyttet til en Eller flere Utgivere. I mange tilfeller er distributøren en enkelt database som fungerer som Både Utgiver og Distributør. I FORBINDELSE MED SQL Server-replikering er dette kjent som en «lokal distributør». På den annen side, hvis den er konfigurert på en egen server, er den kjent som en «ekstern distributør». Hver Utgiver er knyttet til en enkelt database kjent som en «distribusjonsdatabase» aka «Distributør».
distribusjonsdatabasen identifiserer og lagrer STATUSDATA FOR sql Server-replikering, metadata om publikasjonen, og fungerer i noen tilfeller som en kø for data som flyttes fra Utgiveren til Abonnentene. Avhengig av replikeringsmodellen kan Distributøren også være ansvarlig for å varsle Abonnentene som abonnerer på en publikasjon om at en artikkel er endret. Distribusjonsdatabasen opprettholder også integriteten til dataene.
Distribusjonsdatabaser
Hver Distributør må ha minst en distribusjonsdatabase. Distribusjonsdatabasen består av artikkel detalj, replikering meta-data og data. En Distributør kan inneholde mer enn en distribusjonsdatabase; alle publikasjoner som er definert på En Enkelt Utgiver, må imidlertid bruke samme distribusjonsdatabase.
for å finne ut om …
-
en server er en distributør eller ikke?
1SELECT @@ServerName Servername, case when is_distributor=1 then ‘Yes’ else ‘No’ end status FROM sys.servers WHERE name=’repl_distributor’ AND data_source=@@servername; -
a distribution database installed or not?
1SELECT name FROM sys.databases WHERE is_distributor = 1 -
a Publisher is using this Distributor or not?
1EXEC sp_get_distributor -
or just to interrogate various Distributor and Distribution database properties?
123EXEC sp_helpdistributor;EXEC sp_helpdistributiondb;EXEC sp_helpdistpublisher;
Subscriber
A database instance that consumes SQL Server replication data from a publication is called a Subscriber. Abonnenten kan motta data fra en eller flere utgivere og publikasjoner. Abonnenten kan også sende dataendringer tilbake til utgiveren eller publisere dataene til andre abonnenter, avhengig av typen replikeringsdesign og modell.
1
|
exec sp_helpsubscriberinfo;
|
Abonnementer
et abonnement er en forespørsel om en kopi av en publikasjon som skal leveres Til En Abonnent. Abonnementet definerer hvilke publikasjonsdata som skal mottas, hvor og når.
Det finnes to typer abonnementer: push-abonnementer og pull-abonnementer
- Push-abonnement: Distributøren oppdaterer dataene direkte i Abonnentdatabasen
- Pull-abonnement: Abonnenten er planlagt å sjekke Hos Distributøren regelmessig hvis noen nye endringer er tilgjengelige, og oppdaterer deretter dataene i selve abonnementsdatabasen.
1
|
exec sp_helpsubscription;
abonnementsdatabaser en måldatabase for en replikeringsmodell kalles en abonnementsdatabase. ReplikeringsagenterSQL Server-replikering bruker et forhåndsdefinert sett med frittstående programmer, og hendelser kalles agenter for å utføre oppgavene som er knyttet til data. Som standard KJØRER SQL Server replikering agenter som planlagte jobber UNDER SQL Server Agent. Replikeringsagenter kan også kjøres fra kommandolinjen og av programmer som bruker Replikeringsbehandlingsobjekter (Rmo). SQL Server replikering agenter kan overvåkes og administreres Ved Hjelp Av Replikering Monitor OG SQL Server Management Studio. snapshot Agent For Replikeringsnapshot Agent For Replikering brukes med ALLE TYPER SQL Server-replikeringsteknologi, da Den gir det nødvendige datasettet for å utføre den første datasynkroniseringen av publikasjonsdatabasen med abonnementsdatabasen. Den forbereder skjema og innledende data for publiserte artikler, snapshot-filer og registrerer informasjon om synkroniseringstypen i distribusjonsdatabasen. Log Reader AgentLog Reader Agent brukes bare med transaksjonsreplikasjon. Den flytter replikeringstransaksjoner fra online transaksjonsloggen i publikasjonsdatabasen til distribusjonsdatabasen. Distribusjon AgentDistribusjon Agent brukes bare med Replikering snapshot OG Transaksjons SQL Server-replikering. Denne agenten bruker den første replikering snapshot til abonnementsdatabasen og senere, dataendringer spores og registreres i distribusjonsdatabasen og brukes på abonnementsdatabasen. Flett AgentFletteagenten brukes med flettereplikasjonsmodellen. Som standard Endres Opplastingen Av Sammenslåingsagenten fra Abonnenten Til Utgiveren, og laster deretter ned endringer fra Utgiveren til Abonnenten. Hvert abonnement har sin Egen Sammenslåingsagent som kobles til Både Utgiveren og Abonnenten og oppdaterer begge. Sammenslåingsagenten kjører Enten Hos Distributøren for push-abonnementer eller Hos Abonnenten for pull-abonnementer. Her er synkroniseringen toveis. Datakonfliktene håndteres av et sett med utløsere som støtter hele prosessen SammendragHittil har Vi sett en gjennomgang av noen av de viktige konseptene FOR SQL Server-replikering. T-SQL-skript vises også til spørring systemtabeller og replikering lagret prosedyrer for å svare på det meste av vanlige spørsmål om SQL Server-replikering. jeg skal diskutere mer OM SQL Server replikering i kommende artikler. innholdsfortegnelseSQL Server replikering: Oversikt over komponenter og topografi SQL Replikering: Grunnleggende oppsett og konfigurasjon Hvordan Legge til/Slippe artikler fra eksisterende publikasjoner I SQL Server slik gjør du en rask estimert sammenligning av data i to store SQL Server-databaser for å se om de er like p > transaksjonsreplikasjon for sql server: slik konfigurerer du en egendefinert SQL Server-transaksjonsreplikasjonsmodell med En Sentral Abonnent og Flere Utgiverdatabaser slik konfigurerer du egendefinert SQL Server-transaksjonsreplikasjon med en sentral utgiver og flere abonnentdatabaser slik konfigurerer DU EN DDL-og DML SQL Server-database transaksjonsreplikasjonsløsning slik konfigurerer du transaksjonsreplikasjon på tvers av plattformer FOR sql Server-replikering for database rapportering på linux sql server database migreringer med null datatap Og null nedetid Bruke transaksjonsdatareplikasjon til å spille av og teste produksjonsbelastninger på en staging-server slik konfigurerer DU SQL Server-databasereplikasjon for en rapporteringsserver SQL Server transaksjonsreplikasjon: HVORDAN initialisere et abonnement ved hjelp av En «Replikering støtte bare» –TBA SQL Server Replikering Overvåking og innstilling varsler Ved Hjelp Av PowerShell –TBA
Jeg ER EN DATABASE TEKNOLOG har 11+ år med rik, hands-on erfaring på database teknologier. Jeg Er Microsoft Sertifisert Profesjonell og støttet med En Grad I Master Of Computer Application.
min spesialitet ligger i å designe & implementere løsninger Med høy tilgjengelighet og DB-Migrasjon på tvers av PLATTFORMER. Teknologiene som for tiden jobber med ER SQL Server, PowerShell, Oracle og MongoDB. Vis alle innlegg av Prashanth Jayaram Siste innlegg Av Prashanth Jayaram (se alle)
|