Articles

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

  • Utgiver
  • Publikasjonsdatabase
  • Publikasjonsdatabase
  • Artikler
  • Distributør
  • Distribusjonsdatabase
  • Abonnementsdatabase
  • Abonnement
  • Replikeringsagenter
  • 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

    velg object_name(object_id) , navn fra sys.kolonner sc hvor sc.is_replicated = 1;
    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?

      1
      SELECT @@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?

      1
      SELECT name FROM sys.databases WHERE is_distributor = 1
    • a Publisher is using this Distributor or not?

      1
      EXEC sp_get_distributor

    • or just to interrogate various Distributor and Distribution database properties?

      1
      2
      3

      EXEC 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.

    Replikeringsagenter

    SQL 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 Replikering

    snapshot 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 Agent

    Log Reader Agent brukes bare med transaksjonsreplikasjon. Den flytter replikeringstransaksjoner fra online transaksjonsloggen i publikasjonsdatabasen til distribusjonsdatabasen.

    Distribusjon Agent

    Distribusjon 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 Agent

    Fletteagenten 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

    Sammendrag

    Hittil 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.

    innholdsfortegnelse

    SQL 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

    • Forfatter
    • Siste Innlegg
    prashanth JAYARAM
    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

    Prashanth Jayaram

    Siste innlegg Av Prashanth Jayaram (se alle)
    • en rask oversikt over database revisjon I SQL – januar 28, 2021
    • Hvordan å konfigurere azure datasynkronisering mellom azure Sql-Databaser og Lokal Sql server – 20. januar 2021
    • slik utfører du import – /eksportoperasjoner for azure sql database ved hjelp av powershell-14. januar 2021