Articles

sqlshack

the volume of data preserved, managed, and accessed today is ennennäkemätön. Yritykset odottavat, että tietotekniikkaosasto pitää tiedot verkossa ja saatavilla loputtomiin, mikä aiheuttaa voimakasta painetta niiden tallentamiseen ja hallintaan tarvittaviin tietokantoihin. Meidän on korvattava vanhentuneet ja tehottomat Vanhat prosessit uusilla, ketterämmillä tekniikoilla. SQL Server replikointi on yksi tekniikoita mukautumaan tällaisia vaatimuksia.

  • Huom.: Jos haluat lisätietoja tietokantojen kopioinnista, lue eri sidosryhmät, erilaiset näkemykset: miksi tietokannan hallinta edellyttää systemaattista lähestymistapaa koskevaa artikkelia.

tässä artikkelissa muokataan käsitystäsi täydestä SQL Server-replikaation topografiasta sisältäen komponentit, sisäosat ja SQL: n sitomaan se kaikki yhteen. Kun olet lukenut tämän artikkelin, ymmärrät:

  • SQL Server-replikaatio, yleensä
  • Transaktiotason SQL Server-replikaation komponentit, erityisesti
  • miten saada jakelijan ominaisuudet
  • Miten löytää julkaisija samaa jakelijaa käyttäen
  • mitkä ovat SQL Server-replikaatiossa käytettävät tietokannat
  • replikaatioympäristön yleinen topologia
  • mitkä artikkelit on yhdistetty SQL Server-replikointimallin tyyppiin
  • How to get publication details
  • how to get subscription details
  • SQL Server replikation Agents
  • ja more …

replikointi

SQL Server replikointi on tekniikka, jolla kopioidaan ja jaetaan tietoja ja tietokantaobjekteja tietokannasta toiseen ja synkronoidaan sitten tietokantojen välillä tietojen johdonmukaisuuden ja eheyden ylläpitämiseksi. Useimmissa tapauksissa replikointi on prosessi, jossa tiedot toistetaan halutuissa kohteissa. SQL Server-replikaatiota käytetään datan kopioimiseen ja synkronointiin jatkuvasti tai se voidaan myös ajoittaa toimimaan ennalta määrätyin väliajoin. On olemassa useita erilaisia replikointitekniikoita, jotka tukevat erilaisia tietojen synkronointimenetelmiä; yksisuuntainen; one-to-many; many-To-one; ja kaksisuuntainen, ja pitää useita tietokokonaisuuksia synkronoituna keskenään.

Transaktionaaliset SQL Server-replikaatiokomponentit

seuraavassa kaaviossa on kuvattu SQL Server-replikaation komponentit.

mukaan lukien SQL Server-replikaatio …

    Julkaisija Julkaisutietokanta ulkaisutietokanta

  • Julkaisutietokanta
  • jakelija
  • Jakelutietokanta Tilaaja Tilaaja Replikaatiotietokanta

  • Replikaatiomiehet

SQL Server-replikaatiokaavio

artikkeli

artikkeli on SQL Server-replikaation perusyksikkö. Artikkeli voi koostua taulukoista, tallennetuista menettelyistä ja näkymistä. Tuotetta on mahdollista skaalata vaaka-ja pystysuunnassa suodatinvaihtoehdon avulla. Voimme myös luoda useita artikkeleita samaan objektiin joitakin rajoituksia ja rajoituksia.

uuden ohjatun julkaisun avulla artikkelia voi suunnistaa. Sen avulla voimme tarkastella artikkelin ominaisuuksia ja antaa vaihtoehtoja artikkelien ominaisuuksien määrittämiseen. Joissakin tapauksissa ominaisuudet voidaan asettaa julkaisun luomisen aikana ja se on vain lukuominaisuus.

esimerkiksi SQL Server-replikointijulkaisun luomisen jälkeen, jos jokin ominaisuus vaatii muutosta, se puolestaan edellyttää uuden replikaatiovedoksen luomista. Jos julkaisulla on yksi tai useampi tilaus, muutos edellyttää kaikkien tilausten uudelleenaloittamista. Lisätietoja on ohjeaiheessa artikkelien lisääminen/pudottaminen olemassa olevaan julkaisuun SQL Server-artikkelissa.

luetellaksesi kaikki julkaistavat artikkelit suorita seuraava T-SQL

1
2
3
4
5
6
7
8
9
10
11
12

valitse
pub.
,Art.
,Art.
,Art.
,Art.
alkaen
.. Art
INNER JOIN .. Pub
on Art. = 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
FROM sys.taulukot st missä st. is_published = 1 tai st. is_merge_published = 1 tai st. is_schema_published = 1
UNION
valitse sp.name, sp.schema_id, 0, 0, sp.is_schema_published
FROM sys.procedures SP WHERE SP. is_schema_published = 1
UNION
SELECT sv.name, sv.schema_id, 0, 0, SV. is_schema_published
FROM sys.views SV missä 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’

julkaisutietokannassa transaktioreplikaationa julkaistujen sarakkeiden luetteloimiseksi ajetaan seuraava T-SQL

1
select object_name(object_id), name from SYS.sarakkeet sc, jossa sc.is_replicated = 1;

julkaisut

julkaisu on looginen kokoelma artikkeleita tietokannasta. Olion avulla voidaan määritellä ja määrittää artikkelin ominaisuudet korkeammalla tasolla niin, että ominaisuudet periytyvät kaikille kyseisen ryhmän artikkeleille.

1
Exec sp_helppublication;

Julkaisijatietokanta

julkaisija on tietokanta, joka sisältää luettelon SQL Server-replikaatioartikkeleiksi nimetyistä olioista, joita kutsutaan julkaisutietokannaksi. Kustantajalla voi olla yksi tai useampia julkaisuja. Jokainen julkaisija määrittelee tiedon etenemismekanismin luomalla useita sisäisiä replikointisysteemejä.

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. Julkaisijalla voi olla yksi tai useampia julkaisuja, joista jokainen määrittelee loogisesti toisiinsa liittyvän objektien ja tietojen joukon toistettavaksi.

jakelija

jakelija on tietokanta, joka toimii varastona yhteen tai useampaan julkaisijaan liittyville replikointikohtaisille tiedoille. Monissa tapauksissa jakelija on yksi tietokanta, joka toimii sekä julkaisijana että jakelijana. SQL Server-replikaation yhteydessä tätä kutsutaan yleisesti ”paikalliseksi jakelijaksi”. Toisaalta, jos se on määritetty erilliselle palvelimelle, niin sitä kutsutaan ”etäjakelijaksi”. Jokainen Julkaisija liittyy yhteen tietokantaan, joka tunnetaan nimellä ” distribution database ”eli”Distributor”.

jakelutietokanta tunnistaa ja tallentaa SQL Serverin replikointitilatiedot, julkaisua koskevat metatiedot ja toimii joissain tapauksissa jonona julkaisijalta tilaajille siirtyville tiedoille.

replikointimallista riippuen jakelija saattaa myös olla vastuussa siitä, että julkaisun tilanneille tilaajille ilmoitetaan, että artikkeli on muuttunut. Myös jakelutietokanta ylläpitää tietojen eheyttä.

Jakelutietokannat

kullakin jakelijalla on oltava vähintään yksi jakelutietokanta. Jakelutietokanta koostuu artikkelien yksityiskohdista, replikoinnista metatiedoista ja aineistoista. Jakelijalla voi olla useampi kuin yksi jakelutietokanta, mutta kaikkien yhdelle julkaisijalle määriteltyjen julkaisujen on käytettävä samaa jakelutietokantaa.

selvittää, onko …

  • palvelin jakelija vai ei?

    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. Tilaaja voi saada tietoja yhdeltä tai useammalta kustantajalta ja julkaisulta. Tilaaja voi myös siirtää datamuutokset takaisin julkaisijalle tai julkaista tiedot uudelleen muille tilaajille riippuen replikointimallin ja-mallin tyypistä.

1
Exec sp_helpsubscriberinfo;

tilaukset

tilaaja pyytää julkaisua toimitettavaksi tilaajalle. Tilaus määrittelee, mitä julkaisutietoja vastaanotetaan, missä ja milloin.

on kahdenlaisia liittymiä: push-liittymiä ja pull-liittymiä

  • Push-liittymiä: jakelija päivittää suoraan Tilaajatietokannan tiedot
  • Pull-liittymiä: Tilaajan on määrä tarkistaa säännöllisesti jakelijalta, onko uusia muutoksia saatavilla, ja päivittää sitten itse tilaustietokannan tiedot.
1
Exec sp_helpsubscription;

tilaustietokannat

replikointimallin kohdetietokantaa kutsutaan tilaustietokannaksi.

Replikaatioagentit

SQL Server-replikaatio käyttää ennalta määriteltyä joukkoa itsenäisiä ohjelmia ja tapahtumia kutsutaan agenteiksi suorittamaan dataan liittyviä tehtäviä. Oletusarvon mukaan SQL Server replikointiagentit toimivat aikataulutettuina tehtävinä SQL Server Agent-komennolla. Replikaatioagentteja voidaan ajaa myös komentoriviltä ja sovelluksilla, jotka käyttävät replikaation Hallintaobjekteja (RMO). SQL Serverin replikaatioaineita voidaan seurata ja hallinnoida Replikaatiomonitorin ja SQL Server Management Studion avulla.

Replikaatiovedosagentti

Replikaatiovedosagenttia käytetään kaikentyyppisen SQL Server-replikointitekniikan kanssa, koska se tarjoaa tarvittavat tiedot julkaisutietokannan ja tilaustietokannan alkuperäisen tietojen synkronoinnin suorittamiseen. Se valmistelee julkaistujen artikkelien skeema-ja alkutiedot, tilannekuvatiedostot ja tallentaa tiedot synkronointityypistä jakelutietokantaan.

Lokinlukija

Lokinlukija-ainetta käytetään vain transaktioreplikaation yhteydessä. Se siirtää replikaatiotapahtumat julkaisutietokannan Online-tapahtumalokista jakelutietokantaan.

jakauma-agentti

jakauma-ainetta käytetään vain Replikaatiokuvauksessa ja transaktiossa SQL Server-replikaatiossa. Tämä agentti soveltaa alkuperäisen replikaation tilannetietokantaan ja myöhemmin tietojen muutokset seurataan ja tallennetaan jakelutietokantaan ja sovelletaan tilaustietokantaan.

Yhdistämismallia

Yhdistämismallia käytetään yhdistämismallin kanssa. Oletuksena Yhdistämisagentti lataa muutokset tilaajalta julkaisijalle ja lataa muutokset julkaisijalta tilaajalle. Jokaisella tilauksella on oma Yhdistämisagentti, joka yhdistää sekä julkaisijan että tilaajan ja päivittää molemmat. Yhdistämisagentti toimii joko push-liittymien jakelijana tai pull-liittymien tilaajana. Tässä synkronointi on kaksisuuntainen. Datakonflikteja käsittelee joukko käynnistimiä, jotka tukevat koko prosessia

Yhteenveto

tähän mennessä olemme nähneet läpikäynnin joistakin SQL Server-replikaation tärkeistä käsitteistä. Myös, T-SQL skriptit näytetään kysely järjestelmätaulukot ja replikointi tallennetut menettelyt vastaamaan useimpiin yleisesti kysyttyyn kysymykseen SQL Server replikointi.

aion keskustella lisää SQL Server replikaatiosta tulevissa artikkeleissa. Jos sinusta tuntuu, että jotain voidaan parantaa tässä artikkelissa, voit vapaasti jättää kommenttisi alle…

Sisällysluettelo

SQL Server replikaatio: yleiskatsaus komponentteihin ja topografiaan

SQL replikaatio: perusasetukset ja kokoonpano

miten lisätä/pudottaa artikkeleita SQL Serverin olemassa olevista julkaisuista

miten tehdä nopea arvioitu vertailu kahden suuren SQL Server-tietokannan tiedoista nähdäksesi, ovatko ne yhtä suuret

SQL Server transaktioreplikaatio: Miten aloittaa tilaus uudelleen SQL Server-tietokannan varmuuskopioinnin avulla

miten määrittää mukautettu SQL Server-transaktioreplikaatiomalli keskitetyn tilaajan ja useiden julkaisijoiden tietokantojen kanssa

miten määrittää mukautettu SQL Server transaktioreplikaatio keskitetyn julkaisijan ja useiden tilaajien tietokantojen kanssa

miten perustaa DDL-ja DML SQL Server-tietokannan transaktioreplikaatioratkaisu

miten määrittää cross-platform transactional SQL Server replikation for database raportointi Linuxissa

SQL Server-tietokannan migraatiot ilman tietojen häviämistä and zero downtime

käyttämällä transaktiotietojen replikointia toistamaan ja testaamaan tuotantokuormia lavastuspalvelimella

miten SQL Server-tietokannan replikointi asetetaan raportointipalvelimelle

SQL Server transaktioreplikaatio: Miten tilaus aloitetaan uudelleen käyttämällä ”Replikointitukea vain” –TBA

SQL Server Replikation Monitoring and setting alerts using PowerShell –TBA

  • Author
  • Recent Posts
  • Prashanth Jayaram
    I ’ m a database Technologist having 11+ years of rich, hands-on experience on database Technologies. Olen Microsoft Certified Professional ja tukena tutkinto Master of Computer Application.
    erikoisuuteni on & korkean käytettävyyden ratkaisujen ja monialustaisen DB-migraation toteuttaminen. Tällä hetkellä toimivia teknologioita ovat SQL Server, PowerShell, Oracle ja MongoDB.
    View all posts by Prashanth Jayaram

    Prashanth Jayaram
    Uusimmat viestit Prashanth Jayaram (see all)
    • a quick overview of database audit in SQL – January 28, 2021
    • How to set up Azure Data Sync between Azure SQL databases and On-Premises SQL Server – January 20, 2021
    • How to perform Azure SQL database Import/Export operations using PowerShell – January 14, 2021