1. Uvod v SQL Server Podvajanje
1.1 Kaj je SQL Server Replikacija?
SQL Server Replikacija je niz tehnologij za kopiranje in distribucijo podatkov in objektov baz podatkov iz ene baze podatkov v drugo, nato pa za sinhronizacijo med bazami podatkov za ohranjanje doslednosti. Ta funkcija vam omogoča ustvarjanje in vzdrževanje več kopij podatkov na različnih strežnikih in lokacijah, kar zagotavlja razpoložljivost in zanesljivost podatkov.
1.2 Namen in koristi replikacije
SQL Server Replikacija služi številnim kritičnim poslovnim potrebam in zagotavlja pomembne prednosti za upravljanje baz podatkov in distribucijo podatkov:
- Porazdelitev podatkov po lokacijah: Replikacija vam omogoča skupno rabo podatkov med regionalnimi pisarnami ali globalnimi lokacijami, kar izboljša operativno učinkovitost z zagotavljanjem lokalnega dostopa do potrebnih podatkov. To zmanjša omrežno zakasnitev in zagotavlja boljšo zmogljivost za geografsko porazdeljene uporabnike.
- Visoka dostopnost in okrevanje po katastrofi: Z vzdrževanjem replik kritičnih podatkov na več strežnikih replikacija zagotavlja redundanco, ki ščiti pred okvarami strojne opreme in katastrofami. V primeru okvare primarnega strežnika lahko replicirane kopije služijo kot rezervni viri, kar zmanjša izpade in izgubo podatkov.
- Uravnoteženje obremenitve in skalabilnost: Replikacija porazdeli operacije branja med več strežnikov in tako prepreči, da bi kateri koli posamezen strežnik postal ozko grlo. Ta pristop izboljša delovanje sistema in omogoča horizontalno skaliranje vaše infrastrukture, ko naraščajo podatki in zahteve uporabnikov.
- Poročanje in analitika v realnem času: Prenašanje poizvedb za poročanje in analitiko na replicirane strežnike zmanjša obremenitev produkcijskih baz podatkov. Uporabniki lahko izvajajo kompleksne analitične poizvedbe na podatkih skoraj v realnem času, ne da bi to vplivalo na operacijske sisteme, kar zagotavlja tako zmogljivost kot ažurnost podatkov.
- Integracija in konsolidacija podatkov: Replikacija omogoča združevanje podatkov iz različnih virov v en sam konsolidiran pogled. To je še posebej dragoceno za organizacije z več podružnicami, ki morajo združevati podatke na sedežu podjetja, ali za ustvarjanje centraliziranih podatkovnih skladišč iz porazdeljenih operacijskih sistemov.
2. SQL Server Arhitektura in komponente replikacije
SQL Server Arhitektura replikacije je sestavljena iz več medsebojno povezanih komponent, ki skupaj delujejo pri distribuciji in sinhronizaciji podatkov v vaši infrastrukturi baze podatkov. Ta razdelek raziskuje ključne komponente, vključno z založniki, distributerji, naročniki, publikacijami, članki, naročninami in agenti, ki usklajujejo pretok podatkov med njimi:
- Založnik: Založnik je SQL Server primerek, ki gosti eno ali več baz podatkov, ki vsebujejo podatke, ki jih je treba replicirati. Služi kot avtoritativni vir v topologiji replikacije.
- Distributer: Distributer je SQL Server Primerek, ki upravlja pretok podatkov med založniki in naročniki. Primerek distributerja gosti distribucijsko bazo podatkov, ki shranjuje metapodatke replikacije in transakcije.
- Naročnik: Naročnik je SQL Server instanca, ki prejema in shranjuje replicirane podatke od založnikov. En sam naročniški primerek lahko gosti več naročniških baz podatkov, pri čemer vsaka prejema podatke iz različnih publikacij.
- Objava: Publikacija določa, kateri podatki bodo replicirani in kako bodo distribuirani naročnikom. Združuje povezane članke in določa metodologijo replikacije, ki velja za vse vsebovane objekte.
- Člen: Članek je temeljni gradnik replikacije, ki predstavlja posamezen objekt baze podatkov, ki bo distribuiran naročnikom.
- Naročnina: Naročnina vzpostavlja odnos med publikacijo in naročnikom ter določa, kako in kdaj so podatki dostavljeni v ciljno zbirko podatkov.
- Agenti: Agenti so specializirani procesi, ki opravljajo dejansko delo premikanja in sinhronizacije podatkov med komponentami replikacije.
3. Vrste SQL Server Podvajanje
SQL Server ponuja več vrst replikacije, od katerih je vsaka zasnovana za specifične scenarije distribucije podatkov in poslovne zahteve. Razumevanje značilnosti, prednosti in omejitev posamezne vrste je bistvenega pomena za izbiro pravega pristopa za vaše okolje.
3.1 Replikacija posnetkov
Replikacija posnetkov naredi posnetek podatkov, ki bodo objavljeni ob določenem času, nato pa naročnikom distribuira natančno celotno kopijo. Ne spremlja nadaljnjih sprememb, dokler ni ustvarjen naslednji posnetek. Replikacija posnetkov je najpreprostejša oblika replikacije, zaradi česar je primerna za scenarije, kjer se podatki redko spreminjajo ali kjer so nekoliko zastareli podatki sprejemljivi.
Pogosti primeri uporabe vključujejo distribucijo referenčnih podatkov, kot so ceniki ali menjalni tečaji, ki se periodično posodabljajo, zagotavljanje začetnih naborov podatkov za podatkovna skladišča in scenarije, kjer je popolna osvežitev podatkov boljša od sledenja posameznim spremembam. Podjetje lahko na primer uporabi replikacijo posnetkov za dnevno distribucijo posodobljenih katalogov izdelkov podružnicam.
Glavne prednosti replikacije posnetkov so preprostost, nizke zahteve za vzdrževanje in možnost replikacije podatkov brez primarnih ključev. Vendar pa ima znatne pomanjkljivosti, vključno z velikim vplivom pri ustvarjanju posnetkov zaradi zaklepanja tabel, visoko zakasnitvijo med posodobitvami in neučinkovitostjo pri velikih naborih podatkov ali pogosto spreminjajočih se podatkih. Vse spremembe, opravljene pri naročnikih, se izgubijo, ko se uporabi naslednji posnetek.
3.2 Transakcijska replikacija
Transakcijska replikacija dostavlja spremembe od založnika do naročnikov skoraj v realnem času z replikacijo posameznih transakcij, ko se zgodijo. Začne se z začetnim posnetkom za določitev osnovne vrednosti, nato pa nenehno spremlja dnevnik transakcij za spremembe objavljenih člankov in jih postopoma dostavlja naročnikom.
Transakcijska replikacija je idealna za scenarije med strežniki, ki zahtevajo visoko prepustnost in nizko zakasnitev. Pogosti primeri uporabe vključujejo izboljšanje skalabilnosti in razpoložljivosti z razbremenitvijo operacij branja na naročniške strežnike, podporo skladiščenju podatkov in poročanju s podatki skoraj v realnem času, integracijo podatkov z več lokacij na centralno lokacijo in razbremenitvijo paketne obdelave na namenske strežnike. Platforma za e-trgovino lahko na primer uporablja transakcijsko replikacijo za vzdrževanje sinhroniziranih podatkov o zalogah v regionalnih podatkovnih bazah.
Prednosti transakcijske replikacije vključujejo nizko zakasnitev dostave podatkov, visoko prepustnost za velike količine transakcij in možnost izvajanja nerepliciranih sprememb pri naročnikih. Slabosti vključujejo večjo kompleksnost v primerjavi z replikacijo posnetkov, zahtevo po primarnih ključih v repliciranih tabelah in možnost prekinitve replikacije, če pride do konfliktov, kot so kršitve primarnega ključa pri naročnikih.
3.3 Replikacija z združevanjem
Replikacija z združevanjem je zasnovana posebej za okolja, kjer morajo naročniki delati brez povezave ali s prekinitvami povezave in nato sinhronizirati spremembe, ko je povezava na voljo. Ta vrsta replikacije omogoča neodvisno spreminjanje podatkov tako pri založniku kot pri naročnikih, sledenje spremembam z uporabo sprožilcev in tabel metapodatkov ter samodejno združevanje sprememb med sinhronizacijo.
Replikacija z združevanjem je zasnovana za mobilne aplikacije in porazdeljena strežniška okolja, kjer prihaja do avtonomnih sprememb. Primeri uporabe vključujejo avtomatizacijo prodajne sile, kjer mobilni uporabniki delajo brez povezave in se sinhronizirajo pozneje, prodajne sisteme, ki delujejo neodvisno in periodično konsolidirajo podatke, ter porazdeljene aplikacije, kjer mora več lokacij posodabljati skupne podatke. Na primer, trgovska veriga lahko uporablja replikacijo z združevanjem, tako da lahko vsaka trgovina upravlja lokalno zalogo, medtem ko se sinhronizira s centralnim skladiščnim sistemom.
Prednosti replikacije z združevanjem vključujejo podporo za avtonomne naročnike, ki lahko izvajajo spremembe, toleranco za občasno omrežno povezljivost in prilagodljivo reševanje konfliktov. Slabosti vključujejo večjo kompleksnost nastavitve in vzdrževanja, stroške delovanja zaradi sledenja metapodatkov in sprožilcev, dodajanje stolpcev uniqueidentifier v tabele in možnost konfliktov, ki zahtevajo upravljanje in reševanje.
3.4 Replikacija med vrstniki
Replikacija med vrstniki temelji na transakcijski replikaciji in omogoča, da več primerkov strežnika (tri ali več vozlišč) delujejo kot enakopravni vrstniki, pri čemer vsako vozlišče hkrati služi kot založnik in naročnik. V tej topologiji vsa vozlišča vzdržujejo enake kopije podatkov in lahko obravnavajo tako branje kot pisanje, kar zagotavlja resnično porazdeljeno okolje z več glavnimi strežniki.
Replikacija med vrstniki je primerna za aplikacije, ki zahtevajo skaliranje bralnih operacij in visoko razpoložljivost. Primeri uporabe vključujejo spletne aplikacije, ki distribuirajo poizvedbe po katalogih po več vozliščih, hkrati pa ohranjajo dosledne podatke, scenarije, ki zahtevajo vzdrževanje ali nadgradnje brez izpada z izklopom posameznih vozlišč, in globalne aplikacije s podatkovnimi centri v različnih regijah. Na primer, svetovna organizacija za podporo programske opreme lahko uporablja replikacijo med vrstniki med pisarnami v različnih časovnih pasovih, tako da ima vsaka lokacija lokalni dostop do trenutnih podatkov.
Prednosti replikacije med vrstniki vključujejo izboljšano zmogljivost branja zaradi skaliranja, večjo razpoložljivost z več aktivnimi vozlišči in skoraj realnočasovno doslednost podatkov. Slabosti vključujejo zahtevo po izdaji Enterprise Edition, kompleksnost upravljanja topologij z več vozlišči, potrebo po identični shemi in podatkih v vseh vozliščih ter možnost konfliktov, če operacije pisanja niso pravilno razdeljene.
3.5 Dvosmerna replikacija
Dvosmerna replikacija je specifična topologija transakcijske replikacije, zasnovana posebej za okolja z dvema strežnikoma, kjer si morata oba strežnika izmenjevati spremembe. Vsak strežnik objavi podatke in se naroči na iste podatke iz drugega strežnika, kar ustvari preprost dvosmerni tok sinhronizacije. Čeprav lahko replikacija med vrstniki podpira tudi dve vozlišči, dvosmerna replikacija zagotavlja izboljšano delovanje za ta specifični scenarij.
Dvosmerna replikacija je primerna za scenarije, ki zahtevajo dva aktivna strežnika s sinhroniziranimi podatki, kot so konfiguracije aktivno-aktivno za visoko razpoložljivost ali geografsko porazdeljene aplikacije, kjer vsako mesto potrebuje lokalni dostop za pisanje. Topologija zahteva skrbno načrtovanje aplikacij za particioniranje posodobitev podatkov in preprečevanje konfliktov.
Prednosti vključujejo optimizirano delovanje za scenarije z dvema strežnikoma, enostavnejšo konfiguracijo v primerjavi z replikacijo med vrstniki, sinhronizacijo v skoraj realnem času in nižje stroške kot pri replikaciji z združevanjem. Slabosti vključujejo omejitev na natanko dva strežnika, pomanjkanje vgrajenega reševanja konfliktov, ki zahteva skrbno načrtovanje aplikacij, in potrebo po ustreznih strategijah particioniranja za preprečevanje konfliktov.
3.6 Posodobljive naročnine
Posodobljive naročnine razširjajo transakcijsko replikacijo, da naročnikom omogočajo občasno spreminjanje repliciranih podatkov, ki se nato razširijo nazaj do založnika in drugih naročnikov. Za razliko od replikacije z združevanjem ali topologij enakovrednih omrežij, zasnovanih za pogoste dvosmerne posodobitve, so posodabljajoče naročnine namenjene scenarijem, kjer je primarni tok podatkov enosmeren (od založnika do naročnikov), vendar morajo naročniki občasno izvesti popravke ali posodobitve.
Posodobljive naročnine so primerne za scenarije, kjer se večina posodobitev izvede pri založniku, občasne posodobitve pa so potrebne tudi pri naročnikih, na primer v terenskih pisarnah, ki v prvi vrsti berejo podatke, vendar morajo izvajati lokalne popravke ali posodobitve. Topologija zahteva skrbno načrtovanje za zmanjšanje konfliktov in zagotovitev doslednosti podatkov.
Glavne prednosti vključujejo omogočanje omejenega števila operacij pisanja pri naročnikih ob hkratnem ohranjanju zmogljivosti transakcijske replikacije. Slabosti vključujejo večjo kompleksnost, možnost konfliktov, ki zahtevajo reševanje, stroške delovanja zaradi dvofaznega protokola potrjevanja v načinu takojšnjega posodabljanja in zahtevo, da imajo vse replicirane tabele primarne ključe.
3.7 Primerjava različnih vrst replikacij
| Vrsta replikacije | Posodobi čas | Število založnikov | smer | Uporabite scenarije |
|---|---|---|---|---|
| Posnetek | Točka v času | 1 | One Direction (Založnik → Naročniki) | Redko spreminjajoči se referenčni podatki (ceniki, menjalni tečaji) |
| Transakcijski | Skoraj v realnem času | 1 | One Direction (Založnik → Naročniki) | Scenariji z visoko prepustnostjo (zaloga e-trgovine, skladiščenje podatkov, poročanje) |
| Spoji | Periodično (ko je priključeno) | 1 | Dvosmerno (Založnik ↔ Naročniki) | Mobilne aplikacije, delavci brez povezave (avtomatizacija prodajne sile, terenske storitve) |
| Peer-to-Peer | Skoraj v realnem času | Večkratno (3 ali več) | Dvosmerno (vsa vozlišča) | Globalne uvedbe v več podatkovnih centrih (svetovne pisarne z lokalnim dostopom za branje in pisanje) |
| Dvosmerna | Skoraj v realnem času | 2 | Dvosmerno (oba strežnika) | Konfiguracije z dvema aktivnima podatkovnima središčema (visoka razpoložljivost dveh lokacij) |
| Posodobljive naročnine | Skoraj v realnem času | 1 | Predvsem v eno smer (občasne posodobitve v obratni smeri) | Podružnice, ki v glavnem berejo, a občasno posodabljajo (lokalni popravki) |
4. Nastavitev SQL Server Podvajanje
4.1 Predpogoji in zahteve
4.1.1 Zahteve programske opreme
SQL Server replikacija zahteva združljivost SQL Server različice med vsemi udeleženci v topologiji. Različica distributerja mora biti enaka ali višja od različice založnika, naročnik pa je lahko znotraj dveh različic založnika. Na primer, SQL Server Založnik iz leta 2016 lahko replicira v SQL Server Naročniki iz leta 2012, 2014, 2016, 2017 ali 2019.
4.1.2 Zahteve za dovoljenja
Konfiguriranje replikacije zahteva posebna dovoljenja na vsaki ravni. Člani fiksne strežniške vloge sysadmin lahko izvajajo vsa opravila konfiguracije replikacije. Za bolj natančna dovoljenja morajo biti uporabniki člani vloge baze podatkov db_owner za baze podatkov založnika in naročnika.
4.2 1. korak: Konfiguracija distribucije
Konfiguracija distribucije je prvi korak pri nastavitvi SQL Server podvajanje.
Za konfiguracijo distribucije z uporabo SQL Server Management Studio:
- Povežite se z SQL Server primer v SQL Server Studio za upravljanje.
- V Raziskovalcu predmetov z desno tipko miške kliknite Podvajanje mapo in izberite Konfiguriraj distribucijo.
- V čarovniku za konfiguracijo distribucije kliknite Naslednji na pozdravni strani.
- o Distributer Na strani izberite eno od naslednjih možnosti glede na vaše topološke zahteve:
- Lokalni distributerIzberite »ServerName bo deloval kot svoj lastni distributer«; SQL Server »Ustvaril bo distribucijsko bazo podatkov in dnevnik«, če želite, da se založnik in distributer izvajata v istem primerku (trenutnem primerku). Ta konfiguracija je preprostejša za nastavitev in primerna za manjša okolja ali kadar bi omrežna zakasnitev med založnikom in distributerjem povzročala težave.
- Oddaljeni distributerIzberite »Uporabi naslednji strežnik kot distributerja« in kliknite Dodaj Če želite obdelavo distribucije prenesti na ločen primerek, določite oddaljeni strežnik distributerja. Ta konfiguracija izboljša zmogljivost pri velikih količinah replikacije, saj delovno obremenitev porazdeli na več strežnikov. Navesti boste morali ime oddaljenega distributerja in geslo, ki ga bo založnik uporabil za povezavo z distributerjem.
- klik Naslednji za določitev lokacije mape posnetkov. Za zagotovitev dostopnosti po omrežju uporabite pot UNC (na primer \\imestrežnika\deljena_mapa) namesto lokalne poti.
- o Distribucijska baza podatkov sprejmite privzeto ime distribucijske baze podatkov (običajno »distribucija«) ali določite ime po meri, nato pa konfigurirajte lokacije podatkovnih in dnevniških datotek.
- o Založniki preverite, ali je trenutni strežnik omogočen kot založnik. Če trenutni strežnik konfigurirate kot distributerja, lahko dodate dodatne založnike, ki bodo uporabljali tega distributerja.
- Preglejte dejanja čarovnika in kliknite Konec za konfiguracijo distribucije.
4.3 2. korak: Ustvarite publikacijo
Po konfiguraciji distribucije je naslednji korak ustvarjanje publikacije, ki določa, kateri podatkovni objekti bodo replicirani naročnikom.
Za ustvarjanje publikacije z uporabo SQL Server Management Studio:
- V Raziskovalcu predmetov razširite Podvajanje mapa.
- Z desno tipko miške kliknite Lokalne publikacije in izberite Nova publikacija.
- Zažene se čarovnik za novo publikacijo; kliknite Naslednji na pozdravni strani.
- Izberite zbirko podatkov, ki jo želite objaviti, iz Publikacijska baza podatkov stran. To samodejno omogoči objavljanje v izbrani zbirki podatkov.
- o Vrsta objave stran, izberite vrsto replikacije: Objava posnetka, Transakcijska publikacija, Publikacija med vrstnikiali Združi publikacijo.
- o Članki stran, razširite Mize vozlišče in izberite tabele, ki jih želite vključiti kot članke.
- Po želji razširite Shranjeni postopki, Ogledovali druge vrste objektov za vključitev dodatnih člankov.
- klik Lastnosti članka za konfiguracijo filtriranja ali drugih nastavitev, specifičnih za članek.
- o Filtriraj vrstice tabele stran, po potrebi dodajte filtre vrstic.
- o Agent za posnetke izberite, kdaj želite ustvariti posnetek: takoj, ob določenem času ali po urniku.
- o Varnost agentov Na strani določite varnostni kontekst za agenta za posnetke.
- o Dejanja čarovnika stran, izberite Ustvari publikacijo.
- Vnesite ime publikacije in kliknite Konec.
4.4 3. korak: Ustvarite naročnino
Po ustvarjanju publikacije je naslednji korak ustvarjanje naročnin, ki publikacijo povezujejo z bazami podatkov naročnikov.
Naročnine so lahko potisne naročnine (upravlja jih distributer) ali vlečne naročnine (upravlja jih naročnik). Ključni razliki sta v tem, kje ustvarite naročnino in katero lokacijo agenta izberete, kar določa dejanje naročnine (potisna ali vlečna naročnina).
Za potisno naročnino (upravlja distributer):
- o Založnik strežnik, razširitev Podvajanje -> Lokalne publikacije.
- Z desno miškino tipko kliknite publikacijo in izberite Nove naročnine.
Za naročnino na prenos (upravlja naročnik):
- o naročnik strežnik, razširitev Podvajanje, desni klik Lokalne naročninein izberite Nove naročnine.
- o Objava stran, kliknite Najdi SQL Server Založba in se povežite s strežnikom založnika.
Pogosti koraki čarovnika za obe vrsti naročnin:
- V čarovniku za novo naročnino kliknite Naslednji na pozdravni strani.
- Izberite publikacijo in kliknite Naslednji.
- o Lokacija distribucijskega agenta stran, izberite lokacijo agenta:
- Potisna naročninaIzberite »Zaženi vse agente pri distributerju« – distributer bo spremembe poslal naročnikom.
- Prevzem naročnineIzberite »Zaženi vsakega agenta pri njegovem naročniku« – vsak naročnik bo spremembe prevzel od distributerja.
- o Naročniki stran, izberite obstoječe naročniške strežnike ali kliknite Dodaj naročnika da dodamo nove.
- Za vsakega naročnika izberite ciljno bazo podatkov ali ustvarite novo bazo podatkov. Opomba: Naročniška baza podatkov se mora razlikovati od založnikove baze podatkov, tudi če se uporablja ista SQL Server na primer.
- o Varnost distribucijskega agenta Na strani kliknite gumb lastnosti za vsako naročnino, da konfigurirate varnostni kontekst.
- o Urnik sinhronizacije izberite neprekinjeno sinhronizacijo ali načrtovano sinhronizacijo.
- o Inicializacija naročnin stran, izberite Takoj za inicializacijo med dokončanjem čarovnika ali Ob prvi sinhronizaciji.
- Preglejte dejanja čarovnika in kliknite Konec.
5. Spremljanje in upravljanje SQL Server Podvajanje
5.1 Spremljanje replikacije z nadzornikom replikacije
Za zagon nadzornika replikacije:
- In SQL Server Management Studio, razširitev Podvajanje v Raziskovalcu objektov.
- Z desno tipko miške kliknite Podvajanje in izberite Zaženite nadzornik replikacije.
- Če ni registriranih nobenih založnikov, kliknite Dodaj založnika v levem podoknu.
- Izberite Dodaj SQL Server Založba in se povežite s strežnikom založnika.
- Založnik se prikaže v levem podoknu z razširljivimi vozlišči za publikacije in naročnine.
5.2 Spremljanje delovanja
5.2.1 Zakasnitev monitorja
Zakasnitev replikacije je časovni zamik med spremembo, ki se pojavi pri založniku, in njeno uveljavitvijo pri naročniku. Spremljajte zakasnitev, da zagotovite, da ažurnost podatkov ustreza poslovnim zahtevam.
Za ogled meritev zakasnitve na zavihku Vse naročnine uporabite Nadzornik replikacije. Stolpec Zakasnitev prikazuje povprečno zakasnitev v sekundah. Za transakcijsko replikacijo sledilni žetoni zagotavljajo natančne meritve zakasnitve z vstavljanjem transakcij označevalcev, ki se spremljajo prek replikacijskega cevovoda.
Za uporabo sledilnih žetonov:
- V Nadzorniku replikacije izberite transakcijsko publikacijo.
- Kliknite Žetoni sledilnika tab.
- klik Vstavi sledilnik za vbrizgavanje marker transakcije.
- Spremljajte žeton, ko potuje od založnika do distributerja in naročnika.
- Oglejte si čas, potreben za vsak segment, da prepoznate ozka grla.
5.2.2 Spremljanje pretočnosti
Pretočnost meri količino podatkov, ki se replicirajo skozi čas, običajno izraženo kot transakcije na sekundo ali ukazi na sekundo. Spremljajte pretočnost, da zagotovite, da replikacija sledi dejavnosti založnika.
Čeprav Replication Monitor zagotavlja osnovno stanje sinhronizacije, hitrost dostave in podrobne metrike pretočnosti niso vidne v grafičnem uporabniškem vmesniku. Za spremljanje pretočnosti uporabite poizvedbe T-SQL v distribucijski bazi podatkov:
USE distribution
GO
-- Direct join to avoid subquery
SELECT TOP 20
h.time AS [Time],
a.name AS [Agent Name],
h.runstatus AS [Status],
h.delivered_transactions AS [Delivered Transactions],
h.delivered_commands AS [Delivered Commands],
h.delivery_rate AS [Delivery Rate (commands/sec)],
h.delivery_latency AS [Delivery Latency (ms)],
h.comments AS [Comments]
FROM MSdistribution_history h
JOIN MSdistribution_agents a ON h.agent_id = a.id
WHERE a.name LIKE '%MyPublication2%'
AND h.runstatus IN (2, 3, 4, 6)
ORDER BY h.time DESC
GO
Kode stanja: 1 = Začetek, 2 = V teku, 3 = Uspešno, 4 = Mirovanje, 5 = Ponovni poskus, 6 = Neuspešno. Primerjajte stopnjo dostave s stopnjami transakcij založnika, da ugotovite situacije, v katerih replikacija zaostaja. Števci učinkovitosti delovanja v Monitor uspešnosti sistema Windows zagotovite dodatne metrike prepustnosti za vsakega replikacijskega agenta.
5.2.3 Prepoznavanje ozkih grl
Ozka grla pri replikaciji se lahko pojavijo na več točkah v topologiji. Pri založniku lahko predolg čas ustvarjanja posnetkov ali zamude agenta bralnika dnevnikov kažejo na omejitve virov. Med replikacijskimi dejavnostmi spremljajte procesor, pomnilnik in V/I diska pri založniku.
Pri distributerju preverite, ali se v distribucijski bazi podatkov kopičijo transakcije. Veliko število nerazporejenih ukazov kaže, da distributer ne more slediti dostavi. Spremljajte vire strežnika distributerja in razmislite o uporabi namenskega oddaljenega distributerja za scenarije z veliko količino pošiljk.
Pri naročniku je lahko počasno uvajanje sprememb posledica nezadostnih virov, manjkajočih indeksov ali omejitev, ki upočasnjujejo operacije vstavljanja. Spremljajte izkoriščenost virov naročnika in delovanje poizvedb, ko se izvaja distribucijski agent. Omejitve pasovne širine omrežja med komponentami povzročajo tudi ozka grla, zlasti pri velikih količinah podatkov.
5.3 Upravljanje replikacijskih agentov
5.3.1 Zagon in zaustavitev agentov
Če želite zagnati ali ustaviti replikacijskega agenta:
- In SQL Server Management Studio, razširitev SQL Server Agent -> Delovna mesta.
- Poiščite opravilo replikacijskega agenta (imena običajno vključujejo podatke o publikaciji in naročniku).
- Z desno miškino tipko kliknite opravilo in izberite Začetek dela or Ustavi opravilo.
5.3.2 Konfiguracija profilov agentov
Profili agentov vsebujejo nabore parametrov, ki nadzorujejo vedenje agentov. SQL Server ponuja privzete profile, optimizirane za pogoste scenarije, in lahko ustvarite profile po meri za posebne potrebe.
Če želite spremeniti profile agentov:
- V Raziskovalcu predmetov razširite Podvajanje.
- Z desno tipko miške kliknite Podvajanje in izberite Lastnosti distributerja.
- Kliknite Privzete nastavitve profila .
- V spustnem meniju izberite vrsto agenta (posnetek, bralnik dnevnika, distribucija ali združevanje).
- Izberite profil in kliknite Nepremičnine za ogled vrednosti parametrov.
- klik Nov profil ustvariti profil po meri na podlagi obstoječega.
- Po potrebi spremenite parametre in kliknite OK.
Profil uporabite za agenta tako, da uredite lastnosti naročnine in izberete želeni profil v spustnem meniju Profil agenta.
5.3.3 Parametri in nastavitve agenta
Parametri agenta natančno prilagodijo delovanje in vedenje. Ključni parametri za distribucijskega agenta vključujejo CommitBatchSize (število transakcij, uporabljenih na potrditev), CommitBatchThreshold (število ukazov pred potrditvijo), SubscriptionStreams (vzporedne povezave za hitrejšo dostavo) in QueryTimeout (časovna omejitev za ukaze).
Za agenta za branje dnevnikov so pomembni parametri ReadBatchSize (število prebranih transakcij na pregled), ReadBatchThreshold (ukazi pred dostavo) in PollingInterval (zamik med pregledi dnevnikov). Te parametre prilagodite glede na količino transakcij in zahteve glede zakasnitve.
5.4 Premisleki glede varnostnega kopiranja in obnavljanja
Varnostno kopiranje baz podatkov, ki sodelujejo pri replikaciji, zahteva posebne premisleke. Za bazo podatkov založnika so redne popolne varnostne kopije in varnostne kopije dnevnika transakcij bistvenega pomena. Pri varnostnem kopiranju baz podatkov v transakcijski replikaciji označite varnostno kopijo baze podatkov za podporo replikacije z možnostjo WITH REPLICATION. Redno varnostno kopirajte distribucijsko bazo podatkov, da zaščitite konfiguracijo replikacije.
Pri obnavljanju baze podatkov založnika na isti strežnik z istim imenom uporabite možnost WITH KEEP_REPLICATION, da ohranite stanje replikacije. Ta možnost zagotavlja, da transakcije, ki jih agent bralnika dnevnikov še ni obdelal, ostanejo označene za replikacijo, kar omogoča samodejno nadaljevanje replikacije brez ponovne inicializacije naročnin.
V scenarijih obnovitve po katastrofi, kjer varnostne kopije niso na voljo, so poškodovane ali so datoteke baze podatkov poškodovane, so morda potrebna specializirana orodja za obnovitev. DataNumen SQL Recovery lahko izvleče podatke iz poškodovanih ali nedostopnih datotek MDF in NDF, kar predstavlja zadnjo možnost, ko standardni postopki obnovitve ne uspejo.
Za več podrobnosti o SQL Server varnostno kopijo, glejte našo celovit vodnik.
6. Pogosto zastavljena vprašanja (FAQ)
V: Kakšna je razlika med posnetkom stanja in transakcijsko replikacijo?
A: Replikacija posnetkov ustvari popolno kopijo podatkov v določenem trenutku in jo uporabi za naročnika, kar je primerno za redko spreminjajoče se podatke. Transakcijska replikacija se začne z začetnim posnetkom in nato neprekinjeno replicira posamezne transakcije, ko se zgodijo, kar zagotavlja skoraj sinhronizacijo v realnem času za pogosto spreminjajoče se podatke.
V: Ali lahko podvajam med različnimi SQL Server različice?
O: Da, SQL Server Replikacija podpira združljivost različic znotraj omejenega obsega. Različica distributerja mora biti enaka ali višja od različice založnika, naročnik pa je lahko znotraj dveh različic založnika. Na primer, če je založnik SQL Server 2016, naročnik je lahko SQL Server 2012, 2014, 2016, 2017 ali 2019.
V: Kako obravnavam konflikte pri združevanju replikacij?
A: Replikacija z združevanjem ponuja vgrajene mehanizme za zaznavanje in reševanje konfliktov. Razreševalnike konfliktov lahko konfigurirate na ravni članka, tako da izbirate med vgrajenimi razreševalniki ali implementirate razreševalnike konfliktov po meri. Konflikti se običajno rešujejo z metodami, ki temeljijo na prioritetah ali časovnih žigih, z možnostjo beleženja konfliktov za ročni pregled.
V: Kakšen je vpliv replikacije na delovanje?
A: Replikacija vpliva na zmogljivost na več načinov: založnik ima dodatne stroške zaradi sledenja spremembam in ustvarjanja posnetkov, distributer uporablja vire za shranjevanje in posredovanje transakcij, med prenosom podatkov pa se porablja omrežna pasovna širina. Vpliv se razlikuje glede na vrsto replikacije, pri čemer replikacija posnetkov povzroča občasne sunke z velikim vplivom, transakcijska replikacija pa ohranja bolj dosledno, a neprekinjeno obremenitev.
V: Kako zavarujem svojo topologijo replikacije?
A: Zaščitite svojo topologijo replikacije z uvedbo več najboljših praks: uporabite preverjanje pristnosti sistema Windows ali močno SQL Server preverjanje pristnosti, šifriranje povezav s TLS, zavarovanje mape posnetkov z ustreznimi NTFS dovoljenja, konfigurirajte seznam dostopa za objave (PAL) za nadzor dostopa, uporabite ločene račune storitev z minimalnimi zahtevanimi dovoljenji za vsakega replikacijskega agenta in redno preverjajte varnostne nastavitve replikacije.
V: Ali lahko podvojim v zbirko podatkov Azure SQL?
A: Da, lahko podvojite v zbirko podatkov Azure SQL z uporabo transakcijske replikacije z lokalno SQL Server ali upravljani primerek Azure SQL kot založnik in distributer. Zbirka podatkov Azure SQL lahko služi kot naročnik, ne pa kot založnik ali distributer. Zbirka podatkov Azure SQL ne podpira replikacije z združevanjem in replikacije med enakovrednimi sistemi.
V: Kako spremljam zakasnitev replikacije?
A: Spremljajte zakasnitev replikacije z uporabo Replication Monitor v SQL Server Management Studio, ki prikazuje metrike zakasnitve za vsako naročnino. Prav tako lahko poizvedujete po tabelah distribucijske baze podatkov, kot sta MSdistribution_history in MSrepl_commands, uporabljate števce učinkovitosti delovanja, specifične za replikacijske agente, ali nastavite opozorila na podlagi pragov zakasnitve za proaktivno zaznavanje in odpravljanje zamud pri sinhronizaciji.
V: Kaj se zgodi, ko naročnik ni povezan?
A: Ko je naročnik brez povezave, je vedenje odvisno od vrste replikacije. Pri transakcijski replikaciji se transakcije kopičijo v distribucijski bazi podatkov, dokler se naročnik ne poveže znova s spletom, nato se sinhronizacija nadaljuje. Pri združevalni replikaciji se spremembe spremljajo na obeh straneh in se združijo, ko je povezljivost ponovno vzpostavljena. Nastavitev obdobja hrambe določa, kako dolgo se podatki hranijo, preden jih je treba ponovno inicializirati.
V: Kako dodam nove članke v obstoječo publikacijo?
A: Če želite obstoječi publikaciji dodati nove članke, uporabite SQL Server V programu Management Studio lahko spremenite lastnosti publikacije in izberete dodatne objekte ali pa uporabite shranjeno proceduro sp_addarticle. Po dodajanju člankov ustvarite nov posnetek in ponovno inicializirajte vse naročnine, da zagotovite, da bodo naročniki prejeli nove članke. Nekatere spremembe lahko zahtevajo ponovno inicializacijo naročnine, odvisno od nastavitev publikacije.
V: Kako odstranim replikacijo iz baze podatkov?
A: Replikacijo iz baze podatkov odstranite tako, da najprej izbrišete vse naročnine z uporabo sp_dropsubscription, nato odstranite publikacijo z uporabo sp_droppublication in na koncu onemogočite objavljanje v bazi podatkov z uporabo sp_replicationdboption. Če je strežnik distributer, onemogočite distribucijo z uporabo sp_dropdistributor. Pred odstranitvijo konfiguracije replikacije vedno varnostno kopirajte baze podatkov.
V: Kakšna je razlika med SQL Server Replikacija in skupine razpoložljivosti AlwaysOn?
A: Replikacija je rešitev za distribucijo in integracijo podatkov, ki deluje na ravni objektov, medtem ko Skupine razpoložljivosti Always On je rešitev za visoko razpoložljivost in obnovo po katastrofi, ki deluje na ravni baze podatkov.
7. Zaključek
SQL Server Replikacija zagotavlja robusten okvir za distribucijo in sinhronizacijo podatkov med več bazami podatkov in lokacijami. Tehnologija podpira različne scenarije z različnimi vrstami replikacije.
Izbira prave strategije replikacije je odvisna od vaših specifičnih zahtev. Upoštevajte pogostost sprememb podatkov, zahteve glede zakasnitve, ali morajo naročniki izvajati posodobitve, značilnosti omrežja in potrebe naročnikov po avtonomiji. Replikacija posnetkov je najboljša za redko spreminjajoče se referenčne podatke, kjer zakasnitev ni kritična. Transakcijska replikacija je primerna za scenarije z veliko količino podatkov, ki zahtevajo nizko zakasnitev in predvsem enosmerni pretok podatkov.
Izberite replikacijo z združevanjem, ko naročniki potrebujejo avtonomno delovanje z možnostmi brez povezave in dvosmerno sinhronizacijo. Izvedite replikacijo med vrstniki za uravnoteženje obremenitve bralnih operacij med več aktivnimi vozlišči s skoraj realnočasovno doslednostjo. Razmislite o hibridnih pristopih, ki združujejo več vrst replikacije za kompleksne scenarije z različnimi zahtevami.
Reference
- Uradni dokument Microsofta: SQL Server Podvajanje
- Uradni dokument Microsofta: Vrste replikacije
- Uradni dokument Microsofta: Peer-to-Peer – transakcijska replikacija
O Author
Yuan Sheng je višji administrator baz podatkov (DBA) z več kot 10 leti izkušenj na področju SQL Server okolja in upravljanje poslovnih baz podatkov. Uspešno je rešil na stotine scenarijev obnovitve baz podatkov v finančnih storitvah, zdravstvu in proizvodnih organizacijah.
Yuan je specializiran za SQL Server obnovitev baz podatkov, rešitve za visoko razpoložljivost in optimizacija delovanja. Njegove bogate praktične izkušnje vključujejo upravljanje večterabajtnih baz podatkov, implementacijo skupin razpoložljivosti Always On in razvoj avtomatiziranih strategij varnostnega kopiranja in obnovitve za ključne poslovne sisteme.
Yuan se s svojim tehničnim znanjem in praktičnim pristopom osredotoča na ustvarjanje celovitih vodnikov, ki pomagajo skrbnikom baz podatkov in IT-strokovnjakom reševati kompleksne SQL Server učinkovito se spopada z izzivi. Vedno je na tekočem z najnovejšimi SQL Server izdaje in Microsoftove razvijajoče se tehnologije baz podatkov, pri čemer redno testira scenarije obnovitve, da zagotovi, da njegova priporočila odražajo najboljše prakse iz resničnega sveta.
Imate vprašanja o SQL Server obnovitev ali potrebujete dodatna navodila za odpravljanje težav z zbirko podatkov? Yuan pozdravlja povratne informacije in predlogi za izboljšanje teh tehničnih virov.














