1. Uvod u SQL Server Replikacija
1.1 Šta je SQL Server Replikacija?
SQL Server Replikacija je skup tehnologija za kopiranje i distribuciju podataka i objekata baze podataka iz jedne baze podataka u drugu, a zatim sinhronizaciju između baza podataka radi održavanja konzistentnosti. Ova funkcija vam omogućava da kreirate i održavate više kopija vaših podataka na različitim serverima i lokacijama, osiguravajući dostupnost i pouzdanost podataka.
1.2 Svrha i prednosti replikacije
SQL Server Replikacija služi višestrukim kritičnim poslovnim potrebama i pruža značajne prednosti za upravljanje bazama podataka i distribuciju podataka:
- Distribucija podataka po lokacijama: Replikacija vam omogućava dijeljenje podataka između regionalnih ureda ili globalnih lokacija, poboljšavajući operativnu efikasnost osiguravanjem lokalnog pristupa potrebnim podacima. Ovo smanjuje latenciju mreže i pruža bolje performanse za geografski distribuirane korisnike.
- Visoka dostupnost i oporavak od katastrofe: Održavanjem replika kritičnih podataka na više servera, replikacija pruža redundanciju koja štiti od kvarova hardvera i katastrofa. U slučaju kvara primarnog servera, replicirane kopije mogu poslužiti kao rezervni izvori, minimizirajući vrijeme zastoja i gubitak podataka.
- Balansiranje opterećenja i skalabilnost: Replikacija distribuira operacije čitanja na više servera, sprječavajući da bilo koji pojedinačni server postane usko grlo. Ovaj pristup poboljšava performanse sistema i omogućava horizontalno skaliranje vaše infrastrukture kako rastu zahtjevi za podacima i korisnicima.
- Izvještavanje i analitika u realnom vremenu: Prebacivanje izvještajnih i analitičkih upita na replicirane servere smanjuje opterećenje produkcijskih baza podataka. Korisnici mogu pokretati složene analitičke upite na podatke gotovo u stvarnom vremenu bez utjecaja na operativne sisteme, osiguravajući i performanse i ažurnost podataka.
- Integracija i konsolidacija podataka: Replikacija olakšava spajanje podataka iz različitih izvora u jedan konsolidovani prikaz. Ovo je posebno vrijedno za organizacije s više podružnica kojima je potrebno agregirati podatke u sjedištu ili za kreiranje centraliziranih skladišta podataka iz distribuiranih operativnih sistema.
2. SQL Server Arhitektura i komponente replikacije
SQL Server Arhitektura replikacije sastoji se od nekoliko međusobno povezanih komponenti koje rade zajedno na distribuciji i sinhronizaciji podataka u vašoj infrastrukturi baze podataka. Ovaj odjeljak istražuje ključne komponente, uključujući izdavače, distributere, pretplatnike, publikacije, članke, pretplate i agente koji koordiniraju protok podataka između njih:
- Izdavač: Izdavač je SQL Server instanca koja hostira jednu ili više baza podataka koje sadrže podatke koji se repliciraju. Služi kao autoritativni izvor u topologiji replikacije.
- Distributer: Distributer je SQL Server instanca koja upravlja tokom podataka između izdavača i pretplatnika. Instanca distributera hostira distribucijsku bazu podataka koja pohranjuje metapodatke replikacije i transakcije.
- Pretplatnik: Pretplatnik je SQL Server instanca koja prima i pohranjuje replicirane podatke od izdavača. Jedna instanca pretplatnika može hostirati više baza podataka pretplatnika, od kojih svaka prima podatke iz različitih publikacija.
- Objavljeno: Publikacija definira koji će se podaci replicirati i kako će se distribuirati pretplatnicima. Ona grupira povezane članke i uspostavlja metodologiju replikacije koja se primjenjuje na sve sadržane objekte.
- Članak: Članak je osnovni gradivni blok replikacije, koji predstavlja pojedinačni objekt baze podataka koji će biti distribuiran pretplatnicima.
- Pretplata: Pretplata uspostavlja odnos između publikacije i pretplatnika, definirajući kako i kada se podaci dostavljaju u odredišnu bazu podataka.
- Agenti: Agenti su specijalizirani procesi koji obavljaju stvarni posao premještanja i sinhronizacije podataka između komponenti replikacije.
3. Vrste SQL Server Replikacija
SQL Server nudi nekoliko tipova replikacije, od kojih je svaki dizajniran za specifične scenarije distribucije podataka i poslovne zahtjeve. Razumijevanje karakteristika, prednosti i ograničenja svakog tipa je ključno za odabir pravog pristupa za vaše okruženje.
3.1 Replikacija snimka
Replikacija snimka pravi snimak podataka koji će biti objavljeni u određeno vrijeme, a zatim distribuira tačnu kompletnu kopiju pretplatnicima. Ne prati naknadne promjene dok se ne generiše sljedeći snimak. Replikacija snimka je najjednostavniji oblik replikacije, što je čini pogodnom za scenarije gdje se podaci rijetko mijenjaju ili gdje je prihvatljivo imati malo zastarjele podatke.
Uobičajeni slučajevi upotrebe uključuju distribuciju referentnih podataka poput cjenovnika ili kurseva koji se periodično ažuriraju, pružanje početnih skupova podataka za skladišta podataka i scenarije u kojima je potpuno osvježavanje podataka poželjnije od praćenja pojedinačnih promjena. Na primjer, kompanija može koristiti replikaciju snimka stanja za distribuciju ažuriranih kataloga proizvoda podružnicama jednom dnevno.
Glavne prednosti replikacije snimaka su jednostavnost, niski zahtjevi za održavanje i mogućnost replikacije podataka bez primarnih ključeva. Međutim, ima značajne nedostatke, uključujući veliki utjecaj prilikom generiranja snimaka zbog zaključavanja tablica, veliku latenciju između ažuriranja i neefikasnost za velike skupove podataka ili često promjenjive podatke. Sve izmjene napravljene na pretplatnicima gube se kada se primijeni sljedeći snimak.
3.2 Transakcijska replikacija
Transakcijska replikacija dostavlja promjene od izdavača pretplatnicima gotovo u stvarnom vremenu replicirajući pojedinačne transakcije čim se one dogode. Počinje s početnim snimkom kako bi se uspostavila osnovna linija, zatim kontinuirano prati dnevnik transakcija za promjene objavljenih članaka i postepeno ih dostavlja pretplatnicima.
Transakcijska replikacija je idealna za scenarije server-to-server koji zahtijevaju visoku propusnost i nisku latenciju. Uobičajeni slučajevi upotrebe uključuju poboljšanje skalabilnosti i dostupnosti preusmjeravanjem operacija čitanja na pretplatničke servere, podršku skladištenju podataka i izvještavanju s podacima gotovo u stvarnom vremenu, integraciju podataka s više lokacija na centralnu lokaciju i preusmjeravanje batch obrade na namjenske servere. Na primjer, platforma za e-trgovinu može koristiti transakcijsku replikaciju za održavanje sinhroniziranih podataka o zalihama u regionalnim bazama podataka.
Prednosti transakcijske replikacije uključuju isporuku podataka s niskom latencijom, visoku propusnost za velike količine transakcija i mogućnost vršenja nerepliciranih modifikacija kod pretplatnika. Nedostaci uključuju veću složenost u poređenju s replikacijom snimka stanja, zahtjev za primarnim ključevima na repliciranim tabelama i mogućnost prekida replikacije ako dođe do sukoba, kao što su kršenja primarnog ključa kod pretplatnika.
3.3 Replikacija spajanjem
Replikacija spajanjem je posebno dizajnirana za okruženja u kojima pretplatnici trebaju raditi van mreže ili s povremenom vezom, a zatim sinhronizirati promjene kada je veza dostupna. Ova vrsta replikacije omogućava nezavisnu promjenu podataka i kod izdavača i kod pretplatnika, praćenje promjena pomoću okidača i tabela metapodataka te automatsko spajanje modifikacija tokom sinhronizacije.
Replikacija spajanjem je dizajnirana za mobilne aplikacije i distribuirana serverska okruženja gdje se događaju autonomne promjene. Primjeri upotrebe uključuju automatizaciju prodajne snage gdje mobilni korisnici rade van mreže i sinhroniziraju se kasnije, POS sisteme koji rade nezavisno i periodično konsolidiraju podatke i distribuirane aplikacije gdje više lokacija treba ažurirati dijeljene podatke. Na primjer, maloprodajni lanac može koristiti replikaciju spajanjem tako da svaka trgovina može upravljati lokalnim zalihama dok se sinhronizira s centralnim skladišnim sistemom.
Prednosti replikacije spajanjem uključuju podršku za autonomne pretplatnike koji mogu vršiti promjene, toleranciju na povremenu mrežnu povezanost i fleksibilno rješavanje konflikata. Nedostaci uključuju veću složenost u postavljanju i održavanju, opterećenje performansi zbog praćenja metapodataka i okidača, dodavanje kolona jedinstvenog identifikatora u tabele i potencijal za konflikte koji zahtijevaju upravljanje i rješavanje.
3.4 Replikacija od ravnopravne mreže do ravnopravne mreže
Peer-to-peer replikacija je izgrađena na transakcijskoj replikaciji i omogućava višestrukim instancama servera (tri ili više čvorova) da djeluju kao ravnopravni peer-ovi, pri čemu svaki čvor istovremeno služi i kao izdavač i kao pretplatnik. U ovoj topologiji, svi čvorovi održavaju identične kopije podataka i mogu obraditi i operacije čitanja i pisanja, pružajući istinski distribuirano okruženje s više glavnih uređaja.
Peer-to-peer replikacija je pogodna za aplikacije koje zahtijevaju skaliranje operacija čitanja i visoku dostupnost. Primjeri upotrebe uključuju web aplikacije koje distribuiraju upite kataloga na više čvorova uz održavanje konzistentnosti podataka, scenarije koji zahtijevaju održavanje ili nadogradnje bez zastoja pojedinačnim isključivanjem čvorova iz mreže i globalne aplikacije s podatkovnim centrima u različitim regijama. Na primjer, globalna organizacija za softversku podršku može koristiti peer-to-peer replikaciju u uredima u različitim vremenskim zonama tako da svaka lokacija ima lokalni pristup trenutnim podacima.
Prednosti peer-to-peer replikacije uključuju poboljšane performanse čitanja putem skaliranja, veću dostupnost s više aktivnih čvorova i konzistentnost podataka gotovo u stvarnom vremenu. Nedostaci uključuju zahtjev za Enterprise Edition, složenost upravljanja topologijama s više čvorova, potrebu za identičnom shemom i podacima na svim čvorovima i mogućnost sukoba kada operacije pisanja nisu pravilno particionirane.
3.5 Dvosmjerna replikacija
Dvosmjerna replikacija je specifična topologija transakcijske replikacije dizajnirana posebno za okruženja s dva servera gdje oba servera trebaju razmjenjivati promjene jedan s drugim. Svaki server objavljuje podatke i pretplaćuje se na iste podatke s drugog servera, stvarajući jednostavan dvosmjerni tok sinhronizacije. Dok peer-to-peer replikacija može podržati i dva čvora, dvosmjerna replikacija pruža poboljšane performanse za ovaj specifični scenarij.
Dvosmjerna replikacija je prikladna za scenarije koji zahtijevaju dva aktivna servera sa sinhronizovanim podacima, kao što su konfiguracije aktivan-aktivan za visoku dostupnost ili geografski distribuirane aplikacije gdje svaka lokacija treba lokalni pristup pisanju. Topologija zahtijeva pažljivo dizajniranje aplikacije za particioniranje ažuriranja podataka i sprječavanje sukoba.
Prednosti uključuju optimizirane performanse za scenarije s dva servera, jednostavniju konfiguraciju u usporedbi s peer-to-peer replikacijom, sinhronizaciju gotovo u stvarnom vremenu i niže opterećenje od replikacije spajanjem. Nedostaci uključuju ograničenje na tačno dva servera, nedostatak ugrađenog rješavanja konflikata koji zahtijeva pažljiv dizajn aplikacije i potrebu za odgovarajućim strategijama particioniranja kako bi se spriječili konflikti.
3.6 Pretplate koje se mogu ažurirati
Ažurljive pretplate proširuju transakcijsku replikaciju kako bi omogućile pretplatnicima da povremeno mijenjaju replicirane podatke koji se zatim šire natrag do izdavača i do drugih pretplatnika. Za razliku od replikacije spajanjem ili peer-to-peer topologija dizajniranih za česta dvosmjerna ažuriranja, ažurirane pretplate namijenjene su scenarijima u kojima je primarni tok podataka jednosmjeran (od izdavača do pretplatnika), ali pretplatnici povremeno trebaju vršiti ispravke ili ažuriranja.
Ažurirajuće pretplate su prikladne za scenarije u kojima se većina ažuriranja odvija kod izdavača, ali su povremena ažuriranja potrebna kod pretplatnika, kao što su terenski uredi koji prvenstveno čitaju podatke, ali trebaju vršiti lokalne ispravke ili ažuriranja. Topologija zahtijeva pažljivo planiranje kako bi se minimizirali sukobi i osigurala konzistentnost podataka.
Glavne prednosti uključuju omogućavanje ograničenih operacija pisanja na pretplatnicima uz održavanje karakteristika performansi transakcijske replikacije. Nedostaci uključuju povećanu složenost, potencijal za konflikte koji zahtijevaju rješavanje, opterećenje performansama zbog dvofaznog protokola potvrđivanja u režimu trenutnog ažuriranja i zahtjev da sve replicirane tabele imaju primarne ključeve.
3.7 Poređenje različitih tipova replikacija
| Vrsta replikacije | Vrijeme ažuriranja | Broj izdavača | pravac | Koristite scenarije |
|---|---|---|---|---|
| snimak | Tačka u vremenu | 1 | One direction (Izdavač → Pretplatnici) | Referentni podaci koji se rijetko mijenjaju (cjenovnici, kursevi) |
| Transaktivni | Gotovo u stvarnom vremenu | 1 | One direction (Izdavač → Pretplatnici) | Scenariji visokog protoka (inventar e-trgovine, skladištenje podataka, izvještavanje) |
| Spoji se | Periodično (kada je povezano) | 1 | Dvosmjerno (Izdavač ↔ Pretplatnici) | Mobilne aplikacije, radnici koji nisu na mreži (automatizacija prodajne snage, terenske usluge) |
| Peer-to-Peer | Gotovo u stvarnom vremenu | Višestruki (3 ili više) | Dvosmjerno (svi čvorovi) | Globalna implementacija u više podatkovnih centara (kancelarije širom svijeta s lokalnim pristupom za čitanje i pisanje) |
| Dvosmerni | Gotovo u stvarnom vremenu | 2 | Dvosmjerno (oba servera) | Konfiguracije s dva podatkovna centra u aktivnom okruženju (visoka dostupnost na dvije lokacije) |
| Pretplate koje se mogu ažurirati | Gotovo u stvarnom vremenu | 1 | Uglavnom u jednom smjeru (povremena ažuriranja u suprotnom smjeru) | Podružnice koje prvenstveno čitaju, ali povremeno ažuriraju (lokalne ispravke) |
4. Postavljanje SQL Server Replikacija
4.1 Preduslovi i zahtjevi
4.1.1 Softverski zahtjevi
SQL Server replikacija zahtijeva kompatibilnost SQL Server verzije među svim učesnicima u topologiji. Verzija distributera mora biti jednaka ili novija od verzije izdavača, a pretplatnik može biti unutar dvije verzije izdavača. Na primjer, SQL Server Izdavač iz 2016. može replicirati na SQL Server Pretplatnici iz 2012, 2014, 2016, 2017 ili 2019. godine.
4.1.2 Zahtjevi za dozvole
Konfigurisanje replikacije zahtijeva specifične dozvole na svakom nivou. Članovi fiksne serverske uloge sysadmin mogu obavljati sve zadatke konfiguracije replikacije. Za detaljnije dozvole, korisnici moraju biti članovi uloge baze podataka db_owner za baze podataka izdavača i pretplatnika.
4.2 Korak 1: Konfiguracija distribucije
Konfigurisanje distribucije je prvi korak u postavljanju SQL Server replikacija.
Za konfiguriranje distribucije pomoću SQL Server Management Studio:
- Povežite se na SQL Server instanca u SQL Server ManagementStudio.
- U Exploreru objekata kliknite desnim tasterom miša na Replikacija folder i izaberite Konfiguriši distribuciju.
- U čarobnjaku za konfiguraciju distribucije kliknite sljedeći na stranici dobrodošlice.
- Na Distributer Na stranici odaberite jednu od sljedećih opcija na osnovu vaših topoloških zahtjeva:
- Lokalni distributerOdaberite "Naziv servera će djelovati kao vlastiti distributer;" SQL Server će kreirati distribucijsku bazu podataka i dnevnik” ako želite da izdavač i distributer rade na istoj instanci (trenutnoj instanci). Ova konfiguracija je jednostavnija za postavljanje i pogodnija je za manja okruženja ili kada bi latencija mreže između izdavača i distributera uzrokovala probleme.
- Udaljeni distributerOdaberite "Koristi sljedeći server kao distributera" i kliknite dodati da biste naveli udaljeni distributerski server ako želite prebaciti obradu distribucije na zasebnu instancu. Ova konfiguracija poboljšava performanse kada su volumeni replikacije veliki distribuiranjem radnog opterećenja na više servera. Morat ćete navesti ime udaljenog distributera i lozinku koju će izdavač koristiti za povezivanje s distributerom.
- kliknite sljedeći da biste odredili lokaciju mape za snimke. Koristite UNC putanju (kao što je \\nazivservera\dijeljena mapa) umjesto lokalne putanje kako biste osigurali pristup preko mreže.
- Na Distribucijska baza podataka stranicu, prihvatite zadani naziv distribucijske baze podataka (obično „distribucija“) ili navedite prilagođeni naziv, a zatim konfigurirajte lokacije podataka i datoteka dnevnika.
- Na Publishers stranicu, provjerite je li trenutni server omogućen kao izdavač. Ako konfigurirate trenutni server kao distributer, možete dodati dodatne izdavače koji će koristiti ovog distributera.
- Pregledajte radnje čarobnjaka i kliknite završiti za konfiguriranje distribucije.
4.3 Korak 2: Kreiranje publikacije
Nakon konfigurisanja distribucije, sljedeći korak je kreiranje publikacije koja definira koji će se objekti podataka replicirati pretplatnicima.
Da biste kreirali publikaciju koristeći SQL Server Management Studio:
- U Exploreru objekata proširite Replikacija folder.
- Desni klik Lokalne publikacije i izaberite Nova publikacija.
- Pokreće se Čarobnjak za novu publikaciju; kliknite sljedeći na stranici dobrodošlice.
- Odaberite bazu podataka koju želite objaviti iz Baza podataka publikacija stranica. Ovo automatski omogućava objavljivanje na odabranoj bazi podataka.
- Na Vrsta publikacije stranicu, odaberite vrstu replikacije: Publikacija snimka, Transakciona publikacija, Peer-to-Peer publikacija, ili Spoji publikaciju.
- Na Članci stranicu, proširite Stolovi čvor i odaberite tablice koje ćete uključiti kao članke.
- Opcionalno proširi Pohranjene procedure, Pogledaili druge tipove objekata za uključivanje dodatnih članaka.
- kliknite Svojstva članka za konfiguriranje filtriranja ili drugih postavki specifičnih za članak.
- Na Filtriraj redove tabele stranicu, dodajte filtere redova ako je potrebno.
- Na Agent za snimke stranicu, odaberite kada želite kreirati snimak: odmah, u određeno vrijeme ili po rasporedu.
- Na Sigurnost agenta stranicu, navedite sigurnosni kontekst za agenta za snimke.
- Na Radnje čarobnjaka stranicu, izaberite Kreiraj publikaciju.
- Unesite naziv publikacije i kliknite završiti.
4.4 Korak 3: Kreirajte pretplatu
Nakon kreiranja publikacije, sljedeći korak je kreiranje pretplata koje povezuju publikaciju s bazama podataka pretplatnika.
Pretplate mogu biti push pretplate (kojima upravlja distributer) ili pull pretplate (kojima upravlja pretplatnik). Ključne razlike su gdje kreirate pretplatu i koju lokaciju agenta odaberete, što određuje radnju pretplate (push ili pull).
Za push pretplatu (upravlja Distributer):
- Na izdavač server, proširi Replikacija -> Lokalne publikacije.
- Desnim klikom miša kliknite na publikaciju i odaberite Nove pretplate.
Za pretplatu povlačenjem (upravlja Pretplatnik):
- Na pretplatnik server, proširi Replikacija, desni klik Lokalne pretplate, i izaberite Nove pretplate.
- Na objavljivanje stranicu, kliknite pronaći SQL Server izdavač i povežite se sa serverom izdavača.
Uobičajeni koraci čarobnjaka za obje vrste pretplate:
- U Čarobnjaku za novu pretplatu kliknite sljedeći na stranici dobrodošlice.
- Odaberite publikaciju i kliknite sljedeći.
- Na Lokacija distribucijskog agenta stranicu, odaberite lokaciju agenta:
- Push pretplataOdaberite "Pokreni sve agente kod distributera" – distributer će proslijediti promjene pretplatnicima.
- Preuzmi pretplatuOdaberite "Pokreni svakog agenta na njegovom pretplatniku" – svaki pretplatnik će preuzeti promjene od distributera.
- Na pretplatnici stranicu, odaberite postojeće pretplatničke servere ili kliknite Dodaj naručnika da dodam nove.
- Za svakog pretplatnika odaberite odredišnu bazu podataka ili kreirajte novu bazu podataka. Bilješka: Baza podataka pretplatnika mora se razlikovati od baze podataka izdavača, čak i ako se koristi ista SQL Server primer.
- Na Sigurnost distribucijskog agenta Na stranici kliknite na dugme svojstava za svaku pretplatu da biste konfigurisali sigurnosni kontekst.
- Na Raspored sinhronizacije stranicu, odaberite kontinuiranu sinhronizaciju ili planiranu sinhronizaciju.
- Na Inicijaliziraj pretplate stranicu, izaberite Odmah za inicijalizaciju tokom završetka čarobnjaka ili Pri prvoj sinhronizaciji.
- Pregledajte radnje čarobnjaka i kliknite završiti.
5. Praćenje i upravljanje SQL Server Replikacija
5.1 Praćenje replikacije pomoću monitora replikacije
Da biste pokrenuli Monitor replikacije:
- In SQL Server Management Studio, proširi Replikacija u Istraživaču objekata.
- Desni klik Replikacija i izaberite Pokreni monitor replikacije.
- Ako nijedan izdavač nije registrovan, kliknite Dodaj izdavača u levom oknu.
- Izabrati dodati SQL Server izdavač i povežite se sa serverom izdavača.
- Izdavač se pojavljuje u lijevom oknu s proširivim čvorovima za publikacije i pretplate.
5.2 Praćenje performansi
5.2.1 Latencija monitora
Latencija replikacije je vremensko kašnjenje između promjene koja se dogodi kod izdavača i primjene te promjene kod pretplatnika. Pratite latenciju kako biste osigurali da ažurnost podataka ispunjava poslovne zahtjeve.
Koristite Monitor replikacije za pregled metrika latencije na kartici Sve pretplate. Kolona Latencija prikazuje prosječnu latenciju u sekundama. Za transakcijsku replikaciju, tokeni za praćenje pružaju precizna mjerenja latencije umetanjem marker transakcija koje se prate kroz replikacijski cjevovod.
Da biste koristili tokene za praćenje:
- U Monitoru replikacije odaberite transakcijsku publikaciju.
- kliknite Žetoni za praćenje tab.
- kliknite Umetni tragač ubrizgati marker transakciju.
- Pratite token dok putuje od izdavača do distributera i pretplatnika.
- Pogledajte vrijeme potrebno za svaki segment kako biste identificirali uska grla.
5.2.2 Propusnost monitora
Propusnost mjeri količinu podataka repliciranih tokom vremena, obično izraženu kao transakcije u sekundi ili naredbe u sekundi. Pratite propusnost kako biste osigurali da replikacija može pratiti aktivnosti izdavača.
Iako Monitor replikacije pruža osnovni status sinhronizacije, stopa isporuke i detaljne metrike protoka nisu vidljive u GUI-ju. Koristite T-SQL upite prema distribucijskoj bazi podataka za praćenje protoka:
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
Statusni kodovi: 1 = Početak, 2 = U toku, 3 = Uspjeh, 4 = Mirovanje, 5 = Ponovni pokušaj, 6 = Neuspjeh. Uporedite stopu isporuke sa stopama transakcija izdavača kako biste identifikovali situacije u kojima replikacija zaostaje. Brojači performansi u Windows Performance Monitor pružaju dodatne metrike propusnosti za svakog agenta za replikaciju.
5.2.3 Identifikacija uskih grla
Uska grla u replikaciji mogu se pojaviti na više tačaka u topologiji. Na izdavaču, predugo vrijeme generiranja snimka ili kašnjenja agenta za čitanje dnevnika mogu ukazivati na ograničenja resursa. Pratite CPU, memoriju i I/O operacije diska na izdavaču tokom aktivnosti replikacije.
Kod distributera provjerite ima li akumuliranih transakcija u bazi podataka distribucije. Veliki broj nedistribuiranih naredbi ukazuje na to da distributer ne može pratiti isporuku. Pratite resurse servera distributera i razmislite o korištenju namjenskog udaljenog distributera za scenarije velikog obima.
Kod pretplatnika, spora primjena promjena može biti rezultat neadekvatnih resursa, nedostajućih indeksa ili ograničenja koja usporavaju operacije umetanja. Pratite iskorištenost resursa pretplatnika i performanse upita kada je pokrenut Agent za distribuciju. Ograničenja propusnosti mreže između komponenti također uzrokuju uska grla, posebno za velike količine podataka.
5.3 Upravljanje replikacijskim agentima
5.3.1 Pokretanje i zaustavljanje agenata
Da biste pokrenuli ili zaustavili agenta za replikaciju:
- In SQL Server Management Studio, proširi SQL Server agent -> Posao.
- Pronađite posao agenta za replikaciju (imena obično uključuju informacije o publikaciji i pretplatniku).
- Kliknite desnim tasterom miša na posao i izaberite Započni posao or Zaustavi posao.
5.3.2 Konfigurisanje profila agenata
Profili agenata sadrže skupove parametara koji kontroliraju ponašanje agenata. SQL Server pruža zadane profile optimizirane za uobičajene scenarije, a možete kreirati i prilagođene profile za specifične potrebe.
Da biste izmijenili profile agenata:
- U Exploreru objekata proširite Replikacija.
- Desni klik Replikacija i izaberite Distributor Properties.
- kliknite Zadane postavke profila dugme.
- Odaberite vrstu agenta (Snimak, Čitač dnevnika, Distribucija ili Spajanje) iz padajućeg izbornika.
- Odaberite profil i kliknite svojstva da biste vidjeli vrijednosti parametara.
- kliknite Novi profil da kreirate prilagođeni profil na osnovu postojećeg.
- Izmijenite parametre po potrebi i kliknite OK.
Primijenite profil na agenta uređivanjem svojstava pretplate i odabirom željenog profila iz padajućeg izbornika Profil agenta.
5.3.3 Parametri i postavke agenta
Parametri agenta fino podešavaju performanse i ponašanje. Ključni parametri za distribucijskog agenta uključuju CommitBatchSize (broj transakcija primijenjenih po commitu), CommitBatchThreshold (broj naredbi prije commita), SubscriptionStreams (paralelne veze za bržu isporuku) i QueryTimeout (timeout za naredbe).
Za agenta za čitanje dnevnika, važni parametri uključuju ReadBatchSize (broj transakcija pročitanih po skeniranju), ReadBatchThreshold (komande prije isporuke) i PollingInterval (kašnjenje između skeniranja dnevnika). Prilagodite ove parametre na osnovu zahtjeva za obimom transakcija i latencijom.
5.4 Razmatranja za sigurnosno kopiranje i vraćanje podataka
Pravljenje sigurnosnih kopija baza podataka uključenih u replikaciju zahtijeva posebna razmatranja. Za bazu podataka izdavača, redovne potpune sigurnosne kopije i sigurnosne kopije dnevnika transakcija su neophodne. Označite sigurnosnu kopiju baze podataka za podršku replikacije korištenjem opcije WITH REPLICATION prilikom pravljenja sigurnosnih kopija baza podataka u transakcijskoj replikaciji. Redovno pravite sigurnosne kopije distribucijske baze podataka kako biste zaštitili konfiguraciju replikacije.
Prilikom vraćanja baze podataka izdavača na isti server s istim imenom, koristite opciju WITH KEEP_REPLICATION da biste sačuvali stanje replikacije. Ova opcija osigurava da transakcije koje još nisu obrađene od strane Log Reader Agent-a ostanu označene za replikaciju, omogućavajući automatski nastavak replikacije bez ponovne inicijalizacije pretplata.
U scenarijima oporavka od katastrofe gdje sigurnosne kopije nisu dostupne, oštećene su ili su datoteke baze podataka oštećene, mogu biti potrebni specijalizirani alati za oporavak. DataNumen SQL Recovery Može izdvojiti podatke iz oštećenih ili nedostupnih MDF i NDF datoteka, pružajući opciju u krajnjoj nuždi kada standardni postupci vraćanja podataka ne uspiju.
Za više detalja o SQL Server sigurnosna kopija, pogledajte našu sveobuhvatni vodič.
6. Često postavljana pitanja (FAQ)
P: Koja je razlika između snimka stanja i transakcijske replikacije?
A: Replikacija snimka podataka uzima kompletnu kopiju podataka u određenom trenutku i primjenjuje je na pretplatnika, što je pogodno za podatke koji se rijetko mijenjaju. Transakcijska replikacija počinje s početnim snimkom, a zatim kontinuirano replicira pojedinačne transakcije kako se događaju, pružajući sinhronizaciju gotovo u stvarnom vremenu za često promjenjive podatke.
P: Mogu li replicirati između različitih SQL Server verzije?
O: Da, SQL Server Replikacija podržava kompatibilnost verzija unutar ograničenog raspona. Verzija distributera mora biti jednaka ili novija od verzije izdavača, a pretplatnik može biti unutar dvije verzije izdavača. Na primjer, ako je izdavač SQL Server 2016. godine, pretplatnik može biti SQL Server 2012, 2014, 2016, 2017 ili 2019.
P: Kako da riješim konflikte u replikaciji spajanjem?
A: Replikacija spajanjem pruža ugrađene mehanizme za otkrivanje i rješavanje konflikata. Možete konfigurirati rješavače konflikata na nivou članka, birajući između ugrađenih rješavača ili implementirajući prilagođene rješavače konflikata. Konflikti se obično rješavaju metodama zasnovanim na prioritetu ili vremenskim oznakama, s mogućnošću evidentiranja konflikata za ručni pregled.
P: Kakav je uticaj replikacije na performanse?
A: Replikacija utiče na performanse na nekoliko načina: izdavač ima opterećenje zbog praćenja promjena i generiranja snimaka, distributer koristi resurse za pohranjivanje i prosljeđivanje transakcija, a propusnost mreže se troši tokom prijenosa podataka. Utjecaj varira ovisno o vrsti replikacije, pri čemu replikacija snimaka uzrokuje periodične nalete visokog utjecaja, a transakcijska replikacija održava konzistentnije, ali kontinuirano opterećenje.
P: Kako da osiguram svoju replikacijsku topologiju?
A: Osigurajte svoju topologiju replikacije primjenom nekoliko najboljih praksi: koristite Windows autentifikaciju ili snažnu SQL Server autentifikaciju, šifriranje veza pomoću TLS-a, osiguranje mape snimki podataka odgovarajućim NTFS dozvole, konfigurirajte PAL (Pal listu za pristup publikacijama) za kontrolu pristupa, koristite odvojene servisne račune s minimalnim potrebnim dozvolama za svakog agenta za replikaciju i redovno revidirajte sigurnosne postavke replikacije.
P: Mogu li replicirati na Azure SQL bazu podataka?
A: Da, možete replicirati na Azure SQL bazu podataka koristeći transakcijsku replikaciju s lokalnom lokacijom. SQL Server ili Azure SQL Managed Instance kao izdavač i distributer. Azure SQL baza podataka može poslužiti kao pretplatnik, ali ne kao izdavač ili distributer. Replikacija spajanjem i peer-to-peer replikacija nisu podržane s Azure SQL bazom podataka.
P: Kako da pratim kašnjenje replikacije?
A: Pratite kašnjenje replikacije pomoću Monitora replikacije u SQL Server Management Studio, koji prikazuje metrike latencije za svaku pretplatu. Također možete slati upite u tabele distribucijske baze podataka kao što su MSdistribution_history i MSrepl_commands, koristiti brojače performansi specifične za agente replikacije ili postaviti upozorenja na osnovu pragova latencije kako biste proaktivno otkrili i riješili kašnjenja sinhronizacije.
P: Šta se dešava kada je pretplatnik van mreže?
A: Kada je pretplatnik van mreže, ponašanje zavisi od tipa replikacije. Kod transakcijske replikacije, transakcije se akumuliraju u distribucijskoj bazi podataka dok se pretplatnik ponovo ne poveže na mrežu, a zatim se sinhronizacija nastavlja. Kod replikacije spajanjem, promjene se prate na obje strane i spajaju kada se veza obnovi. Postavka perioda zadržavanja određuje koliko dugo se podaci čuvaju prije nego što se moraju ponovo inicijalizirati.
P: Kako da dodam nove članke u postojeću publikaciju?
A: Da biste dodali nove članke postojećoj publikaciji, koristite SQL Server Management Studio za izmjenu svojstava publikacije i odabir dodatnih objekata ili koristite pohranjenu proceduru sp_addarticle. Nakon dodavanja članaka, generirajte novi snimak i ponovo inicijalizirajte sve pretplate kako biste osigurali da pretplatnici primaju nove članke. Neke promjene mogu zahtijevati ponovnu inicijalizaciju pretplate ovisno o postavkama publikacije.
P: Kako da uklonim replikaciju iz baze podataka?
A: Uklonite replikaciju iz baze podataka tako što ćete prvo izbrisati sve pretplate pomoću sp_dropsubscription, zatim ukloniti publikaciju pomoću sp_droppublication i na kraju onemogućiti objavljivanje u bazi podataka pomoću sp_replicationdboption. Ako je server distributer, onemogućite distribuciju pomoću sp_dropdistributor. Uvijek napravite sigurnosnu kopiju baza podataka prije uklanjanja konfiguracije replikacije.
P: Koja je razlika između? SQL Server Replikacija i grupe dostupnosti AlwaysOn?
A: Replikacija je rješenje za distribuciju i integraciju podataka koje funkcionira na nivou objekta, dok Grupe dostupnosti uvijek uključene je rješenje za visoku dostupnost i oporavak od katastrofe koje funkcionira na nivou baze podataka.
7. zaključak
SQL Server Replikacija pruža robustan okvir za distribuciju i sinhronizaciju podataka između više baza podataka i lokacija. Tehnologija podržava različite scenarije putem različitih tipova replikacije.
Odabir prave strategije replikacije zavisi od vaših specifičnih zahtjeva. Uzmite u obzir učestalost promjene podataka, zahtjeve za latencijom, da li pretplatnici trebaju vršiti ažuriranja, karakteristike mreže i potrebe pretplatnika za autonomijom. Replikacija snimka najbolje funkcionira za rijetko promjenjive referentne podatke gdje latencija nije kritična. Transakcijska replikacija odgovara scenarijima velikog obima koji zahtijevaju nisku latenciju i prvenstveno jednosmjerni protok podataka.
Odaberite replikaciju spajanjem kada pretplatnicima treba autonomni rad s mogućnostima rada izvan mreže i dvosmjernom sinhronizacijom. Implementirajte replikaciju od strane korisnika do korisnika za balansiranje opterećenja operacija čitanja na više aktivnih čvorova s gotovo konzistentnošću u stvarnom vremenu. Razmotrite hibridne pristupe koji kombiniraju više tipova replikacije za složene scenarije s različitim zahtjevima.
reference
- Zvanični dokument Microsofta: SQL Server Replikacija
- Službeni dokument Microsofta: Vrste replikacije
- Službeni dokument Microsofta: Peer-to-Peer – Transakciona replikacija
o autoru
Yuan Sheng je viši administrator baze podataka (DBA) sa preko 10 godina iskustva u SQL Server okruženja i upravljanje bazama podataka u preduzećima. Uspješno je riješio stotine scenarija oporavka baza podataka u organizacijama finansijskih usluga, zdravstva i proizvodnje.
Yuan je specijaliziran za SQL Server oporavak baza podataka, rješenja za visoku dostupnost i optimizaciju performansi. Njegovo opsežno praktično iskustvo uključuje upravljanje bazama podataka od više terabajta, implementaciju grupa dostupnosti Always On i razvoj automatiziranih strategija za sigurnosno kopiranje i oporavak za poslovne sisteme od kritične važnosti.
Svojim tehničkim znanjem i praktičnim pristupom, Yuan se fokusira na kreiranje sveobuhvatnih vodiča koji pomažu administratorima baza podataka i IT stručnjacima da riješe složene probleme. SQL Server efikasno rješava izazove. On prati najnovije SQL Server izdanja i Microsoftove tehnologije baza podataka koje se razvijaju, redovno testirajući scenarije oporavka kako bi osigurao da njegove preporuke odražavaju najbolje prakse iz stvarnog svijeta.
Imate pitanja o SQL Server oporavak ili vam trebaju dodatne smjernice za rješavanje problema s bazom podataka? Yuan pozdravlja povratne informacije i prijedlozi za poboljšanje ovih tehničkih resursa.














