1. Sissejuhatus SQL Server replikatsioon
1.1 Mis on SQL Server Replikatsioon?
SQL Server Replikatsioon on tehnoloogiate kogum andmete ja andmebaasiobjektide kopeerimiseks ja levitamiseks ühest andmebaasist teise ning seejärel andmebaaside vahel sünkroonimiseks järjepidevuse säilitamiseks. See funktsioon võimaldab teil luua ja hallata oma andmetest mitu koopiat erinevates serverites ja asukohtades, tagades andmete kättesaadavuse ja usaldusväärsuse.
1.2 Replikatsiooni eesmärk ja eelised
SQL Server Replikatsioon teenindab mitmeid kriitilisi ärivajadusi ja pakub olulisi eeliseid andmebaasi haldamisel ja andmete levitamisel:
- Andmete jaotus asukohtade vahel: Replikatsioon võimaldab teil jagada andmeid piirkondlike kontorite või globaalsete asukohtade vahel, parandades tegevuse efektiivsust, tagades kohaliku juurdepääsu vajalikele andmetele. See vähendab võrgu latentsust ja pakub paremat jõudlust geograafiliselt hajutatud kasutajatele.
- Kõrge käideldavus ja katastroofidejärgne taastamine: Säilitades kriitiliste andmete koopiaid mitmes serveris, pakub replikatsioon redundantsust, mis kaitseb riistvaratõrgete ja katastroofide eest. Põhiserveri rikke korral võivad replikeeritud koopiad toimida varuallikatena, minimeerides seisakuid ja andmete kadu.
- Koormuse tasakaalustamine ja skaleeritavus: Replikatsioon jaotab lugemisoperatsioonid mitme serveri vahel, takistades ühegi serveri pudelikaelaks muutumist. See lähenemisviis parandab süsteemi jõudlust ja võimaldab teie infrastruktuuri horisontaalselt skaleerida vastavalt andmete ja kasutajate nõudluse kasvule.
- Reaalajas aruandlus ja analüüs: Aruandlus- ja analüüsipäringute suunamine replikeeritud serveritesse vähendab tootmisandmebaaside koormust. Kasutajad saavad käivitada keerukaid analüütilisi päringuid peaaegu reaalajas andmete põhjal ilma operatsioonisüsteeme mõjutamata, tagades nii jõudluse kui ka andmete värskuse.
- Andmete integreerimine ja konsolideerimine: Replikatsioon hõlbustab erinevatest allikatest pärit andmete ühendamist üheks konsolideeritud vaateks. See on eriti väärtuslik organisatsioonidele, millel on mitu harukontorit ja mis peavad andmeid peakorteris koondada või hajutatud operatsioonisüsteemidest tsentraliseeritud andmeladude loomiseks.
2. SQL Server Replikatsiooniarhitektuur ja komponendid
SQL Server Replikatsiooniarhitektuur koosneb mitmest omavahel ühendatud komponendist, mis töötavad koos andmete levitamiseks ja sünkroonimiseks teie andmebaasi infrastruktuuris. Selles jaotises uuritakse põhikomponente, sealhulgas kirjastajaid, levitajaid, tellijaid, väljaandeid, artikleid, tellimusi ja agente, mis koordineerivad nendevahelist andmevoogu:
- Publisher: Kirjastaja on SQL Server eksemplar, mis majutab ühte või mitut replikeeritavaid andmeid sisaldavat andmebaasi. See toimib replikatsioonitopoloogias autoriteetse allikana.
- Edasimüüja: Edasimüüja on SQL Server eksemplar, mis haldab andmevoogu kirjastajate ja tellijate vahel. Levitaja eksemplar majutab levitamise andmebaasi, mis salvestab replikatsiooni metaandmeid ja tehinguid.
- Tellija: Tellija on SQL Server eksemplar, mis võtab vastu ja salvestab kirjastajatelt replikeeritud andmeid. Üks tellija eksemplar saab majutada mitut tellijate andmebaasi, millest igaüks võtab vastu andmeid erinevatelt väljaannetelt.
- avaldatud: Publikatsioon määratleb, milliseid andmeid replikeeritakse ja kuidas neid tellijatele levitatakse. See koondab seotud artiklid ja kehtestab replikatsioonimetoodika, mida kohaldatakse kõigi sisalduvate objektide suhtes.
- Artikkel: Artikkel on replikatsiooni põhielement, mis esindab tellijatele levitatavat individuaalset andmebaasiobjekti.
- Tellimine: Tellimus loob suhte väljaande ja tellija vahel, määratledes, kuidas ja millal andmed sihtandmebaasi edastatakse.
- Esindajad: Agendid on spetsiaalsed protsessid, mis teostavad tegelikku tööd – andmete teisaldamist ja sünkroniseerimist replikatsioonikomponentide vahel.
3. Tüübid SQL Server replikatsioon
SQL Server pakub mitut replikatsioonitüüpi, millest igaüks on loodud konkreetsete andmete levitamise stsenaariumide ja ärivajaduste jaoks. Iga tüübi omaduste, eeliste ja piirangute mõistmine on oluline oma keskkonna jaoks õige lähenemisviisi valimiseks.
3.1 Hetktõmmise replikatsioon
Hetktõmmise replikatsioon teeb avaldatavatest andmetest hetktõmmise kindlal ajal ja levitab seejärel tellijatele täpse täieliku koopia. See ei jälgi edasisi muudatusi enne järgmise hetktõmmise genereerimist. Hetktõmmise replikatsioon on replikatsiooni lihtsaim vorm, mistõttu sobib see olukordadesse, kus andmed muutuvad harva või kus veidi aegunud andmete olemasolu on vastuvõetav.
Levinud kasutusjuhud hõlmavad perioodiliselt uuenevate võrdlusandmete (nt hinnakirjad või vahetuskursid) levitamist, andmeladude jaoks esialgsete andmekogumite pakkumist ja stsenaariume, kus täielik andmete värskendamine on eelistatavam kui üksikute muudatuste jälgimine. Näiteks võib ettevõte kasutada hetktõmmise replikatsiooni, et levitada uuendatud tootekatalooge harukontoritesse üks kord päevas.
Hetktõmmise replikatsiooni peamised eelised on lihtsus, vähene hooldusvajadus ja võime andmeid ilma primaarvõtmeteta replikeerida. Sellel on aga olulisi puudusi, sealhulgas suur mõju hetktõmmiste genereerimisel tabelite lukustumise tõttu, suur latentsus värskenduste vahel ning ebaefektiivsus suurte andmekogumite või sageli muutuvate andmete puhul. Kõik tellijate juures tehtud muudatused lähevad järgmise hetktõmmise rakendamisel kaotsi.
3.2 Tehinguline replikatsioon
Tehingute replikatsioon edastab muudatused kirjastajalt tellijatele peaaegu reaalajas, replikeerides üksikuid tehinguid nende toimumise ajal. See algab esialgse hetktõmmisega baasjoone loomiseks, seejärel jälgib pidevalt tehingulogi avaldatud artiklite muudatuste osas ja edastab need tellijatele järk-järgult.
Tehinguline replikatsioon sobib ideaalselt serveritevahelisteks stsenaariumideks, mis nõuavad suurt läbilaskevõimet ja väikest latentsusaega. Levinud kasutusjuhud hõlmavad skaleeritavuse ja kättesaadavuse parandamist lugemistoimingute suunamise teel abonentserveritele, andmeladude ja aruandluse toetamist peaaegu reaalajas andmetega, andmete integreerimist mitmest asukohast kesksesse asukohta ja partiitöötluse suunamist spetsiaalsetele serveritele. Näiteks võib e-kaubandusplatvorm kasutada tehingulist replikatsiooni sünkroniseeritud varude andmete haldamiseks piirkondlikes andmebaasides.
Tehingulise replikatsiooni eeliste hulka kuuluvad madal latentsusaeg andmete edastamisel, suur läbilaskevõime suurte tehingumahtude korral ja võimalus teha abonentide juures replikeerimata muudatusi. Puuduste hulka kuuluvad suurem keerukus võrreldes hetktõmmise replikatsiooniga, replikeeritud tabelites primaarvõtmete nõue ja replikatsiooni katkemise võimalus konfliktide, näiteks primaarvõtmete rikkumise korral abonentide juures.
3.3 Ühendamiste replikatsioon
Ühendatud replikatsioon on spetsiaalselt loodud keskkondade jaoks, kus tellijad peavad töötama võrguühenduseta või katkendliku ühendusega ning seejärel sünkroonima muudatusi, kui ühendus on saadaval. See replikatsioonitüüp võimaldab andmeid nii avaldaja kui ka tellijate juures eraldi muuta, jälgides muudatusi päästikute ja metaandmete tabelite abil ning ühendades muudatused sünkroonimise ajal automaatselt.
Ühendamiste replikatsioon on loodud mobiilirakenduste ja hajuserverikeskkondade jaoks, kus toimuvad autonoomsed muudatused. Kasutusjuhtumite hulka kuuluvad müügijõu automatiseerimine, kus mobiilikasutajad töötavad võrguühenduseta ja sünkroonivad hiljem, müügikohasüsteemid, mis töötavad iseseisvalt ja koondavad andmeid perioodiliselt, ning hajutatud rakendused, kus mitu asukohta peavad jagatud andmeid värskendama. Näiteks võib jaemüügikett kasutada ühendamiste replikatsiooni, et iga kauplus saaks hallata kohalikku laoseisu, sünkroonides samal ajal keskse laosüsteemiga.
Ühendamise replikatsiooni eeliste hulka kuuluvad tugi autonoomsetele abonentidele, kes saavad muudatusi teha, tolerantsus katkendliku võrguühenduse korral ja paindlik konfliktide lahendamine. Puuduste hulka kuuluvad suurem keerukus seadistamisel ja hooldamisel, metaandmete ja päästikute jälgimisest tulenev jõudluse lisakulu, unikaalsete identifikaatorite veergude lisamine tabelitesse ning võimalikud konfliktid, mis vajavad haldamist ja lahendamist.
3.4 Võrdõigusvõrgu replikatsioon
Võrdõigusvõrgu replikatsioon põhineb tehingulisel replikatsioonil ja võimaldab mitmel serveri eksemplaril (kolmel või enamal sõlmel) toimida võrdsete partneritena, kusjuures iga sõlm toimib samaaegselt nii avaldaja kui ka tellijana. Selles topoloogias säilitavad kõik sõlmed identseid andmete koopiaid ja saavad hakkama nii lugemis- kui ka kirjutamistoimingutega, pakkudes tõeliselt hajutatud mitme masterarvutiga keskkonda.
Võrdõigusvõrgu replikatsioon sobib rakenduste jaoks, mis nõuavad lugemistoimingute skaleerimist ja kõrget kättesaadavust. Kasutusjuhtumite hulka kuuluvad veebirakendused, mis levitavad kataloogipäringuid mitme sõlme vahel, säilitades samal ajal järjepidevad andmed, stsenaariumid, mis nõuavad hooldust või uuendamist ilma seisakuteta sõlmede eraldi võrguühenduseta eemaldamise teel, ja globaalsed rakendused, mille andmekeskused asuvad eri piirkondades. Näiteks võib ülemaailmne tarkvaratoe organisatsioon kasutada võrdõigusvõrgu replikatsiooni eri ajavööndites asuvates kontorites, et igal asukohal oleks kohalik juurdepääs ajakohastele andmetele.
Võrdõigusvõrgu replikatsiooni eeliste hulka kuuluvad parem lugemisjõudlus tänu skaleerimisele, suurem kättesaadavus mitme aktiivse sõlme korral ja peaaegu reaalajas andmete järjepidevus. Puuduste hulka kuuluvad Enterprise Editioni nõue, mitmesõlmeliste topoloogiate haldamise keerukus, vajadus identse skeemi ja andmete järele kõigis sõlmedes ning võimalikud konfliktid, kui kirjutamisoperatsioonid pole õigesti jaotatud.
3.5 Kahesuunaline replikatsioon
Kahesuunaline replikatsioon on spetsiifiline tehingulise replikatsiooni topoloogia, mis on loodud spetsiaalselt kahe serveriga keskkondade jaoks, kus mõlemad serverid peavad omavahel muudatusi vahetama. Mõlemad serverid avaldavad andmeid ja tellivad teiselt serverilt samu andmeid, luues lihtsa kahesuunalise sünkroniseerimisvoo. Kuigi võrdõigusvõrgu replikatsioon toetab ka kahte sõlme, pakub kahesuunaline replikatsioon selle konkreetse stsenaariumi jaoks paremat jõudlust.
Kahesuunaline replikatsioon sobib stsenaariumide korral, mis nõuavad kahte aktiivset serverit sünkroniseeritud andmetega, näiteks aktiivsete ja aktiivsete konfiguratsioonide korral kõrge käideldavuse tagamiseks või geograafiliselt hajutatud rakenduste puhul, kus igal saidil on vaja kohalikku kirjutamisõigust. Topoloogia nõuab hoolikat rakenduse kujundamist, et jaotada andmete värskendusi ja vältida konflikte.
Eeliste hulka kuuluvad optimeeritud jõudlus kahe serveri stsenaariumide korral, lihtsam konfigureerimine võrreldes peer-to-peer replikatsiooniga, peaaegu reaalajas sünkroniseerimine ja väiksemad üldkulud võrreldes ühendamise replikatsiooniga. Puuduste hulka kuuluvad piirang täpselt kahe serveriga, sisseehitatud konfliktide lahendamise puudumine, mis nõuab hoolikat rakenduste disaini, ja vajadus sobivate partitsioonistrateegiate järele konfliktide vältimiseks.
3.6 Uuendatavad tellimused
Värskendatavad tellimused laiendavad tehingute replikatsiooni, et võimaldada tellijatel teha replikeeritud andmetes aeg-ajalt muudatusi, mis seejärel levivad tagasi avaldajale ja teistele tellijatele. Erinevalt liitreplikatsioonist või peer-to-peer topoloogiatest, mis on loodud sagedaste kahesuunaliste värskenduste jaoks, on värskendatavad tellimused mõeldud stsenaariumideks, kus peamine andmevoog on ühesuunaline (avaldajalt tellijatele), kuid tellijad peavad aeg-ajalt tegema parandusi või värskendusi.
Värskendatavad tellimused sobivad olukordades, kus enamik värskendusi toimub avaldaja juures, kuid tellijate juures on aeg-ajalt värskendusi vaja, näiteks välikontorites, mis peamiselt loevad andmeid, kuid peavad tegema kohalikke parandusi või värskendusi. Topoloogia nõuab hoolikat planeerimist, et minimeerida konflikte ja tagada andmete järjepidevus.
Peamised eelised hõlmavad abonentidel piiratud kirjutamisoperatsioonide lubamist, säilitades samal ajal tehingulise replikatsiooni jõudlusomadused. Puuduste hulka kuuluvad suurem keerukus, lahendamist vajavate konfliktide potentsiaal, kahefaasilise kinnitusprotokolli jõudluse lisakulu kohese värskendamise režiimis ja nõue, et kõigil replikeeritud tabelitel oleksid primaarvõtmed.
3.7 Erinevat tüüpi replikatsioonide võrdlus
| Replikatsiooni tüüp | Värskenda aega | Väljaandjate arv | Eestvedamine | Kasutage stsenaariume |
|---|---|---|---|---|
| Snapshot | Ajahetk | 1 | Üks suund (väljaandja → tellijad) | Harva muutuvad võrdlusandmed (hinnakirjad, vahetuskursid) |
| Tehinguline | Peaaegu reaalajas | 1 | Üks suund (väljaandja → tellijad) | Suure läbilaskevõimega stsenaariumid (e-kaubanduse inventuur, andmeladu, aruandlus) |
| Merge | Perioodiline (ühenduse loomisel) | 1 | Kahesuunaline (väljaandja ↔ tellijad) | Mobiilirakendused, võrguühenduseta töötajad (müügijõu automatiseerimine, väliteenused) |
| Peer-to-Peer | Peaaegu reaalajas | Mitmekordne (3 või enam) | Kahesuunaline (kõik sõlmed) | Globaalsed mitme andmekeskuse juurutused (ülemaailmsed kontorid kohaliku lugemis- ja kirjutamisõigusega) |
| Kahesuunaline | Peaaegu reaalajas | 2 | Kahesuunaline (mõlemad serverid) | Kahe andmekeskuse aktiivne-aktiivne konfiguratsioonid (kahe saidi kõrge käideldavus) |
| Värskendatavad tellimused | Peaaegu reaalajas | 1 | Peamiselt ühes suunas (aeg-ajalt vastupidised uuendused) | Harukontorid, mis peamiselt loevad, aga aeg-ajalt ka uuendavad (kohalikud parandused) |
4. Seadistamine SQL Server replikatsioon
4.1 Eeltingimused ja nõuded
4.1.1 Tarkvaranõuded
SQL Server replikatsioon nõuab ühilduvust SQL Server versioonid kõigis topoloogia osalejates. Levitaja versioon peab olema võrdne või uuem avaldaja versioonist ja tellija võib olla avaldaja kahe versiooni piires. Näiteks SQL Server 2016. aasta kirjastaja saab kopeerida SQL Server 2012., 2014., 2016., 2017. või 2019. aasta tellijad.
4.1.2 Lubade nõuded
Replikatsiooni konfigureerimine nõuab igal tasandil spetsiifilisi õigusi. Süsteemiadministraatori fikseeritud serveri rolli liikmed saavad täita kõiki replikatsiooni konfigureerimise ülesandeid. Täpsemate õiguste saamiseks peavad kasutajad olema avaldaja ja tellija andmebaaside db_owner andmebaasi rolli liikmed.
4.2 1. samm: levitamise seadistamine
Jaotuse seadistamine on seadistamise esimene samm SQL Server replikatsioon.
Jaotuse konfigureerimiseks kasutage SQL Server Juhtimisstuudio:
- Looge ühendus SQL Server näiteks SQL Server Juhtimisstuudio.
- Paremklõpsake objektide uurijas (Object Explorer) ikooni replikatsioon kaust ja valige Jaotuse seadistamine.
- Jaotuse konfigureerimise viisardis klõpsake nuppu järgmine tervituslehel.
- Kohta Jagaja lehel valige oma topoloogianõuete põhjal üks järgmistest valikutest:
- Kohalik turustajaValige „ServeriNimi toimib omaenda levitajana”; SQL Server loob levitamise andmebaasi ja logi”, kui soovite, et avaldaja ja levitaja töötaksid samal eksemplaril (praegusel eksemplaril). Seda konfiguratsiooni on lihtsam seadistada ja see sobib väiksematele keskkondadele või olukordadele, kus avaldaja ja levitaja vaheline võrgu latentsus tekitaks probleeme.
- KaugedasimüüjaValige „Kasuta levitajana järgmist serverit” ja klõpsake lisama et määrata kauglevitusserver, kui soovite levitamise töötlemise eraldi eksemplarile suunata. See konfiguratsioon parandab jõudlust suurte replikatsioonimahtude korral, jaotades töökoormuse mitme serveri vahel. Peate esitama kauglevitusserveri nime ja määrama parooli, mida avaldaja levitajaga ühenduse loomiseks kasutab.
- Click järgmine hetktõmmise kausta asukoha määramiseks. Kasutage võrgus ligipääsetavuse tagamiseks kohaliku tee asemel UNC-teed (näiteks \\serverinimi\jagamiskaust\kaust).
- Kohta Levituse andmebaas lehel aktsepteerige jaotusandmebaasi vaikenimi (tavaliselt „jaotus”) või määrake kohandatud nimi ja seejärel konfigureerige andmete ja logifailide asukohad.
- Kohta Kirjastajad lehel, veenduge, et praegune server on lubatud avaldajana. Kui konfigureerite praeguse serveri levitajana, saate lisada täiendavaid avaldajaid, kes seda levitajat kasutavad.
- Vaadake viisardi toimingud üle ja klõpsake lõpp levitamise konfigureerimiseks.
4.3 2. samm: publikatsiooni loomine
Pärast levitamise konfigureerimist on järgmine samm publikatsiooni loomine, mis määrab, millised andmeobjektid tellijatele replikeeritakse.
Publikatsiooni loomiseks kasutage SQL Server Juhtimisstuudio:
- Objektihalduris laiendage replikatsioon kausta.
- Paremklõpsake Kohalikud väljaanded ja valige Uus väljaanne.
- Uue väljaande viisard käivitub; klõpsake järgmine tervituslehel.
- Valige andmebaas, mida soovite avaldada, järgmistest allikatest: Väljaannete andmebaas leht. See lubab automaatselt avaldamise valitud andmebaasis.
- Kohta Väljaande tüüp lehel valige replikatsiooni tüüp: Hetktõmmise avaldamine, Tehinguline avaldamine, Võrdõigusvõrgustiku väljaannevõi Publikatsiooni ühendamine.
- Kohta Artiklid lehte, laienda Tabelid sõlm ja valige artiklitena lisatavad tabelid.
- Valikuliselt laienda Salvestatud protseduurid, viewsvõi muud tüüpi objekte täiendavate artiklite lisamiseks.
- Click Artikli omadused filtreerimise või muude artiklipõhiste sätete konfigureerimiseks.
- Kohta Filtreeri tabeli ridu lehel lisage vajadusel reafiltrid.
- Kohta Hetktõmmise agent lehel valige, millal hetktõmmis luua: kohe, kindlal ajal või ajakava alusel.
- Kohta Agendi turvalisus lehel määrake hetktõmmise agendi turbekontekst.
- Kohta Nõustaja toimingud leht, valige Looge väljaanne.
- Sisestage väljaande nimi ja klõpsake lõpp.
4.4 3. samm: tellimuse loomine
Pärast publikatsiooni loomist on järgmine samm tellimuste loomine, mis ühendavad publikatsiooni tellijate andmebaasidega.
Tellimused võivad olla tõuketellimused (mida haldab levitaja) või tõmbetellimused (mida haldab tellija). Peamised erinevused seisnevad tellimuse loomise kohas ja valitud agendi asukohas, mis määrab tellimuse toimingu (tõuke- või tõmbetellimus).
Push-tellimuse jaoks (haldab levitaja):
- Kohta kirjastaja server, laienda replikatsioon -> Kohalikud väljaanded.
- Paremklõpsake väljaandel ja valige Uued tellimused.
Pull-tellimuse jaoks (haldab Tellija):
- Kohta abonent server, laienda replikatsioon, paremklõps Kohalikud tellimusedja valige Uued tellimused.
- Kohta avaldamine Klõpsake lehel leidma SQL Server kirjastaja ja looge ühendus avaldaja serveriga.
Mõlema tellimuse tüübi puhul tavalised viisardi sammud:
- Klõpsake uue tellimuse viisardis nuppu järgmine tervituslehel.
- Valige väljaanne ja klõpsake järgmine.
- Kohta Levitaja asukoht lehel valige agendi asukoht:
- Push-tellimusValige „Käivita kõik agendid edasimüüja juures” – edasimüüja saadab muudatused tellijatele.
- Tõmba tellimusValige „Käivita iga agent selle tellija juures” – iga tellija hangib muudatused levitajalt.
- Kohta Abonentide lehel valige olemasolevad tellija serverid või klõpsake Lisa Subscriber uute lisamiseks.
- Valige iga tellija jaoks sihtandmebaas või looge uus andmebaas. Märge: Tellimuste andmebaas peab erinema väljaandja andmebaasist, isegi kui kasutatakse sama SQL Server Näiteks
- Kohta Levitaja turvalisus Klõpsake lehel iga tellimuse atribuutide nuppu, et konfigureerida turbekontekst.
- Kohta Sünkroonimise ajakava valige lehel pidev sünkroonimine või ajastatud sünkroonimine.
- Kohta Tellimuste initsialiseerimine leht, valige Kohe viisardi töö lõpetamise ajal initsialiseerimiseks või Esimesel sünkroonimisel.
- Vaadake viisardi toimingud üle ja klõpsake lõpp.
5. Jälgimine ja haldamine SQL Server replikatsioon
5.1 Replikatsiooni jälgimine replikatsioonimonitoriga
Replikatsioonimonitori käivitamiseks tehke järgmist.
- In SQL Server Management Studio, laienda replikatsioon Objektiuurijas.
- Paremklõpsake replikatsioon ja valige Käivita replikatsioonimonitor.
- Kui ühtegi kirjastajat pole registreeritud, klõpsake Lisa väljaandja vasakul paanil.
- Vali lisama SQL Server kirjastaja ja looge ühendus avaldaja serveriga.
- Väljaandja kuvatakse vasakul paanil koos laiendatavate sõlmedega väljaannete ja tellimuste jaoks.
5.2 Toimivuse jälgimine
5.2.1 Monitori latentsusaeg
Replikatsiooni latentsus on ajavahemik muudatuse toimumise ja tellija juures rakendamise vahel. Jälgige latentsusaega, et tagada andmete värskuse vastavus ärivajadustele.
Latentsusaja mõõdikute vaatamiseks vahekaardil Kõik tellimused kasutage replikatsioonimonitori. Latentsusaja veerg näitab keskmist latentsusaega sekundites. Tehingute replikatsiooni puhul pakuvad jälgimismärgid täpseid latentsusaja mõõtmisi, lisades markertehinguid, mida jälgitakse replikatsioonitorustiku kaudu.
Jälgimismärkide kasutamiseks:
- Valige replikatsioonimonitoris tehingupõhine publikatsioon.
- kliki Jälgimismärgid Tab.
- Click Sisesta jälgija markertehingu süstimiseks.
- Jälgige tokenit selle liikumisel kirjastajalt levitajale ja seejärel tellijale.
- Vaadake iga segmendi jaoks kitsaskohtade tuvastamiseks kuluvat aega.
5.2.2 Läbilaskevõime jälgimine
Läbilaskevõime mõõdab aja jooksul replikeeritud andmete mahtu, mida tavaliselt väljendatakse tehingute arvuna sekundis või käskude arvuna sekundis. Jälgige läbilaskevõimet, et tagada replikatsiooni vastavus avaldaja tegevusele.
Kuigi replikatsioonimonitor kuvab sünkroonimise põhiolekut, ei ole edastuskiirus ja üksikasjalikud läbilaskevõime mõõdikud graafilises kasutajaliideses nähtavad. Läbilaskevõime jälgimiseks kasutage jaotusandmebaasi suhtes T-SQL-päringuid:
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
Olekukoodid: 1 = Alustatud, 2 = Pooleli, 3 = Õnnestunud, 4 = Jõudeolek, 5 = Uuesti proovimine, 6 = Ebaõnnestumine. Võrrelge edastuskiirust avaldaja tehingute määradega, et tuvastada olukordi, kus replikatsioon jääb maha. Toimivusloendurid Windowsi jõudlusmonitor pakkuda iga replikatsiooniagendi jaoks täiendavaid läbilaskevõime mõõdikuid.
5.2.3 Kitsaskohtade tuvastamine
Replikatsiooni kitsaskohad võivad esineda topoloogias mitmes punktis. Avaldaja juures võivad hetktõmmise genereerimise aeg või logilugeja agendi viivitused viidata ressursipiirangutele. Jälgige avaldaja protsessori, mälu ja ketta sisend-/väljundvõimsust replikatsioonitegevuste ajal.
Kontrolli levitaja juures levitamise andmebaasis kuhjuvaid tehinguid. Suur hulk levitamata käske näitab, et levitaja ei suuda edastamisega sammu pidada. Jälgi levitaja serveri ressursse ja kaalu suuremahuliste stsenaariumide korral spetsiaalse kauglevitaja kasutamist.
Tellija puhul võib muudatuste aeglane rakendamine olla tingitud ebapiisavatest ressurssidest, puuduvatest indeksitest või piirangutest, mis aeglustavad lisamistoiminguid. Jälgige tellija ressursside kasutamist ja päringute jõudlust, kui jaotusagent töötab. Võrgu ribalaiuse piirangud komponentide vahel põhjustavad samuti kitsaskohti, eriti suurte andmemahtude puhul.
5.3 Replikatsiooniagentide haldamine
5.3.1 Agentide käivitamine ja peatamine
Replikatsiooniagendi käivitamiseks või peatamiseks tehke järgmist.
- In SQL Server Management Studio, laienda SQL Server Agent -> Tööturg.
- Leidke replikatsiooniagendi töö (nimed sisaldavad tavaliselt väljaande ja tellija teavet).
- Paremklõpsake tööl ja valige Alusta tööd or Peata töö.
5.3.2 Agendi profiilide konfigureerimine
Agendi profiilid sisaldavad parameetrite komplekte, mis kontrollivad agendi käitumist. SQL Server pakub tavaliste stsenaariumide jaoks optimeeritud vaikeprofiile ja saate luua kohandatud profiile konkreetsete vajaduste jaoks.
Agentide profiilide muutmiseks tehke järgmist.
- Objektihalduris laiendage replikatsioon.
- Paremklõpsake replikatsioon ja valige Edasimüüja omadused.
- kliki Profiili vaikesätted nuppu.
- Valige rippmenüüst agendi tüüp (hetktõmmis, logilugeja, levitamine või ühendamine).
- Valige profiil ja klõpsake Kinnisvara parameetrite väärtuste vaatamiseks.
- Click Uus profiil olemasoleva profiili põhjal kohandatud profiili loomiseks.
- Vajadusel muutke parameetreid ja klõpsake OK.
Profiili rakendamiseks agendile muutke tellimuse omadusi ja valige agendi profiili rippmenüüst soovitud profiil.
5.3.3 Agendi parameetrid ja sätted
Agendi parameetrid peenhäälestavad jõudlust ja käitumist. Distribution Agenti põhiparameetrite hulka kuuluvad CommitBatchSize (tehingute arv, mida rakendatakse kinnitamise kohta), CommitBatchThreshold (käskude arv enne kinnitamist), SubscriptionStreams (paralleelsed ühendused kiiremaks edastamiseks) ja QueryTimeout (käskude ajalõpp).
Logilugeja agendi puhul on oluliste parameetrite hulka ReadBatchSize (loetud tehingute arv skannimise kohta), ReadBatchThreshold (käsklused enne edastamist) ja PollingInterval (viivitus logiskannimiste vahel). Kohandage neid parameetreid tehingute mahu ja latentsusaja nõuete alusel.
5.4 Varundamise ja taastamise kaalutlused
Replikatsiooniga seotud andmebaaside varundamine nõuab erilisi kaalutlusi. Avaldaja andmebaasi puhul on olulised regulaarsed täielikud ja tehingulogi varukoopiad. Tehingulise replikatsiooni korral andmebaaside varundamise korral märkige andmebaasi varukoopia replikatsiooni toetamiseks, kasutades valikut REPLIKATSIOONIGA. Replikatsiooni konfiguratsiooni kaitsmiseks varundage regulaarselt jaotusandmebaasi.
Avaldaja andmebaasi taastamisel samale serverile sama nimega kasutage replikatsiooni oleku säilitamiseks valikut WITH KEEP_REPLICATION. See valik tagab, et tehingud, mida logilugeja agent veel ei töötle, jäävad replikatsiooniks märgituks, võimaldades replikatsioonil automaatselt jätkuda ilma tellimusi uuesti initsialiseerimata.
Õnnetusejärgse taastamise stsenaariumide korral, kus varukoopiad pole saadaval, on rikutud või andmebaasifailid on kahjustatud, võib olla vajalik kasutada spetsiaalseid taastetööriistu. DataNumen SQL Recovery saab andmeid rikutud või ligipääsmatutest MDF- ja NDF-failidest eraldada, pakkudes viimast abinõu, kui tavapärased taastamisprotseduurid ebaõnnestuvad.
Lisateavet saidi kohta SQL Server varukoopia, vaadake meie terviklik juhend.
6. Korduma kippuvad küsimused (KKK)
K: Mis vahe on hetktõmmisel ja tehingulisel replikatsioonil?
A: Hetktõmmise replikatsioon teeb andmetest teatud ajahetkel täieliku koopia ja rakendab seda tellijale, mis sobib harva muutuvate andmete puhul. Tehingute replikatsioon algab esialgsest hetktõmmisest ja seejärel replikeerib pidevalt üksikuid tehinguid nende toimumise ajal, pakkudes sageli muutuvate andmete peaaegu reaalajas sünkroniseerimist.
K: Kas ma saan erinevate vahel kopeerida? SQL Server versioonid?
V: Jah, SQL Server replikatsioon toetab versioonide ühilduvust piiratud vahemikus. Levitaja versioon peab olema võrdne või uuem avaldaja versioonist ja tellija versioon võib olla avaldaja kahe versiooni piires. Näiteks kui avaldaja on SQL Server 2016. aastal saab tellija olla SQL Server 2012, 2014, 2016, 2017 või 2019.
K: Kuidas lahendada konflikte liitmise replikatsioonis?
A: Ühendamise replikatsioon pakub sisseehitatud konfliktide tuvastamise ja lahendamise mehhanisme. Konfliktide lahendajaid saab konfigureerida artikli tasandil, valides sisseehitatud lahendajate hulgast või rakendades kohandatud konfliktide lahendajaid. Konflikte lahendatakse tavaliselt prioriteedi- või ajatemplipõhiste meetodite abil, võimalusega logida konflikte käsitsi läbivaatamiseks.
K: Millised on replikatsiooni jõudlust mõjutavad tegurid?
A: Replikatsioon mõjutab jõudlust mitmel viisil: avaldaja kogeb muudatuste jälgimise ja hetktõmmiste genereerimisega seotud lisakoormust, levitaja kasutab ressursse tehingute salvestamiseks ja edastamiseks ning andmeedastuse ajal tarbitakse võrgu ribalaiust. Mõju varieerub replikatsioonitüübiti, kusjuures hetktõmmiste replikatsioon põhjustab perioodilisi suure mõjuga purskeid ja tehinguline replikatsioon säilitab ühtlasema, kuid pideva koormuse.
K: Kuidas ma saan oma replikatsiooni topoloogiat turvata?
A: Turvake oma replikatsioonitopoloogia, rakendades mitmeid parimaid tavasid: kasutage Windowsi autentimist või tugevat autentimist. SQL Server autentimine, ühenduste krüpteerimine TLS-iga, hetktõmmiste kausta turvamine sobivate NTFS õigused, konfigureerige juurdepääsu kontrollimiseks avaldamisloend (PAL), kasutage iga replikatsiooniagendi jaoks eraldi teenusekontosid minimaalsete vajalike õigustega ja auditeerige regulaarselt replikatsiooni turvaseadeid.
K: Kas ma saan Azure'i SQL-andmebaasi replikeerida?
V: Jah, saate Azure'i SQL-andmebaasi replikeerida tehingulise replikatsiooni abil kohapealse serveriga. SQL Server või Azure SQL-i hallatav eksemplar avaldaja ja levitajana. Azure SQL-andmebaas saab olla tellija, kuid mitte avaldaja ega levitaja. Azure SQL-andmebaas ei toeta ühendamise ja võrdõigusvõrgu replikatsiooni.
K: Kuidas jälgida replikatsiooni viivitust?
A: Jälgige replikatsiooni viivitust replikatsioonimonitori abil SQL Server Management Studio, mis kuvab iga tellimuse latentsusaja mõõdikuid. Samuti saate päringuid teha jaotusandmebaasi tabelite (nt MSdistribution_history ja MSrepl_commands) põhjal, kasutada replikatsiooniagentidele omaseid jõudlusloendureid või seadistada latentsusaja lävede põhjal hoiatusi, et sünkroonimisviivitusi ennetavalt tuvastada ja lahendada.
K: Mis juhtub, kui tellija pole võrgus?
A: Kui abonent on võrguühenduseta, sõltub käitumine replikatsiooni tüübist. Tehingute replikatsiooni korral kogunevad tehingud jaotusandmebaasis seni, kuni abonent taas võrguühenduse taastab, seejärel jätkub sünkroonimine. Ühendatud replikatsiooni korral jälgitakse muudatusi mõlemal poolel ja need ühendatakse, kui ühendus taastub. Säilitusperioodi säte määrab, kui kaua andmeid enne uuesti lähtestamist säilitatakse.
K: Kuidas lisada uusi artikleid olemasolevale väljaandele?
A: Uute artiklite lisamiseks olemasolevale väljaandele kasutage SQL Server Management Studio abil saate muuta väljaande omadusi ja valida täiendavaid objekte või kasutada salvestatud protseduuri sp_addarticle. Pärast artiklite lisamist genereerige uus hetktõmmis ja lähtestage kõik tellimused uuesti, et tagada tellijatele uute artiklite kättesaamine. Mõned muudatused võivad avaldamise sätetest olenevalt vajada tellimuse uuesti lähtestamist.
K: Kuidas eemaldada andmebaasist replikatsioon?
A: Andmebaasist replikatsiooni eemaldamiseks kustutage esmalt kõik tellimused, kasutades sp_dropsubscription, seejärel eemaldage avaldamine sp_droppublication abil ja lõpuks keelake andmebaasis avaldamine, kasutades sp_replicationdboption. Kui server on levitaja, keelake levitamine sp_dropdistributor abil. Enne replikatsiooni konfiguratsiooni eemaldamist varundage alati andmebaasid.
K: Mis vahe on SQL Server Replikatsioon ja AlwaysOn kättesaadavusrühmad?
A: Replikatsioon on andmete levitamise ja integreerimise lahendus, mis toimib objektitasandil, samal ajal kui Alati sisse lülitatud kättesaadavuse rühmad on andmebaasi tasandil töötav kõrge kättesaadavuse ja katastroofidejärgse taastamise lahendus.
7. järeldus
SQL Server Replikatsioon pakub tugeva raamistiku andmete levitamiseks ja sünkroonimiseks mitme andmebaasi ja asukoha vahel. Tehnoloogia toetab mitmesuguseid stsenaariume erinevate replikatsioonitüüpide kaudu.
Õige replikatsioonistrateegia valimine sõltub teie konkreetsetest nõuetest. Arvestage andmete muutmise sageduse, latentsusaja nõuete, selle, kas abonentidel on vaja värskendusi teha, võrgu omaduste ja abonentide autonoomia vajadustega. Hetktõmmise replikatsioon toimib kõige paremini harva muutuvate võrdlusandmete puhul, kus latentsus pole kriitilise tähtsusega. Tehingute replikatsioon sobib suuremahuliste stsenaariumide jaoks, mis nõuavad väikest latentsusaega ja peamiselt ühesuunalist andmevoogu.
Valige ühendamise replikatsioon, kui tellijad vajavad autonoomset toimimist võrguühenduseta võimaluste ja kahesuunalise sünkroniseerimisega. Rakendage peer-to-peer replikatsiooni koormuse tasakaalustamiseks lugemistoimingute jaoks mitme aktiivse sõlme vahel peaaegu reaalajas järjepidevusega. Kaaluge hübriidlähenemisi, mis ühendavad mitut replikatsioonitüüpi keerukate stsenaariumide ja mitmekesiste nõuete korral.
Tehtud tööd
- Microsofti ametlik dokument: SQL Server replikatsioon
- Microsofti ametlik dokument: replikatsiooni tüübid
- Microsofti ametlik dokument: Peer-to-Peer – tehinguline replikatsioon
Teave Autor
Yuan Sheng on vanem andmebaasiadministraator (DBA), kellel on üle 10 aasta kogemust SQL Server keskkonnad ja ettevõtte andmebaaside haldus. Ta on edukalt lahendanud sadu andmebaaside taastamise stsenaariume finantsteenuste, tervishoiu ja tootmisorganisatsioonides.
Yuan on spetsialiseerunud SQL Server andmebaaside taastamine, kõrge käideldavuslahendused ja jõudluse optimeerimine. Tema ulatuslik praktiline kogemus hõlmab mitme terabaidiste andmebaaside haldamist, alati sisse lülitatud käideldavusgruppide rakendamist ning automatiseeritud varundus- ja taastestrateegiate väljatöötamist missioonikriitiliste ärisüsteemide jaoks.
Oma tehnilise asjatundlikkuse ja praktilise lähenemise abil keskendub Yuan terviklike juhendite loomisele, mis aitavad andmebaasiadministraatoritel ja IT-spetsialistidel lahendada keerulisi probleeme SQL Server väljakutseid tõhusalt. Ta on kursis uusimate uudistega SQL Server väljalasete ja Microsofti arenevate andmebaasitehnoloogiate põhjal, testides regulaarselt taastestsenaariume, et tagada oma soovituste vastavus reaalsetele parimatele tavadele.
Kas teil on küsimusi SQL Server taastamist või vajate täiendavat andmebaasi tõrkeotsingu juhendamist? Yuan tervitab tagasisidet ja ettepanekuid nende tehniliste ressursside täiustamiseks.














