1. Įvadas į SQL Server Replikacija
1.1 Kas yra SQL Server Replikacija?
SQL Server Replikacija – tai technologijų rinkinys, skirtas duomenims ir duomenų bazės objektams kopijuoti ir platinti iš vienos duomenų bazės į kitą, o vėliau sinchronizuoti tarp duomenų bazių, siekiant išlaikyti nuoseklumą. Ši funkcija leidžia kurti ir tvarkyti kelias duomenų kopijas skirtinguose serveriuose ir vietose, užtikrinant duomenų prieinamumą ir patikimumą.
1.2 Replikacijos tikslas ir privalumai
SQL Server Replikacija patenkina kelis svarbius verslo poreikius ir suteikia didelių pranašumų duomenų bazių valdymui ir duomenų platinimui:
- Duomenų paskirstymas skirtingose vietose: Replikacija leidžia bendrinti duomenis regioniniuose biuruose arba visame pasaulyje, taip pagerinant veiklos efektyvumą, užtikrinant vietinę prieigą prie reikiamų duomenų. Tai sumažina tinklo delsą ir užtikrina geresnį našumą geografiškai paskirstytiems vartotojams.
- Didelis prieinamumas ir atkūrimas po nelaimių: Išsaugodama svarbių duomenų kopijas keliuose serveriuose, replikacija užtikrina perteklių, kuris apsaugo nuo aparatinės įrangos gedimų ir nelaimių. Pagrindinio serverio gedimo atveju replikuotos kopijos gali būti atsarginiai šaltiniai, sumažinantys prastovas ir duomenų praradimą.
- Apkrovos balansavimas ir mastelio keitimas: Replikacija paskirsto skaitymo operacijas keliuose serveriuose, neleisdama nė vienam serveriui tapti kliūtimi. Toks metodas pagerina sistemos našumą ir leidžia jūsų infrastruktūrai horizontaliai plėstis, augant duomenų ir vartotojų poreikiams.
- Ataskaitų teikimas realiuoju laiku ir analizė: Ataskaitų ir analizės užklausų perkėlimas į replikuotus serverius sumažina gamybinių duomenų bazių apkrovą. Vartotojai gali vykdyti sudėtingas analitines užklausas beveik realiuoju laiku gautuose duomenyse nepaveikdami operacinių sistemų, taip užtikrindami tiek našumą, tiek duomenų naujumą.
- Duomenų integravimas ir konsolidavimas: Replikacija palengvina duomenų iš įvairių šaltinių sujungimą į vieną konsoliduotą rodinį. Tai ypač vertinga organizacijoms, turinčioms kelis filialus, kuriems reikia apjungti duomenis būstinėje, arba kuriant centralizuotus duomenų sandėlius iš paskirstytų operacinių sistemų.
2. SQL Server Replikacijos architektūra ir komponentai
SQL Server Replikacijos architektūra susideda iš kelių tarpusavyje sujungtų komponentų, kurie kartu platina ir sinchronizuoja duomenis visoje jūsų duomenų bazės infrastruktūroje. Šiame skyriuje nagrinėjami pagrindiniai komponentai, įskaitant leidėjus, platintojus, prenumeratorius, leidinius, straipsnius, prenumeratas ir agentus, kurie koordinuoja duomenų srautus tarp jų:
- Leidėjas: Leidėjas yra SQL Server egzempliorius, kuriame yra viena ar kelios duomenų bazės su replikuotinais duomenimis. Jis veikia kaip autoritetingas šaltinis replikacijos topologijoje.
- Platintojas: Platintojas yra SQL Server egzempliorius, kuris valdo duomenų srautą tarp leidėjų ir prenumeratorių. Platintojo egzempliorius talpina platinimo duomenų bazę, kurioje saugomi replikacijos metaduomenys ir operacijos.
- Prenumeratorius: Prenumeratorius yra SQL Server egzempliorius, kuris gauna ir saugo replikuotus duomenis iš leidėjų. Vienas prenumeratoriaus egzempliorius gali talpinti kelias prenumeratorių duomenų bazes, kurių kiekviena gauna duomenis iš skirtingų leidinių.
- Leidinys: Publikacijoje apibrėžiama, kokie duomenys bus replikuojami ir kaip jie bus platinami prenumeratoriams. Jame sugrupuojami susiję straipsniai ir nustatoma replikacijos metodika, taikoma visiems publikuojamiems objektams.
- Straipsnis: Straipsnis yra pagrindinis replikacijos elementas, vaizduojantis individualų duomenų bazės objektą, kuris bus platinamas prenumeratoriams.
- Prenumerata: Prenumerata nustato leidinio ir prenumeratoriaus ryšį, apibrėždama, kaip ir kada duomenys pristatomi į paskirties duomenų bazę.
- Agentai: Agentai yra specializuoti procesai, atliekantys faktinį duomenų perkėlimo ir sinchronizavimo tarp replikacijos komponentų darbą.
3. Tipai SQL Server Replikacija
SQL Server teikia kelis replikacijos tipus, kurių kiekvienas skirtas konkretiems duomenų platinimo scenarijams ir verslo reikalavimams. Norint pasirinkti tinkamą metodą savo aplinkai, būtina suprasti kiekvieno tipo charakteristikas, privalumus ir apribojimus.
3.1 Momentinės kopijos replikacija
Momentinės kopijos replikacija sukuria duomenų, kurie bus publikuojami konkrečiu laiku, momentinę kopiją, o tada išplatina tikslią pilną kopiją prenumeratoriams. Vėlesnių pakeitimų nestebima, kol nesugeneruojama kita momentinė kopija. Momentinės kopijos replikacija yra paprasčiausia replikacijos forma, todėl ji tinka tais atvejais, kai duomenys keičiasi retai arba kai priimtina turėti šiek tiek pasenusius duomenis.
Įprasti naudojimo atvejai apima periodiškai atnaujinamų etaloninių duomenų, pvz., kainoraščių ar valiutų kursų, platinimą, pradinių duomenų rinkinių teikimą duomenų saugykloms ir scenarijus, kai visiškas duomenų atnaujinimas yra geresnis nei atskirų pakeitimų stebėjimas. Pavyzdžiui, įmonė gali naudoti momentinių kopijų replikaciją, kad kartą per dieną platintų atnaujintus produktų katalogus filialams.
Pagrindiniai momentinių kopijų replikacijos privalumai yra paprastumas, maži priežiūros reikalavimai ir galimybė replikuoti duomenis be pirminių raktų. Tačiau ji turi didelių trūkumų, įskaitant didelį poveikį generuojant momentines kopijas dėl lentelių užrakinimo, didelį vėlavimą tarp atnaujinimų ir neefektyvumą dirbant su dideliais duomenų rinkiniais arba dažnai besikeičiančiais duomenimis. Bet kokie prenumeratorių atlikti pakeitimai prarandami, kai taikoma kita momentinė kopija.
3.2 Transakcinis replikavimas
Transakcijų replikacija leidžia leidėjo pakeitimus pateikti prenumeratoriams beveik realiuoju laiku, replikuojant atskiras transakcijas joms įvykstant. Pradžioje nustatoma pradinė momentinė kopija, tada nuolat stebima transakcijų žurnalo informacija apie publikuotų straipsnių pakeitimus ir palaipsniui pateikiami prenumeratoriams.
Transakcijų replikacija idealiai tinka serverių tarpusavio ryšio scenarijams, kuriems reikalingas didelis pralaidumas ir maža delsa. Įprasti naudojimo atvejai apima mastelio keitimo ir prieinamumo gerinimą perkeliant skaitymo operacijas į abonentų serverius, palaikant duomenų saugyklas ir ataskaitų teikimą beveik realiuoju laiku, integruojant duomenis iš kelių vietų į centrinę vietą ir perkeliant paketinį apdorojimą į dedikuotus serverius. Pavyzdžiui, el. prekybos platforma gali naudoti transakcijų replikaciją, kad palaikytų sinchronizuotus atsargų duomenis regioninėse duomenų bazėse.
Transakcinio replikavimo privalumai apima mažą duomenų perdavimo delsą, didelį pralaidumą dideliems operacijų kiekiams ir galimybę atlikti nereplikuojamus pakeitimus abonentų vietose. Trūkumai apima didesnį sudėtingumą, palyginti su momentinių kopijų replikacija, reikalavimą naudoti pirminius raktus replikuotose lentelėse ir galimybę, kad replikacija nutrūktų, jei abonentų vietose kyla konfliktų, pvz., pirminių raktų pažeidimai.
3.3 Sujungimo replikacija
Sujungimo replikacija specialiai sukurta aplinkoms, kuriose prenumeratoriai turi dirbti neprisijungę prie interneto arba su pertrūkiais, o tada sinchronizuoti pakeitimus, kai ryšys atsiranda. Šis replikacijos tipas leidžia keisti duomenis tiek leidėjo, tiek prenumeratorių vietose atskirai, stebint pakeitimus naudojant paleidiklius ir metaduomenų lenteles bei automatiškai sujungiant pakeitimus sinchronizavimo metu.
Sujungimo replikacija skirta mobiliosioms programoms ir paskirstytųjų serverių aplinkoms, kuriose vyksta autonominiai pakeitimai. Naudojimo atvejai apima pardavimų automatizavimą, kai mobilieji vartotojai dirba neprisijungę ir vėliau sinchronizuoja, pardavimo vietos sistemas, kurios veikia nepriklausomai ir periodiškai konsoliduoja duomenis, ir paskirstytas programas, kai kelioms vietoms reikia atnaujinti bendrinamus duomenis. Pavyzdžiui, mažmeninės prekybos tinklas gali naudoti sujungimo replikaciją, kad kiekviena parduotuvė galėtų valdyti vietines atsargas, sinchronizuodama su centrine sandėlio sistema.
Sujungimo replikacijos privalumai apima autonominių abonentų, galinčių atlikti pakeitimus, palaikymą, toleranciją nutrūkstamam tinklo ryšiui ir lankstų konfliktų sprendimą. Trūkumai apima didesnį sąrankos ir priežiūros sudėtingumą, našumo išlaidas dėl metaduomenų ir paleidiklių stebėjimo, unikalių identifikatorių stulpelių pridėjimą prie lentelių ir galimus konfliktus, kuriuos reikia valdyti ir spręsti.
3.4 Lygiaverčių įrenginių replikacija
„Peer-to-peer“ replikacija pagrįsta transakciniu replikavimu ir leidžia keliems serverio egzemplioriams (trims ar daugiau mazgų) veikti kaip lygiaverčiams lygiaverčiams mazgams, kai kiekvienas mazgas vienu metu atlieka ir leidėjo, ir prenumeratoriaus funkciją. Šioje topologijoje visi mazgai tvarko identiškas duomenų kopijas ir gali atlikti tiek skaitymo, tiek rašymo operacijas, taip užtikrindami tikrai paskirstytą kelių mazgų aplinką.
„Peer-to-peer“ replikacija tinka programoms, kurioms reikalingas skaitymo operacijų mastelio keitimas ir didelis prieinamumas. Naudojimo atvejai apima žiniatinklio programas, kurios paskirsto katalogo užklausas keliuose mazguose, išlaikant nuoseklius duomenis, scenarijus, kuriems reikalinga priežiūra ar atnaujinimai be prastovų, atskirai atjungiant mazgus, ir pasaulines programas su duomenų centrais skirtinguose regionuose. Pavyzdžiui, pasaulinė programinės įrangos palaikymo organizacija gali naudoti „peer-to-peer“ replikaciją skirtinguose biuruose skirtingose laiko juostose, kad kiekviena vieta turėtų vietinę prieigą prie dabartinių duomenų.
„Peer-to-peer“ replikacijos privalumai apima geresnį skaitymo našumą dėl mastelio keitimo, didesnį prieinamumą naudojant kelis aktyvius mazgus ir beveik realiuoju laiku užtikrinamą duomenų nuoseklumą. Trūkumai apima „Enterprise Edition“ reikalavimą, sudėtingą kelių mazgų topologijų valdymą, identiškų schemų ir duomenų poreikį visuose mazguose ir galimus konfliktus, kai rašymo operacijos nėra tinkamai padalintos.
3.5 Dvikryptis replikavimas
Dvikryptė replikacija yra specifinė transakcinio replikavimo topologija, specialiai sukurta dviejų serverių aplinkoms, kuriose abu serveriai turi keistis pakeitimais tarpusavyje. Kiekvienas serveris skelbia duomenis ir prenumeruoja tuos pačius duomenis iš kito serverio, taip sukurdamas paprastą dvipusį sinchronizavimo srautą. Nors „peer-to-peer“ replikacija taip pat gali palaikyti du mazgus, dvikryptė replikacija užtikrina geresnį našumą šiuo konkrečiu scenarijumi.
Dvikryptis replikavimas tinka scenarijams, kuriems reikalingi du aktyvūs serveriai su sinchronizuotais duomenimis, pvz., aktyvus-aktyvus konfigūracijos, skirtos dideliam prieinamumui, arba geografiškai paskirstytoms programoms, kur kiekvienai svetainei reikalinga vietinė rašymo prieiga. Topologija reikalauja kruopštaus programos projektavimo, kad būtų galima padalinti duomenų atnaujinimus ir išvengti konfliktų.
Privalumai apima optimizuotą našumą dviejų serverių scenarijuose, paprastesnę konfigūraciją, palyginti su „peer-to-peer“ replikacija, beveik realiuoju laiku sinchronizavimą ir mažesnes išlaidas, palyginti su suliejimo replikacija. Trūkumai apima apribojimą iki dviejų serverių, integruoto konfliktų sprendimo, reikalaujančio kruopštaus programos projektavimo, nebuvimą ir tinkamų skaidymo strategijų poreikį konfliktams išvengti.
3.6 Atnaujinamos prenumeratos
Atnaujinamos prenumeratos išplečia transakcinį replikavimą, kad prenumeratoriai galėtų retkarčiais keisti replikuotus duomenis, kurie vėliau perduodami leidėjui ir kitiems prenumeratoriams. Skirtingai nuo sujungimo replikacijos ar „peer-to-peer“ topologijų, skirtų dažniems dvikrypčiams atnaujinimams, atnaujinamos prenumeratos skirtos scenarijams, kai pagrindinis duomenų srautas yra vienpusis (leidėjo prenumeratoriams), tačiau prenumeratoriams retkarčiais reikia atlikti pataisymus arba atnaujinimus.
Atnaujinamos prenumeratos tinka tais atvejais, kai dauguma atnaujinimų atliekami leidėjo, tačiau retkarčiais atnaujinimai reikalingi ir prenumeratorių skyriuose, pavyzdžiui, lauko biuruose, kurie daugiausia skaito duomenis, bet turi atlikti vietinius pataisymus ar atnaujinimus. Topologijai reikalingas kruopštus planavimas, siekiant sumažinti konfliktus ir užtikrinti duomenų nuoseklumą.
Pagrindiniai privalumai yra tai, kad abonentams leidžiama atlikti ribotas rašymo operacijas, išlaikant transakcinio replikavimo našumo charakteristikas. Trūkumai yra padidėjęs sudėtingumas, galimi konfliktai, kuriuos reikia išspręsti, našumo išlaidos dėl dviejų fazių patvirtinimo protokolo tiesioginio atnaujinimo režimu ir reikalavimas, kad visos replikuotos lentelės turėtų pirminius raktus.
3.7 Skirtingų replikacijų tipų palyginimas
| Replikacijos tipas | Atnaujinimo laikas | Leidėjų skaičius | Lyderystė | Naudokite scenarijus |
|---|---|---|---|---|
| Momentinė nuotrauka | Laiko taškas | 1 | Viena kryptimi (Leidėjas → Prenumeratoriai) | Retai kintantys atskaitos duomenys (kainoraščiai, valiutų kursai) |
| Sandoris | Beveik realiuoju laiku | 1 | Viena kryptimi (Leidėjas → Prenumeratoriai) | Didelio našumo scenarijai (el. prekybos inventorius, duomenų saugyklos, ataskaitų teikimas) |
| eiti | Periodinis (kai prijungtas) | 1 | Dvikryptis (leidėjas ↔ prenumeratoriai) | Mobiliosios programėlės, neprisijungę darbuotojai (pardavimų automatizavimas, lauko paslaugos) |
| „Peer-to-Peer“ | Beveik realiuoju laiku | Keli (3 ar daugiau) | Dvikryptis (visi mazgai) | Pasauliniai kelių duomenų centrų diegimai (visame pasaulyje esantys biurai su vietine skaitymo ir rašymo prieiga) |
| Dvikryptis | Beveik realiuoju laiku | 2 | Dvikryptis (abu serveriai) | Dviejų duomenų centrų aktyvus-aktyvus konfigūracijos (dviejų vietų aukštas prieinamumas) |
| Atnaujinamos prenumeratos | Beveik realiuoju laiku | 1 | Iš esmės viena kryptimi (retkarčiais atnaujinama atvirkščiai) | Filialai, kurie daugiausia skaito, bet retkarčiais atnaujina (vietiniai pataisymai) |
4. Nustatymas SQL Server Replikacija
4.1 Būtinos sąlygos ir reikalavimai
4.1.1 Programinės įrangos reikalavimai
SQL Server replikacijai reikalingas suderinamumas SQL Server versijos visuose topologijos dalyviuose. Platintojo versija turi būti lygi arba naujesnė už leidėjo versiją, o prenumeratorius gali turėti dvi leidėjo versijas. Pavyzdžiui, SQL Server 2016 m. leidėjas gali atkartoti SQL Server 2012, 2014, 2016, 2017 arba 2019 m. prenumeratoriai.
4.1.2 Leidimų reikalavimai
Replikacijos konfigūravimui kiekviename lygmenyje reikalingos specialios teisės. Sistemos administratoriaus fiksuoto serverio vaidmens nariai gali atlikti visas replikacijos konfigūravimo užduotis. Norėdami gauti išsamesnes teises, vartotojai turi būti db_owner duomenų bazės vaidmens nariai leidėjo ir prenumeratoriaus duomenų bazėse.
4.2 1 veiksmas: paskirstymo konfigūravimas
Platinimo konfigūravimas yra pirmasis nustatymo žingsnis SQL Server replikacija.
Norėdami sukonfigūruoti paskirstymą naudodami SQL Server Valdymo studija:
- Prisijunkite prie SQL Server egzempliorius SQL Server Vadybos studija.
- Objektų naršyklėje dešiniuoju pelės mygtuku spustelėkite Replikacija aplanke ir pasirinkite Konfigūruoti paskirstymą.
- Paskirstymo konfigūravimo vedlyje spustelėkite Sekantis pasveikinimo puslapyje.
- Dėl Skirstytuvas puslapyje pasirinkite vieną iš šių parinkčių, atsižvelgdami į savo topologijos reikalavimus:
- Vietinis platintojasPasirinkite „ServerioName veiks kaip savo paties platintojas“; SQL Server „sukurs platinimo duomenų bazę ir žurnalą“, jei norite, kad leidėjas ir platintojas veiktų tame pačiame egzemplioriuje (dabartiniame egzemplioriuje). Šią konfigūraciją paprasčiau nustatyti ir ji tinka mažesnėms aplinkoms arba kai tinklo delsa tarp leidėjo ir platintojo sukeltų problemų.
- Nuotolinis platintojasPasirinkite „Naudoti šį serverį kaip platintoją“ ir spustelėkite papildyti , jei norite perkelti platinimo apdorojimą į atskirą egzempliorių, nurodykite nuotolinį platintojo serverį. Ši konfigūracija pagerina našumą, kai replikacijos apimtys didelės, paskirstant darbo krūvį keliuose serveriuose. Turėsite pateikti nuotolinio platintojo pavadinimą ir slaptažodį, kurį leidėjas naudos prisijungdamas prie platintojo.
- Spauskite Sekantis , kad nurodytumėte momentinės kopijos aplanko vietą. Naudokite UNC kelią (pvz., \\serveriopavadinimas\bendrinamas\aplankas), o ne vietinį kelią, kad užtikrintumėte prieinamumą visame tinkle.
- Dėl Platinimo duomenų bazė puslapyje priimkite numatytąjį platinimo duomenų bazės pavadinimą (paprastai „platinimas“) arba nurodykite pasirinktinį pavadinimą, tada sukonfigūruokite duomenų ir žurnalų failų vietas.
- Dėl Leidėjai puslapyje patikrinkite, ar dabartinis serveris įjungtas kaip leidėjas. Jei konfigūruosite dabartinį serverį kaip platintoją, galėsite pridėti papildomų leidėjų, kurie naudos šį platintoją.
- Peržiūrėkite vedlio veiksmus ir spustelėkite apdaila paskirstymui konfigūruoti.
4.3 2 veiksmas: sukurkite leidinį
Sukonfigūravus platinimą, kitas žingsnis yra sukurti leidinį, kuriame apibrėžiama, kurie duomenų objektai bus replikuojami prenumeratoriams.
Norėdami sukurti leidinį naudodami SQL Server Valdymo studija:
- Objektų naršyklėje išplėskite Replikacija aplankas.
- Dešiniuoju pelės mygtuku spustelėkite Vietiniai leidiniai ir tuomet Naujas leidinys.
- Prasideda naujo leidinio vedlys; spustelėkite Sekantis pasveikinimo puslapyje.
- Pasirinkite duomenų bazę, kurią norite publikuoti, iš sąrašo. Publikacijų duomenų bazė puslapis. Tai automatiškai įjungia publikavimą pasirinktoje duomenų bazėje.
- Dėl Leidinio tipas puslapyje pasirinkite replikacijos tipą: Momentinės nuotraukos leidinys, Sandorio publikacija, „Peer-to-Peer“ leidinysarba Sujungti leidinį.
- Dėl Straipsniai puslapį, išskleiskite Lentelės mazgą ir pasirinkite lenteles, kurias norite įtraukti kaip straipsnius.
- Pasirinktinai išskleisti Saugomos procedūros, Peržiūrosarba kitų tipų objektus, kad būtų galima įtraukti papildomų straipsnių.
- Spauskite Straipsnio ypatybės , kad sukonfigūruotumėte filtravimą ar kitus su straipsniu susijusius nustatymus.
- Dėl Filtruoti lentelės eilutes puslapyje, jei reikia, pridėkite eilučių filtrus.
- Dėl Momentinės kopijos agentas puslapyje pasirinkite, kada sukurti momentinę kopiją: nedelsiant, konkrečiu laiku arba pagal tvarkaraštį.
- Dėl Agento apsauga puslapyje nurodykite „Snapshot Agent“ saugos kontekstą.
- Dėl Vedlio veiksmai puslapyje pasirinkite Sukurkite leidinį.
- Įveskite leidinio pavadinimą ir spustelėkite apdaila.
4.4 3 veiksmas: sukurkite prenumeratą
Sukūrus leidinį, kitas žingsnis – sukurti prenumeratas, kurios jungia leidinį su prenumeratorių duomenų bazėmis.
Prenumeratos gali būti tiesioginės prenumeratos (valdomos platintojo) arba tiesioginės prenumeratos (valdomos abonento). Pagrindiniai skirtumai yra tai, kur kuriate prenumeratą ir kurį agento vietą pasirenkate, o tai lemia prenumeratos veiksmą (tiesioginė ar tiesioginė).
Dėl „Push“ prenumeratos (tvarko platintojas):
- Dėl leidėjas serveris, išplėsti Replikacija -> Vietiniai leidiniai.
- Dešiniuoju pelės mygtuku spustelėkite leidinį ir pasirinkite Nauji abonementai.
Prenumeratos gavimui (valdoma Prenumeratoriaus):
- Dėl abonentas serveris, išplėsti Replikacija, dešiniuoju pelės mygtuku spustelėkite Vietiniai abonementaiir pasirinkite Nauji abonementai.
- Dėl Leidinys puslapis, spustelėkite rasti SQL Server Leidėjas ir prisijunkite prie leidėjo serverio.
Bendrieji vedlio veiksmai abiem prenumeratos tipams:
- Naujo prenumeratos vedlyje spustelėkite Sekantis pasveikinimo puslapyje.
- Pasirinkite leidinį ir spustelėkite Sekantis.
- Dėl Platinimo agento vieta puslapyje pasirinkite agento vietą:
- Tiesioginė prenumerataPasirinkite „Visus agentus paleisti pas platintoją“ – platintojas perduos pakeitimus prenumeratoriams.
- Prenumeratos gavimasPasirinkite „Paleisti kiekvieną agentą pas jo prenumeratorių“ – kiekvienas prenumeratorius nuskaitys pakeitimus iš platintojo.
- Dėl Abonentai puslapyje pasirinkite esamus abonentų serverius arba spustelėkite Pridėti abonento kad pridėtumėte naujų.
- Kiekvienam abonentui pasirinkite paskirties duomenų bazę arba sukurkite naują duomenų bazę. Pastaba: Prenumeratos duomenų bazė turi skirtis nuo leidėjo duomenų bazės, net jei naudojama ta pati SQL Server instancija.
- Dėl Platinimo agento saugumas puslapyje spustelėkite kiekvienos prenumeratos ypatybių mygtuką, kad sukonfigūruotumėte saugos kontekstą.
- Dėl Sinchronizavimo tvarkaraštis puslapyje pasirinkite nuolatinę sinchronizaciją arba suplanuotą sinchronizaciją.
- Dėl Inicijuoti prenumeratas puslapyje pasirinkite Nedelsiant inicijuoti vedlio užbaigimo metu arba Pirmojo sinchronizavimo metu.
- Peržiūrėkite vedlio veiksmus ir spustelėkite apdaila.
5. Stebėjimas ir valdymas SQL Server Replikacija
5.1 Replikacijos stebėjimas naudojant „Replication Monitor“
Norėdami paleisti replikacijos monitorių:
- In SQL Server Valdymo studija, išskleisti Replikacija Objektų naršyklėje.
- Dešiniuoju pelės mygtuku spustelėkite Replikacija ir tuomet Paleisti replikacijos monitorių.
- Jei nėra registruotų leidėjų, spustelėkite Pridėti leidėją kairiojoje srityje.
- Pasirinkti papildyti SQL Server Leidėjas ir prisijunkite prie leidėjo serverio.
- Leidėjas rodomas kairiajame lange su išskleidžiamais mazgais, skirtais leidiniams ir prenumeratoms.
5.2 Veiklos stebėjimas
5.2.1 Monitoriaus delsa
Replikacijos delsa – tai laiko tarpas tarp pakeitimo, įvykusio leidėjo paslaugoje, ir to pakeitimo pritaikymo prenumeratoriaus paslaugoje. Stebėkite delsą, kad užtikrintumėte, jog duomenų naujumas atitiktų verslo reikalavimus.
Norėdami peržiūrėti delsos metriką skirtuke „Visos prenumeratos“, naudokite replikacijos monitorių. Stulpelyje „Delsa“ rodomas vidutinis delsos laikas sekundėmis. Transakcijų replikacijos atveju sekimo žetonai pateikia tikslius delsos matavimus, įterpdami žymeklių operacijas, kurios stebimos replikacijos sraute.
Norėdami naudoti sekimo žetonus:
- Replikacijos monitoriuje pasirinkite transakcinį leidinį.
- Spustelkite Tracer žetonai skirtukas.
- Spauskite Įterpti žymeklį įterpti žymeklio sandorį.
- Stebėkite prieigos raktą jam keliaujant iš leidėjo pas platintoją ir galiausiai prenumeratorių.
- Peržiūrėkite kiekvieno segmento trukmę kliūčių nustatymui.
5.2.2 Monitoriaus pralaidumas
Pralaidumas matuoja laikui bėgant replikuotų duomenų kiekį, paprastai išreiškiamą operacijų per sekundę arba komandų per sekundę skaičiumi. Stebėkite pralaidumą, kad užtikrintumėte, jog replikacija neatsiliktų nuo leidėjo veiklos.
Nors „Replication Monitor“ teikia pagrindinę sinchronizavimo būseną, pristatymo greitis ir išsami pralaidumo metrika grafinėje sąsajoje nematomi. Norėdami stebėti pralaidumą, naudokite T-SQL užklausas paskirstymo duomenų bazėje:
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
Būsenos kodai: 1 = Pradėta, 2 = Vykdoma, 3 = Sėkmingai, 4 = Laukimo būsena, 5 = Bandoma dar kartą, 6 = Nepavyko. Palyginkite pristatymo dažnį su leidėjo operacijų dažniu, kad nustatytumėte situacijas, kai replikacija atsilieka. Našumo skaitikliai „Windows“ našumo monitorius pateikti papildomus pralaidumo rodiklius kiekvienam replikacijos agentui.
5.2.3 Kliūčių nustatymas
Replikacijos kliūtys gali atsirasti keliuose topologijos taškuose. Leidėjo paslaugoje per ilgas momentinių kopijų generavimo laikas arba žurnalų skaitytuvo agento vėlavimai gali rodyti išteklių apribojimus. Replikacijos metu stebėkite leidėjo procesoriaus, atminties ir disko įvesties/išvesties duomenis.
Platintojuje patikrinkite, ar platinimo duomenų bazėje nesikaupia operacijų. Didelis skaičius neišplatintų komandų rodo, kad platintojas negali suspėti pristatyti duomenų. Stebėkite platintojo serverio išteklius ir apsvarstykite galimybę naudoti specialų nuotolinį platintoją dideliems operacijų kiekiams.
Lėtas pakeitimų taikymas abonento pusėje gali būti nepakankamų išteklių, trūkstamų indeksų arba apribojimų, kurie lėtina įterpimo operacijas, rezultatas. Stebėkite abonento išteklių naudojimą ir užklausų našumą, kai veikia paskirstymo agentas. Tinklo pralaidumo apribojimai tarp komponentų taip pat sukelia kliūtis, ypač esant dideliems duomenų kiekiams.
5.3 Replikacijos agentų valdymas
5.3.1 Paleidimo ir sustabdymo agentai
Norėdami paleisti arba sustabdyti replikacijos agentą:
- In SQL Server Valdymo studija, išskleisti SQL Server Agentas -> Darbai.
- Raskite replikacijos agento užduotį (pavadinimai paprastai apima leidinio ir prenumeratoriaus informaciją).
- Dešiniuoju pelės mygtuku spustelėkite užduotį ir pasirinkite Pradėti darbą or Sustabdyti darbą.
5.3.2 Agentų profilių konfigūravimas
Agentų profiliuose yra parametrų rinkiniai, kurie valdo agentų elgesį. SQL Server pateikia numatytuosius profilius, optimizuotus dažniausiai pasitaikantiems scenarijams, ir galite kurti pasirinktinius profilius konkretiems poreikiams.
Norėdami modifikuoti agentų profilius:
- Objektų naršyklėje išplėskite Replikacija.
- Dešiniuoju pelės mygtuku spustelėkite Replikacija ir tuomet Platintojo ypatybės.
- Spustelkite Profilio numatytieji nustatymai mygtuką.
- Išskleidžiamajame meniu pasirinkite agento tipą (momentinė kopija, žurnalų skaitytuvas, paskirstymas arba sujungimas).
- Pasirinkite profilį ir spustelėkite Skelbimų parametrų reikšmėms peržiūrėti.
- Spauskite Naujas profilis sukurti pasirinktinį profilį pagal esamą.
- Jei reikia, pakeiskite parametrus ir spustelėkite OK.
Pritaikykite agentui profilį redaguodami prenumeratos ypatybes ir pasirinkdami norimą profilį išskleidžiamajame sąraše „Agento profilis“.
5.3.3 Agento parametrai ir nustatymai
Agento parametrai tiksliai derina našumą ir elgseną. Pagrindiniai paskirstymo agento parametrai apima „CommitBatchSize“ (operacijų, taikomų vienam patvirtinimui, skaičius), „CommitBatchThreshold“ (komandų skaičius prieš patvirtinimą), „SubscriptionStreams“ (lygiagretūs ryšiai greitesniam pristatymui) ir „QueryTimeout“ (komandų skirtasis laikas).
Svarbūs žurnalų skaitytuvo agento parametrai yra „ReadBatchSize“ (nuskaitomų operacijų skaičius per nuskaitymą), „ReadBatchThreshold“ (komandos prieš pristatymą) ir „PollingInterval“ (vėlavimas tarp žurnalų nuskaitymų). Koreguokite šiuos parametrus pagal operacijų kiekį ir delsos reikalavimus.
5.4 Atsarginių kopijų kūrimo ir atkūrimo aspektai
Duomenų bazių, susijusių su replikacija, atsarginių kopijų kūrimas reikalauja ypatingo dėmesio. Leidėjo duomenų bazei būtinos reguliarios pilnos ir operacijų žurnalų atsarginės kopijos. Pažymėkite duomenų bazės atsarginę kopiją replikacijai naudodami parinktį „WITH REPLICATION“, kai kuriate duomenų bazių atsargines kopijas operacijų replikacijos metu. Reguliariai kurkite platinimo duomenų bazės atsargines kopijas, kad apsaugotumėte replikacijos konfigūraciją.
Atkuriant leidėjo duomenų bazę tame pačiame serveryje tuo pačiu pavadinimu, naudokite parinktį WITH KEEP_REPLICATION, kad išsaugotumėte replikacijos būseną. Ši parinktis užtikrina, kad operacijos, kurių dar neapdorojo žurnalų skaitytuvo agentas, liktų pažymėtos replikacijai, todėl replikacija gali būti tęsiama automatiškai, neiš naujo inicijuojant prenumeratų.
Avarinio atkūrimo atvejais, kai atsarginės kopijos nepasiekiamos, sugadintos arba duomenų bazės failai yra pažeisti, gali prireikti specializuotų atkūrimo įrankių. DataNumen SQL Recovery gali išgauti duomenis iš sugadintų arba nepasiekiamų MDF ir NDF failų, teikdamas kraštutinę priemonę, kai standartinės atkūrimo procedūros nepavyksta.
Norėdami gauti daugiau informacijos apie SQL Server atsarginę kopiją, žr. mūsų išsamus vadovas.
6. Dažnai užduodami klausimai (DUK)
K: Kuo skiriasi momentinė kopija ir transakcinė replikacija?
A: Momentinės kopijos replikacija konkrečiu laiko momentu sukuria pilną duomenų kopiją ir pritaiko ją abonentui, todėl tinka retai kintantiems duomenims. Transakcijų replikacija prasideda nuo pradinės momentinės kopijos ir tada nuolat replikuoja atskiras operacijas joms įvykstant, užtikrindama beveik realiuoju laiku sinchronizuojamą dažnai kintančius duomenis.
K: Ar galiu pakartoti tarp skirtingų SQL Server versijos?
A: Taip, SQL Server Replikacija palaiko versijų suderinamumą ribotame diapazone. Platintojo versija turi būti lygi arba naujesnė už leidėjo versiją, o prenumeratorius gali turėti dvi leidėjo versijas. Pavyzdžiui, jei leidėjas yra SQL Server 2016 m. abonentas gali būti SQL Server 2012, 2014, 2016, 2017 arba 2019.
K: Kaip tvarkyti konfliktus sujungimo replikacijos metu?
A: Sujungimo replikacija suteikia integruotus konfliktų aptikimo ir sprendimo mechanizmus. Konfliktų sprendiklius galite konfigūruoti straipsnio lygmeniu, pasirinkdami iš integruotų sprendiklių arba įdiegdami pasirinktinius konfliktų sprendiklius. Konfliktai paprastai sprendžiami naudojant prioritetais arba laiko žymomis pagrįstus metodus, su galimybe registruoti konfliktus rankinei peržiūrai.
K: Koks yra replikacijos poveikis našumui?
A: Replikacija veikia našumą keliais būdais: leidėjas patiria papildomų išlaidų sekdamas pakeitimus ir generuodamas momentines kopijas, platintojas naudoja išteklius operacijoms saugoti ir persiųsti, o tinklo pralaidumas eikvojamas duomenų perdavimo metu. Poveikis priklauso nuo replikacijos tipo: momentinių kopijų replikacija sukelia periodinius didelio poveikio duomenų pliūpsnius, o operacijų replikacija palaiko nuoseklesnę, bet nuolatinę apkrovą.
K: Kaip apsaugoti savo replikacijos topologiją?
A: Apsaugokite savo replikacijos topologiją įgyvendindami keletą geriausių praktikų: naudokite „Windows“ autentifikavimą arba stiprią SQL Server autentifikavimą, ryšių šifravimą naudojant TLS, momentinių nuotraukų aplanko apsaugą naudojant atitinkamus NTFS teises, sukonfigūruokite leidinių prieigos sąrašą (PAL), kad valdytumėte prieigą, naudokite atskiras paslaugų paskyras su minimaliais reikalingais leidimais kiekvienam replikacijos agentui ir reguliariai tikrinkite replikacijos saugos nustatymus.
K: Ar galiu replikuoti į „Azure SQL“ duomenų bazę?
A: Taip, galite replikuoti į „Azure SQL“ duomenų bazę naudodami transakcinį replikavimą su vietine sistema. SQL Server arba „Azure SQL“ valdomas egzempliorius kaip leidėjas ir platintojas. „Azure SQL“ duomenų bazė gali būti prenumeratorius, bet ne leidėjas ar platintojas. Suliejimo replikacija ir „peer-to-peer“ replikacija nepalaikoma „Azure SQL“ duomenų bazėje.
K: Kaip stebėti replikacijos vėlavimą?
A: Stebėkite replikacijos vėlavimą naudodami replikacijos monitorių SQL Server „Management Studio“, kurioje rodomi kiekvienos prenumeratos delsos rodikliai. Taip pat galite pateikti užklausas platinimo duomenų bazės lentelėse, tokiose kaip MSdistribution_history ir MSrepl_commands, naudoti replikacijos agentams būdingus našumo skaitiklius arba nustatyti įspėjimus pagal delsos slenksčius, kad būtų galima aktyviai aptikti ir spręsti sinchronizavimo vėlavimus.
K: Kas nutinka, kai abonentas yra neprisijungęs?
A: Kai abonentas neprisijungęs, elgesys priklauso nuo replikacijos tipo. Transakcinio replikavimo atveju operacijos kaupiamos paskirstymo duomenų bazėje, kol abonentas vėl prisijungia, tada sinchronizavimas atnaujinamas. Sujungimo replikavimo atveju pakeitimai stebimi abiejose pusėse ir sujungiami, kai atkuriamas ryšys. Saugojimo laikotarpio nustatymas nustato, kiek laiko duomenys saugomi, kol juos reikia iš naujo inicijuoti.
K: Kaip į esamą leidinį įtraukti naujų straipsnių?
A: Norėdami į esamą leidinį įtraukti naujų straipsnių, naudokite SQL Server „Management Studio“, kad pakeistumėte leidinio ypatybes ir pasirinktumėte papildomus objektus, arba naudokite saugomą procedūrą „sp_addarticle“. Pridėję straipsnius, sugeneruokite naują momentinę kopiją ir iš naujo inicijuokite visas prenumeratas, kad prenumeratoriai gautų naujus straipsnius. Atsižvelgiant į leidinio nustatymus, kai kuriems pakeitimams gali reikėti iš naujo inicijuoti prenumeratą.
K: Kaip pašalinti replikaciją iš duomenų bazės?
A: Norėdami pašalinti replikaciją iš duomenų bazės, pirmiausia panaikinkite visas prenumeratas naudodami „sp_dropsubscription“, tada panaikinkite publikaciją naudodami „sp_droppublication“ ir galiausiai išjungkite publikavimą duomenų bazėje naudodami „sp_replicationdboption“. Jei serveris yra platintojas, išjunkite platinimą naudodami „sp_dropdistributor“. Prieš pašalindami replikacijos konfigūraciją, visada sukurkite duomenų bazių atsargines kopijas.
K: Koks skirtumas tarp SQL Server Replikacija ir „AlwaysOn“ prieinamumo grupės?
A: Replikacija yra duomenų paskirstymo ir integravimo sprendimas, veikiantis objekto lygmeniu, tuo pačiu metu Visada prieinamumo grupės yra didelio prieinamumo ir atkūrimo po nelaimių sprendimas, veikiantis duomenų bazės lygmeniu.
7. Išvada
SQL Server Replikacija suteikia patikimą sistemą duomenų platinimui ir sinchronizavimui keliose duomenų bazėse ir vietose. Technologija palaiko įvairius scenarijus, naudodama skirtingus replikacijos tipus.
Tinkamos replikacijos strategijos pasirinkimas priklauso nuo jūsų konkrečių reikalavimų. Atsižvelkite į duomenų keitimo dažnumą, delsos reikalavimus, ar abonentams reikia atlikti atnaujinimus, tinklo charakteristikas ir abonento autonomijos poreikius. Momentinių kopijų replikacija geriausiai veikia retai keičiamiems etaloniniams duomenims, kai delsa nėra kritinė. Transakcijų replikacija tinka dideliems duomenų kiekiams, kuriems reikalingas mažas delsos laikas ir daugiausia vienpusis duomenų srautas.
Rinkitės suliejimo replikaciją, kai abonentams reikalingas autonominis veikimas su neprisijungus pasiekiamomis galimybėmis ir dvikrypte sinchronizacija. Įdiekite „peer-to-peer“ replikaciją, kad galėtumėte subalansuoti skaitymo operacijas keliuose aktyviuose mazguose beveik realiuoju laiku. Apsvarstykite hibridinius metodus, apjungiančius kelis replikacijos tipus sudėtingiems scenarijams su įvairiais reikalavimais.
Nuorodos
- Oficialus „Microsoft“ dokumentas: SQL Server Replikacija
- Oficialus „Microsoft“ dokumentas: replikacijos tipai
- Oficialus „Microsoft“ dokumentas: „Peer-to-Peer“ – transakcinis replikavimas
Apie Autorius:
Yuan Sheng yra vyresnysis duomenų bazių administratorius (DBA), turintis daugiau nei 10 metų patirtį SQL Server aplinkose ir įmonių duomenų bazių valdyme. Jis sėkmingai išsprendė šimtus duomenų bazių atkūrimo scenarijų finansinių paslaugų, sveikatos priežiūros ir gamybos organizacijose.
Yuan specializuojasi SQL Server duomenų bazių atkūrimas, didelio prieinamumo sprendimai ir našumo optimizavimas. Jo didelė praktinė patirtis apima kelių terabaitų duomenų bazių valdymą, „Always On Availability Groups“ diegimą ir automatizuotų atsarginių kopijų kūrimo bei atkūrimo strategijų, skirtų kritiškai svarbioms verslo sistemoms, kūrimą.
Pasitelkdamas savo technines žinias ir praktinį požiūrį, Yuanas daugiausia dėmesio skiria išsamių vadovų, padedančių duomenų bazių administratoriams ir IT specialistams spręsti sudėtingas problemas, kūrimui. SQL Server efektyviai meta iššūkius. Jis neatsilieka nuo naujausių žinių SQL Server leidimus ir besivystančias „Microsoft“ duomenų bazių technologijas, reguliariai testuodamas atkūrimo scenarijus, siekdamas užtikrinti, kad jo rekomendacijos atitiktų geriausią realią praktiką.
Turite klausimų apie SQL Server atkūrimo ar reikia papildomų duomenų bazės trikčių šalinimo nurodymų? Yuan mielai atsiliepimai ir pasiūlymai už šių techninių išteklių tobulinimą.














