1. Кіріспе SQL Server Репликация
1.1 не SQL Server Репликация?
SQL Server репликация - деректерді және дерекқор нысандарын бір дерекқордан екіншісіне көшіруге және таратуға, содан кейін бірізділікті сақтау үшін дерекқорлар арасында синхрондауға арналған технологиялар жиынтығы. Бұл мүмкіндік сізге деректердің қолжетімділігі мен сенімділігін қамтамасыз ете отырып, әртүрлі серверлер мен орындарда деректеріңіздің бірнеше көшірмесін жасауға және сақтауға мүмкіндік береді.
1.2 Репликацияның мақсаты мен артықшылықтары
SQL Server репликация бірнеше маңызды бизнес қажеттіліктерін қанағаттандырады және дерекқорды басқару және деректерді тарату үшін айтарлықтай артықшылықтар береді:
- Деректерді орындар бойынша тарату: Репликация деректерді аймақтық кеңселер немесе жаһандық орындар арасында бөлісуге мүмкіндік береді, қажетті деректерге жергілікті қолжетімділікті қамтамасыз ету арқылы операциялық тиімділікті арттырады. Бұл желінің кідірісін азайтады және географиялық жағынан таралған пайдаланушылар үшін жақсы өнімділікті қамтамасыз етеді.
- Жоғары қол жетімділік және апаттардан кейінгі қалпына келтіру: Маңызды деректердің көшірмелерін бірнеше серверлерде сақтау арқылы репликация аппараттық ақаулар мен апаттардан қорғайтын резервтеуді қамтамасыз етеді. Негізгі сервер істен шыққан жағдайда, репликацияланған көшірмелер резервтік дереккөздер ретінде қызмет ете алады, бұл жұмыстың тоқтап қалу уақытын және деректердің жоғалуын азайтады.
- Жүктемені теңестіру және масштабталу: Репликация оқу операцияларын бірнеше серверлерге таратады, бұл кез келген бір сервердің кедергіге айналуына жол бермейді. Бұл тәсіл жүйенің өнімділігін арттырады және деректер мен пайдаланушылардың сұранысы өскен сайын инфрақұрылымыңызды көлденең масштабтауға мүмкіндік береді.
- Нақты уақыттағы есеп беру және талдау: Есеп беру және аналитикалық сұраныстарды қайталанатын серверлерге босату өндірістік дерекқорларға түсетін жүктемені азайтады. Пайдаланушылар операциялық жүйелерге әсер етпей, нақты уақыт режиміндегі деректерге қарсы күрделі аналитикалық сұраныстарды орындай алады, бұл өнімділікті де, деректердің жаңалығын да қамтамасыз етеді.
- Деректерді интеграциялау және біріктіру: Репликация әртүрлі көздерден алынған деректерді бірыңғай біріктірілген көрініске біріктіруді жеңілдетеді. Бұл, әсіресе, штаб-пәтерінде деректерді біріктіруі қажет бірнеше филиалдары бар ұйымдар үшін немесе таратылған операциялық жүйелерден орталықтандырылған деректер қоймаларын құру үшін өте маңызды.
2. SQL Server Репликация архитектурасы және компоненттері
SQL Server Репликация архитектурасы дерекқор инфрақұрылымы бойынша деректерді тарату және синхрондау үшін бірге жұмыс істейтін бірнеше өзара байланысты компоненттерден тұрады. Бұл бөлімде баспагерлер, дистрибьюторлар, жазылушылар, басылымдар, мақалалар, жазылымдар және олардың арасындағы деректер ағынын үйлестіретін агенттер сияқты негізгі компоненттер қарастырылады:
- Publisher: Баспагер дегеніміз - SQL Server репликацияланатын деректерді қамтитын бір немесе бірнеше дерекқорларды орналастыратын данасы. Ол репликация топологиясында сенімді дереккөз ретінде қызмет етеді.
- Дистрибьютор: Дистрибьютор дегеніміз - SQL Server баспагерлер мен жазылушылар арасындағы деректер ағынын басқаратын данасы. Дистрибьютор данасы репликация метадеректері мен транзакцияларын сақтайтын тарату дерекқорын орналастырады.
- Жазылушы: Жазылушы дегеніміз - SQL Server баспагерлерден көшірілген деректерді қабылдайтын және сақтайтын данасы. Бір жазылушы данасы бірнеше жазылушы дерекқорларын орналастыра алады, олардың әрқайсысы әртүрлі басылымдардан деректерді қабылдайды.
- Басылым: Басылым қандай деректердің көшірілетінін және жазылушыларға қалай таратылатынын анықтайды. Ол байланысты мақалаларды біріктіреді және барлық қамтылған нысандарға қолданылатын көшіру әдіснамасын белгілейді.
- Мақала: Мақала - репликацияның негізгі құрылыс блогы, ол жазылушыларға таратылатын жеке дерекқор нысанын білдіреді.
- жазылу: Жазылым басылым мен жазылушы арасындағы байланысты орнатады, деректердің мақсатты дерекқорға қалай және қашан жеткізілетінін анықтайды.
- Агенттер: Агенттер - репликация компоненттері арасында деректерді жылжыту және синхрондау бойынша нақты жұмысты орындайтын мамандандырылған процестер.
3. түрлері SQL Server Репликация
SQL Server бірнеше репликация түрлерін ұсынады, олардың әрқайсысы нақты деректерді тарату сценарийлері мен бизнес талаптарына арналған. Әр түрдің сипаттамаларын, артықшылықтарын және шектеулерін түсіну ортаңыз үшін дұрыс тәсілді таңдау үшін өте маңызды.
3.1 Суретті репликациялау
Snapshot репликациясы белгілі бір уақытта жарияланатын деректердің суретін түсіреді, содан кейін толық көшірмесін жазылушыларға таратады. Келесі сурет жасалғанға дейін кейінгі өзгерістерді бақыламайды. Snapshot репликациясы репликацияның ең қарапайым түрі болып табылады, бұл оны деректер сирек өзгеретін немесе ескірген деректердің болуы қолайлы жағдайларға қолайлы етеді.
Жалпы пайдалану жағдайларына баға тізімдері немесе мерзімді түрде жаңартылып отыратын валюта бағамдары сияқты анықтамалық деректерді тарату, деректер қоймалары үшін бастапқы деректер жиынтығын ұсыну және жеке өзгерістерді бақылауға қарағанда деректерді толық жаңарту тиімдірек болатын сценарийлер жатады. Мысалы, компания жаңартылған өнім каталогтарын филиалдарға күніне бір рет тарату үшін сурет көшірмесін пайдалануы мүмкін.
Суретті репликациялаудың негізгі артықшылықтары - оның қарапайымдылығы, техникалық қызмет көрсетудің төмен талаптары және бастапқы кілттерсіз деректерді репликациялау мүмкіндігі. Дегенмен, оның айтарлықтай кемшіліктері бар, соның ішінде кесте құлыптарына байланысты суреттер жасалған кезде жоғары әсер, жаңартулар арасындағы жоғары кідіріс және үлкен деректер жиынтығы немесе жиі өзгеретін деректер үшін тиімсіздік. Жазылушыларда енгізілген кез келген өзгертулер келесі сурет қолданылған кезде жоғалады.
3.2 Транзакциялық репликация
Транзакциялық репликация жеке транзакцияларды орын алған кезде репликациялау арқылы жариялаушыдан жазылушыларға өзгерістерді нақты уақыт режимінде жеткізеді. Ол бастапқы сызықты белгілеу үшін бастапқы суреттен басталады, содан кейін жарияланған мақалалардағы өзгерістерді транзакция журналында үздіксіз бақылайды және оларды жазылушыларға біртіндеп жеткізеді.
Транзакциялық репликация жоғары өткізу қабілеті мен төмен кідіріс уақытын қажет ететін серверден серверге сценарийлер үшін өте қолайлы. Жалпы пайдалану жағдайларына оқу операцияларын жазылушы серверлеріне жүктеу арқылы масштабталу мен қолжетімділікті жақсарту, деректерді сақтауды және есеп беруді нақты уақыт режиміндегі деректермен қолдау, бірнеше сайттардан деректерді орталық орынға біріктіру және пакеттік өңдеуді арнайы серверлерге жүктеу жатады. Мысалы, электрондық коммерция платформасы аймақтық дерекқорлар бойынша синхрондалған қор деректерін сақтау үшін транзакциялық репликацияны пайдалануы мүмкін.
Транзакциялық репликацияның артықшылықтарына деректерді жеткізудің төмен кідірісі, үлкен транзакция көлемдері үшін жоғары өткізу қабілеті және жазылушыларда репликацияланбаған өзгертулер енгізу мүмкіндігі жатады. Кемшіліктеріне снапшоттық репликациямен салыстырғанда күрделіліктің жоғарылауы, репликацияланған кестелерде бастапқы кілттерге қойылатын талап және жазылушыларда бастапқы кілттің бұзылуы сияқты қақтығыстар орын алған жағдайда репликацияның бұзылуы мүмкіндігі жатады.
3.3 Біріктіру репликациясы
Біріктіру репликациясы жазылушылар офлайн режимінде немесе үзік-үзік қосылыммен жұмыс істеуі, содан кейін қосылым қолжетімді болған кезде өзгерістерді синхрондауы қажет орталар үшін арнайы жасалған. Бұл репликация түрі деректерді баспагерде де, жазылушыларда да тәуелсіз өзгертуге, триггерлер мен метадеректер кестелерін пайдаланып өзгерістерді бақылауға және синхрондау кезінде өзгерістерді автоматты түрде біріктіруге мүмкіндік береді.
Біріктіру репликациясы мобильді қосымшалар мен автономды өзгерістер болатын таратылған сервер орталарына арналған. Қолдану жағдайларына мобильді пайдаланушылар офлайн режимде жұмыс істейтін және кейінірек синхрондайтын сату күштерін автоматтандыру, тәуелсіз жұмыс істейтін және деректерді мезгіл-мезгіл біріктіретін сату нүктелерінің жүйелері және бірнеше сайт ортақ деректерді жаңартуы қажет болатын таратылған қосымшалар жатады. Мысалы, бөлшек сауда желісі біріктіру репликациясын пайдалануы мүмкін, сондықтан әрбір дүкен орталық қойма жүйесімен синхрондала отырып, жергілікті қорларды басқара алады.
Біріктіру репликациясының артықшылықтарына өзгерістер енгізе алатын автономды жазылушыларды қолдау, үзіліссіз желілік қосылымға төзімділік және икемді қақтығыстарды шешу кіреді. Кемшіліктеріне орнату мен техникалық қызмет көрсетудегі күрделіліктің жоғарылауы, метадеректер мен триггерлерді бақылаудан туындайтын өнімділік шығындары, кестелерге бірегей идентификатор бағандарын қосу және басқару мен шешуді қажет ететін қақтығыстардың пайда болу мүмкіндігі жатады.
3.4 Тең дәрежелі репликация
Тең дәрежелі репликация транзакциялық репликацияға негізделген және бірнеше сервер даналарының (үш немесе одан да көп түйін) тең дәрежелі тең дәрежелі тең дәрежелі ретінде әрекет етуіне мүмкіндік береді, әрбір түйін бір уақытта жариялаушы және жазылушы ретінде қызмет етеді. Бұл топологияда барлық түйіндер деректердің бірдей көшірмелерін сақтайды және оқу және жазу операцияларын өңдей алады, бұл шынымен таратылған көп басты ортаны қамтамасыз етеді.
Тең дәрежелі репликация оқу операцияларын масштабтауды және жоғары қолжетімділікті қажет ететін қолданбалар үшін жарамды. Қолдану жағдайларына каталог сұраныстарын бірнеше түйіндер арасында тарататын және деректерді біркелкі сақтайтын веб-қосымшалар, түйіндерді жеке-жеке өшіру арқылы тоқтап қалмай техникалық қызмет көрсетуді немесе жаңартуларды қажет ететін сценарийлер және әртүрлі аймақтардағы деректер орталықтары бар жаһандық қолданбалар жатады. Мысалы, әлемдік бағдарламалық жасақтаманы қолдау ұйымы әртүрлі уақыт белдеулеріндегі кеңселер арасында тең дәрежелі репликацияны пайдалануы мүмкін, сондықтан әрбір орын ағымдағы деректерге жергілікті қол жеткізе алады.
Тең-теңімен репликациялаудың артықшылықтарына масштабтау арқылы оқу өнімділігінің жақсаруы, бірнеше белсенді түйіндермен қолжетімділіктің жоғарылауы және нақты уақыт режиміндегі деректердің сәйкестігі жатады. Кемшіліктеріне Enterprise Edition талабы, көп түйінді топологияларды басқарудың күрделілігі, барлық түйіндер бойынша бірдей схема мен деректердің қажеттілігі және жазу операциялары дұрыс бөлінбеген кездегі қақтығыстардың ықтималдығы жатады.
3.5 Екі бағытты репликация
Екі бағытты репликация - екі сервердің бір-бірімен өзгерістер алмасуы қажет екі серверлік орталар үшін арнайы жасалған арнайы транзакциялық репликация топологиясы. Әрбір сервер деректерді жариялайды және басқа серверден сол деректерге жазылады, бұл қарапайым екі жақты синхрондау ағынын жасайды. Тең дәрежелі репликация екі түйінді де қолдай алса, екі бағытты репликация осы нақты сценарий үшін жақсартылған өнімділікті қамтамасыз етеді.
Екі бағытты репликация синхрондалған деректері бар екі белсенді серверді қажет ететін сценарийлер үшін қолайлы, мысалы, жоғары қолжетімділікке арналған белсенді-белсенді конфигурациялар немесе әрбір сайт жергілікті жазуға қол жеткізуді қажет ететін географиялық таралған қолданбалар. Топология деректерді жаңартуды бөлу және қақтығыстардың алдын алу үшін мұқият қолданбаны жобалауды талап етеді.
Артықшылықтарына екі серверлік сценарийлер үшін оңтайландырылған өнімділік, тең дәрежелі репликациямен салыстырғанда қарапайым конфигурация, нақты уақыт режимінде синхрондау және біріктіру репликациясына қарағанда төмен шығындар жатады. Кемшіліктеріне дәл екі сервермен шектелу, мұқият қолданба дизайнын қажет ететін кіріктірілген қақтығыстарды шешудің болмауы және қақтығыстардың алдын алу үшін тиісті бөлу стратегияларының қажеттілігі жатады.
3.6 Жаңартылатын жазылымдар
Жаңартылатын жазылымдар транзакциялық репликацияны кеңейтіп, жазылушыларға репликацияланған деректерге анда-санда өзгерістер енгізуге, содан кейін олар баспагерге және басқа жазылушыларға таралуына мүмкіндік береді. Жиі екі бағытты жаңартуларға арналған біріктіру репликациясынан немесе тең дәрежелі топологиялардан айырмашылығы, жаңартылатын жазылымдар бастапқы деректер ағыны бір жақты (баспагерден жазылушыларға) болатын, бірақ жазылушылар кейде түзетулер немесе жаңартулар енгізуі қажет болатын жағдайларға арналған.
Жаңартылатын жазылымдар көбінесе баспагерде жаңартулар болатын, бірақ жазылушыларда анда-санда жаңартулар қажет болатын жағдайларға сәйкес келеді, мысалы, негізінен деректерді оқитын, бірақ жергілікті түзетулер немесе жаңартулар енгізуді қажет ететін далалық кеңселер. Топология қақтығыстарды азайту және деректердің сәйкестігін қамтамасыз ету үшін мұқият жоспарлауды қажет етеді.
Негізгі артықшылықтарына транзакциялық репликацияның өнімділік сипаттамаларын сақтай отырып, жазылушыларда шектеулі жазу операцияларына рұқсат беру жатады. Кемшіліктеріне күрделіліктің артуы, шешуді қажет ететін қақтығыстардың ықтималдығы, жедел жаңарту режимінде екі фазалы коммит хаттамасынан өнімділік шығындарының жоғарылауы және барлық репликацияланған кестелерде бастапқы кілттердің болуы талап етіледі.
3.7 Әртүрлі репликация түрлерін салыстыру
| Репликация түрі | Жаңарту уақыты | Баспагерлер саны | бағыт | Сценарийді қолданыңыз |
|---|---|---|---|---|
| түсірім | Уақыт нүктесі | 1 | Бір бағыт (Баспагер → Жазылушылар) | Сирек өзгеретін анықтамалық деректер (баға тізімдері, валюта бағамдары) |
| Транзакциялық | Нақты уақытқа жақын | 1 | Бір бағыт (Баспагер → Жазылушылар) | Жоғары өнімділік сценарийлері (электрондық коммерция қорлары, деректерді сақтау, есеп беру) |
| Біріктіру | Мерзімді (қосылған кезде) | 1 | Екі бағытты (Баспагер ↔ Жазылушылар) | Мобильді қосымшалар, офлайн жұмысшылар (сату күшін автоматтандыру, далалық қызметтер) |
| Тең-теңімен | Нақты уақытқа жақын | Бірнеше (3 немесе одан да көп) | Екі бағытты (барлық түйіндер) | Әлемдік көп деректер орталығын орналастыру (жергілікті оқу-жазу мүмкіндігі бар әлемдік кеңселер) |
| Екі бағытты | Нақты уақытқа жақын | 2 | Екі бағытты (екі сервер де) | Екі деректер орталығының белсенді-белсенді конфигурациялары (қос сайттың жоғары қолжетімділігі) |
| Жаңартылатын жазылымдар | Нақты уақытқа жақын | 1 | Негізінен бір бағыт (кейде кері жаңартулар) | Негізінен оқитын, бірақ кейде жаңартатын филиалдар (жергілікті түзетулер) |
4. Орнату SQL Server Репликация
4.1 Алғышарттар мен талаптар
4.1.1 Бағдарламалық жасақтама талаптары
SQL Server репликация үйлесімділікті қажет етеді SQL Server топологияның барлық қатысушылары бойынша нұсқалар. Дистрибьютор нұсқасы баспагер нұсқасына тең немесе одан жоғары болуы керек, ал жазылушы баспагердің екі нұсқасында болуы мүмкін. Мысалы, SQL Server 2016 жылғы баспагер көшіре алады SQL Server 2012, 2014, 2016, 2017 немесе 2019 жылғы жазылушылар.
4.1.2 Рұқсат талаптары
Репликацияны конфигурациялау әр деңгейде арнайы рұқсаттарды қажет етеді. Sysadmin бекітілген сервер рөлінің мүшелері барлық репликация конфигурациясы тапсырмаларын орындай алады. Толығырақ рұқсаттар алу үшін пайдаланушылар жариялаушы және жазылушы дерекқорлары үшін db_owner дерекқоры рөлінің мүшелері болуы керек.
4.2 1-қадам: Дистрибуцияны конфигурациялау
Дистрибуцияны конфигурациялау - орнатудың алғашқы қадамы SQL Server репликация.
Таратуды пайдаланып конфигурациялау үшін SQL Server Менеджмент студиясы:
- Қосылыңыз SQL Server мысалдағы SQL Server Менеджмент студиясы.
- Object Explorer бағдарламасында тінтуірдің оң жақ түймешігін басыңыз Репликация қалтаны таңдап, Таратуды конфигурациялау.
- Таратуды конфигурациялау шеберінде түймесін басыңыз Келесі қош келдіңіздер бетінде.
- Үстінде Таратушы бетінде топология талаптарыңызға негізделген келесі нұсқалардың бірін таңдаңыз:
- Жергілікті дистрибьютор: «ServerName өзінің дистрибьюторы ретінде әрекет етеді» таңдаңыз; SQL Server Егер сіз баспагер мен дистрибьютордың бір данада (ағымдағы данада) жұмыс істеуін қаласаңыз, тарату дерекқоры мен журналын жасайды». Бұл конфигурацияны орнату оңайырақ және кішірек орталарға немесе баспагер мен дистрибьютор арасындағы желілік кідіріс мәселелер тудыруы мүмкін болған кезде қолайлы.
- Қашықтан таратушы«Келесі серверді дистрибьютор ретінде пайдалану» тармағын таңдап, түймесін басыңыз қосу Егер сіз таратуды өңдеуді бөлек данаға жүктегіңіз келсе, қашықтағы таратушы серверін көрсету үшін. Бұл конфигурация репликация көлемі жоғары болған кезде жұмыс жүктемесін бірнеше серверлерге бөлу арқылы өнімділікті жақсартады. Сізге қашықтағы таратушының атын беру және баспагер таратушыға қосылу үшін пайдаланатын құпия сөзді көрсету қажет болады.
- басыңыз Келесі сурет қалтасының орнын көрсету үшін. Желідегі қолжетімділікті қамтамасыз ету үшін жергілікті жолдың орнына UNC жолын (мысалы, \\servername\share\folder) пайдаланыңыз.
- Үстінде Тарату дерекқоры бетінде әдепкі тарату дерекқорының атауын (әдетте «тарату») қабылдаңыз немесе теңшелетін атауды көрсетіңіз, содан кейін деректер мен журнал файлының орналасуын конфигурациялаңыз.
- Үстінде баспагерлер бетінде ағымдағы сервердің баспагер ретінде қосылғанын тексеріңіз. Егер сіз ағымдағы серверді дистрибьютор ретінде конфигурацияласаңыз, осы дистрибьюторды пайдаланатын қосымша баспагерлерді қосуыңыз мүмкін.
- Шебердің әрекеттерін қарап шығып, түймесін басыңыз Аяқтау таратуды конфигурациялау үшін.
4.3 2-қадам: Жарияланымды жасау
Таратуды конфигурациялағаннан кейін, келесі қадам - жазылушыларға қандай деректер нысандары көшірілетінін анықтайтын басылым жасау.
Басылымды жасау үшін SQL Server Менеджмент студиясы:
- Object Explorer бағдарламасында кеңейтіңіз Репликация қалта.
- Тінтуірдің оң жағын басыңыз Жергілікті басылымдар тармағын таңдаңыз және Жаңа басылым.
- Жаңа жарияланым шебері іске қосылады; түймесін басыңыз Келесі қош келдіңіздер бетінде.
- Жариялағыңыз келетін дерекқорды таңдаңыз Басылымдар базасы бет. Бұл таңдалған дерекқорда жариялауды автоматты түрде қосады.
- Үстінде Жарияланым түрі бетінде репликация түрін таңдаңыз: Қысқаша сипаттама жарияланымы, Транзакциялық басылым, Тең-теңімен басылымнемесе Басылымды біріктіру.
- Үстінде Мақалалар бетті кеңейтіңіз, кестелер node пәрменін таңдап, мақалалар ретінде қосу үшін кестелерді таңдаңыз.
- Қосымша түрде кеңейту Сақталған процедуралар, Көрулернемесе қосымша мақалаларды қосу үшін басқа нысан түрлері.
- басыңыз Мақала қасиеттері сүзуді немесе мақалаға тән басқа параметрлерді конфигурациялау үшін.
- Үстінде Кесте жолдарын сүзгілеу бетінде, қажет болса, жол сүзгілерін қосыңыз.
- Үстінде Сурет агенті бетінде суретті қашан жасау керектігін таңдаңыз: бірден, белгілі бір уақытта немесе кесте бойынша.
- Үстінде Агент қауіпсіздігі бетінде Snapshot агенті үшін қауіпсіздік контекстін көрсетіңіз.
- Үстінде Сиқыршы әрекеттері бетті таңдаңыз Басылымды жасаңыз.
- Басылым атауын енгізіп, түймесін басыңыз Аяқтау.
4.4 3-қадам: Жазылым жасау
Басылымды жасағаннан кейін, келесі қадам - басылымды жазылушылардың дерекқорларына қосатын жазылымдарды жасау.
Жазылымдар push жазылымдары (дистрибьютор басқарады) немесе pull жазылымдары (жазылушы басқарады) болуы мүмкін. Негізгі айырмашылықтар - жазылымды қай жерде жасайтыныңыз және жазылым әрекетін (push немесе pull) анықтайтын агент орнын таңдайтыныңыз.
Push жазылымы үшін (Дистрибьютор басқарады):
- Үстінде баспагер сервер, кеңейту Репликация -> Жергілікті басылымдар.
- Басылымды тінтуірдің оң жақ түймешігімен басып, таңдаңыз Жаңа жазылымдар.
Pull жазылымы үшін (Жазылушы басқарады):
- Үстінде абоненттік сервер, кеңейту Репликация, тінтуірдің оң жағын басыңыз Жергілікті жазылымдартаңдаңыз Жаңа жазылымдар.
- Үстінде басылым бетінде басыңыз табу SQL Server баспагер және баспагер серверіне қосылыңыз.
Жазылымның екі түріне арналған шебердің жалпы қадамдары:
- Жаңа жазылым шеберінде түймесін басыңыз Келесі қош келдіңіздер бетінде.
- Басылымды таңдап, түймесін басыңыз Келесі.
- Үстінде Тарату агентінің орналасқан жері бетінде агенттің орналасқан жерін таңдаңыз:
- Push жазылымы«Дистрибьютордағы барлық агенттерді іске қосу» таңдаңыз – Дистрибьютор жазылушыларға өзгерістер енгізеді.
- Жазылымды тартып алыңыз«Әрбір агентті өз жазылушысында іске қосу» таңдаңыз – әрбір жазылушы Дистрибьютордан өзгерістерді алады.
- Үстінде Жазылушылар бетінде бар жазылушы серверлерін таңдаңыз немесе түймесін басыңыз Жазылушыны қосыңыз жаңаларын қосу үшін.
- Әрбір жазылушы үшін мақсатты дерекқорды таңдаңыз немесе жаңа дерекқор жасаңыз. Ескерту: Жазылым дерекқоры, тіпті бірдей дерекқорды пайдаланса да, баспагердің дерекқорынан өзгеше болуы керек SQL Server мысалы.
- Үстінде Тарату агентінің қауіпсіздігі бетінде қауіпсіздік контекстін конфигурациялау үшін әрбір жазылымның сипаттар түймесін басыңыз.
- Үстінде Синхрондау кестесі бетінде үздіксіз синхрондауды немесе жоспарланған синхрондауды таңдаңыз.
- Үстінде Жазылымдарды іске қосу бетті таңдаңыз Бірден шеберді аяқтау кезінде инициализациялау үшін немесе Алғашқы синхрондау кезінде.
- Шебердің әрекеттерін қарап шығып, түймесін басыңыз Аяқтау.
5. Мониторинг және басқару SQL Server Репликация
5.1 Репликация мониторымен репликацияны бақылау
Репликация мониторын іске қосу үшін:
- In SQL Server Management Studio, кеңейтіңіз Репликация Object Explorer бағдарламасында.
- Тінтуірдің оң жағын басыңыз Репликация тармағын таңдаңыз және Репликация мониторын іске қосыңыз.
- Егер баспагерлер тіркелмеген болса, түймесін басыңыз Баспагерді қосу сол жақ тақтада.
- таңдау қосу SQL Server баспагер және баспагер серверіне қосылыңыз.
- Баспагер сол жақ панельде басылымдар мен жазылымдарға арналған кеңейтілетін түйіндермен бірге пайда болады.
5.2 Өнімділікті бақылау
5.2.1 Монитордың кідірісі
Репликация кідірісі - баспагерде болып жатқан өзгеріс пен жазылушыда қолданылатын өзгеріс арасындағы уақыт кідірісі. Деректердің жаңалығының бизнес талаптарына сәйкес келетініне көз жеткізу үшін кідірісті бақылаңыз.
Барлық жазылымдар қойындысындағы кідіріс көрсеткіштерін көру үшін репликация мониторын пайдаланыңыз. Кідіріс бағанында орташа кідіріс секундпен көрсетіледі. Транзакциялық репликация үшін бақылаушы токендер репликация құбыры арқылы бақыланатын маркерлік транзакцияларды енгізу арқылы дәл кідіріс өлшемдерін қамтамасыз етеді.
Трассерлік белгілерді пайдалану үшін:
- Replication Monitor бөлімінде транзакциялық жарияланымды таңдаңыз.
- басыңыз Трассерлік токендер қойындысы.
- басыңыз Трейсерді енгізу маркерлік транзакцияны енгізу үшін.
- Токеннің баспагерден дистрибьюторға, жазылушыға ауысуын бақылаңыз.
- Әрбір сегментке кеткен уақытты қарап, кедергілерді анықтаңыз.
5.2.2 Монитордың өткізу қабілеті
Өткізу қабілеті уақыт өте келе қайталанатын деректердің көлемін өлшейді, әдетте секундына транзакциялар немесе секундына командалар ретінде көрсетіледі. Репликация баспагердің белсенділігіне сәйкес келетініне көз жеткізу үшін өткізу қабілетін бақылаңыз.
Replication Monitor негізгі синхрондау күйін қамтамасыз етсе де, жеткізу жылдамдығы және егжей-тегжейлі өткізу қабілетінің көрсеткіштері GUI-де көрінбейді. Өткізу қабілетін бақылау үшін тарату дерекқорына қарсы T-SQL сұрауларын пайдаланыңыз:
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
Күй кодтары: 1 = Басталу, 2 = Орындалуда, 3 = Сәтті, 4 = Бос, 5 = Қайталау, 6 = Сәтсіз. Репликация артта қалып жатқан жағдайларды анықтау үшін жеткізу жылдамдығын баспагердің транзакция жылдамдығымен салыстырыңыз. Өнімділік көрсеткіштері Windows өнімділігінің мониторы әрбір репликация агенті үшін қосымша өткізу қабілетінің көрсеткіштерін қамтамасыз ету.
5.2.3 Кідірістерді анықтау
Репликациядағы кедергілер топологияның бірнеше нүктелерінде орын алуы мүмкін. Баспагерде суретті жасау уақыты немесе журнал оқу құралының кідірістері ресурстардың шектеулі екенін көрсетуі мүмкін. Репликация әрекеттері кезінде баспагердегі процессорды, жадты және дискінің енгізу/шығаруын бақылаңыз.
Дистрибьюторда тарату дерекқорында жинақталатын транзакцияларды тексеріңіз. Таратылмаған командалардың көп саны дистрибьютордың жеткізілімге ілесе алмайтынын көрсетеді. Дистрибьютор серверінің ресурстарын бақылап, үлкен көлемді сценарийлер үшін арнайы қашықтағы дистрибьюторды пайдалануды қарастырыңыз.
Жазылушыда өзгерістердің баяу қолданылуы ресурстардың жеткіліксіздігінен, индекстердің болмауынан немесе енгізу операцияларын баяулататын шектеулерден туындауы мүмкін. Тарату агенті жұмыс істеп тұрған кезде жазылушы ресурстарын пайдалануды және сұрау өнімділігін бақылаңыз. Компоненттер арасындағы желі өткізу қабілеттілігінің шектеулері, әсіресе үлкен деректер көлемі үшін, кедергілерді тудырады.
5.3 Репликация агенттерін басқару
5.3.1 Іске қосу және тоқтату агенттері
Репликация агентін іске қосу немесе тоқтату үшін:
- In SQL Server Management Studio, кеңейтіңіз SQL Server агент -> Бос.
- Репликация агентінің жұмысын табыңыз (атаулар әдетте басылым мен жазылушы туралы ақпаратты қамтиды).
- Тапсырманы тінтуірдің оң жақ түймешігімен басып, таңдаңыз Жұмысты бастау or Жұмысты тоқтату.
5.3.2 Агент профильдерін конфигурациялау
Агент профильдерінде агенттің әрекетін басқаратын параметрлер жиынтықтары бар. SQL Server жалпы сценарийлер үшін оңтайландырылған әдепкі профильдерді ұсынады және сіз нақты қажеттіліктер үшін реттелетін профильдер жасай аласыз.
Агент профильдерін өзгерту үшін:
- Object Explorer бағдарламасында кеңейтіңіз Репликация.
- Тінтуірдің оң жағын басыңыз Репликация тармағын таңдаңыз және Дистрибьютордың қасиеттері.
- басыңыз Профильдің әдепкі параметрлері түймесін басыңыз.
- Ашылмалы тізімнен агент түрін (Snapshot, Log Reader, Distribution немесе Merge) таңдаңыз.
- Профильді таңдап, түймесін басыңыз Сипаттар параметр мәндерін көру үшін.
- басыңыз Жаңа профиль бар профиль негізінде арнайы профиль жасау.
- Қажетті параметрлерді өзгертіп, нұқыңыз OK.
Жазылым сипаттарын өңдеу және Агент профилінің ашылмалы тізімінен қажетті профильді таңдау арқылы агентке профиль қолданыңыз.
5.3.3 Агент параметрлері мен параметрлері
Агент параметрлері өнімділік пен мінез-құлықты дәл баптайды. Distribution Agent үшін негізгі параметрлерге CommitBatchSize (әрбір коммитке қолданылатын транзакциялар саны), CommitBatchThreshold (коммитке дейінгі командалар саны), SubscriptionStreams (жылдам жеткізу үшін параллель қосылымдар) және QueryTimeout (командалар үшін тайм-аут) жатады.
Log Reader агенті үшін маңызды параметрлерге ReadBatchSize (бір сканерлеу кезінде оқылатын транзакциялар саны), ReadBatchThreshold (жеткізу алдындағы командалар) және PollingInterval (журнал сканерлеулері арасындағы кідіріс) жатады. Бұл параметрлерді транзакция көлемі мен кідіріс талаптарына негіздеп реттеңіз.
5.4 Сақтық көшірме жасау және қалпына келтіру туралы ескеретін жайттар
Репликацияға қатысатын дерекқорлардың сақтық көшірмесін жасау ерекше назар аударуды қажет етеді. Баспагердің дерекқоры үшін тұрақты түрде толық және транзакция журналының сақтық көшірмелерін жасау өте маңызды. Транзакциялық репликацияда дерекқорлардың сақтық көшірмесін жасаған кезде WITH REPLICATION опциясын пайдаланып, репликацияны қолдау үшін дерекқордың сақтық көшірмесін белгілеңіз. Репликация конфигурациясын қорғау үшін тарату дерекқорының сақтық көшірмесін үнемі жасап отырыңыз.
Баспагердің дерекқорын бірдей атаумен сол серверге қалпына келтірген кезде, репликация күйін сақтау үшін WITH KEEP_REPLICATION опциясын пайдаланыңыз. Бұл опция Log Reader агенті әлі өңдемеген транзакциялардың репликация үшін белгіленген күйінде қалуын қамтамасыз етеді, бұл жазылымдарды қайта іске қоспай-ақ репликацияның автоматты түрде жалғасуына мүмкіндік береді.
Сақтық көшірмелер қолжетімді болмаған, бүлінген немесе дерекқор файлдары зақымдалған апаттық қалпына келтіру сценарийлерінде арнайы қалпына келтіру құралдары қажет болуы мүмкін. DataNumen SQL Recovery бүлінген немесе қол жетімсіз MDF және NDF файлдарынан деректерді шығарып ала алады, бұл стандартты қалпына келтіру процедуралары сәтсіз болған кезде соңғы шараны ұсынады.
Толығырақ SQL Server сақтық көшірме, біздің қараңыз жан-жақты нұсқаулық.
6. Жиі қойылатын сұрақтар (FAQ)
С: Снапшот пен транзакциялық репликацияның айырмашылығы неде?
A: Snapshot репликациясы деректердің толық көшірмесін белгілі бір уақытта алады және оны жазылушыға қолданады, бұл сирек өзгеретін деректерге жарамды. Транзакциялық репликация бастапқы суреттен басталады, содан кейін жеке транзакциялар орын алған кезде үздіксіз көшіріледі, бұл жиі өзгеретін деректер үшін нақты уақыт режимінде синхрондауды қамтамасыз етеді.
С: Әртүрлі арасында қайталай аламын ба? SQL Server нұсқалары?
Ж: иә SQL Server репликация шектеулі диапазонда нұсқа үйлесімділігін қолдайды. Дистрибьютор нұсқасы баспагер нұсқасына тең немесе одан жоғары болуы керек, ал жазылушы баспагердің екі нұсқасының ішінде болуы мүмкін. Мысалы, егер баспагер болса SQL Server 2016 жылы жазылушы бола алады SQL Server 2012, 2014, 2016, 2017 немесе 2019.
С: Біріктіру репликациясындағы қақтығыстарды қалай шешуге болады?
A: Біріктіру репликациясы кіріктірілген қақтығыстарды анықтау және шешу механизмдерін ұсынады. Сіз мақала деңгейінде қақтығыстарды шешушілерді конфигурациялай аласыз, кіріктірілген шешушілерден таңдай аласыз немесе арнайы қақтығыстарды шешушілерді енгізе аласыз. Қақтығыстар әдетте басымдыққа негізделген немесе уақыт белгісіне негізделген әдістерді пайдаланып шешіледі, қолмен қарау үшін қақтығыстарды тіркеу мүмкіндігі бар.
С: Репликацияның өнімділікке әсері қандай?
A: Репликация өнімділікке бірнеше жолмен әсер етеді: баспагер өзгерістерді бақылау және суреттерді жасау кезінде шығындарды бастан кешіреді, дистрибьютор транзакцияларды сақтау және жіберу үшін ресурстарды пайдаланады, ал желінің өткізу қабілеті деректерді беру кезінде тұтынылады. Әсер репликация түріне байланысты өзгереді, суретті репликациялау мерзімді жоғары әсерлі жарылыстарды тудырады, ал транзакциялық репликация тұрақты, бірақ үздіксіз жүктемені сақтайды.
С: Репликация топологиясын қалай қорғаймын?
A: Бірнеше ең жақсы тәжірибелерді енгізу арқылы репликация топологияңызды қауіпсіздендіріңіз: Windows аутентификациясын немесе күшті SQL Server аутентификация, TLS арқылы қосылымдарды шифрлау, суретке түсіру қалтасын тиісті түрде қорғау NTFS рұқсаттарды тексеру, кіруді басқару үшін жарияланымға кіру тізімін (PAL) конфигурациялау, әрбір репликация агенті үшін минималды қажетті рұқсаттары бар бөлек қызметтік тіркелгілерді пайдалану және репликация қауіпсіздік параметрлерін үнемі тексеру.
С: Azure SQL дерекқорына көшіре аламын ба?
A: Иә, сіз Azure SQL дерекқорына жергілікті транзакциялық репликацияны пайдаланып репликациялай аласыз SQL Server немесе Azure SQL Managed Instance баспагері және дистрибьюторы ретінде. Azure SQL дерекқоры жазылушы ретінде қызмет ете алады, бірақ баспагер немесе дистрибьютор ретінде емес. Azure SQL дерекқорында біріктірілген репликация және тең дәрежелі репликация қолдау таппайды.
С: Репликацияның кешігуін қалай бақылауға болады?
A: Replication Monitor көмегімен репликацияның кешігуін бақылау SQL Server Әрбір жазылым үшін кідіріс көрсеткіштерін көрсететін Management Studio. Сондай-ақ, MSdistribution_history және MSrepl_commands сияқты тарату дерекқорының кестелеріне сұрау жасай аласыз, репликация агенттеріне арналған өнімділік есептегіштерін пайдалана аласыз немесе синхрондау кідірістерін алдын ала анықтау және жою үшін кідіріс шегіне негізделген ескертулерді орната аласыз.
С: Жазылушы желіден тыс болғанда не болады?
A: Жазылушы желіден тыс болған кезде, оның әрекеті репликация түріне байланысты. Транзакциялық репликация үшін транзакциялар жазылушы желіге қайта оралғанша тарату дерекқорында жинақталады, содан кейін синхрондау қайта жалғасады. Біріктіру репликациясы үшін өзгерістер екі жақта да бақыланады және байланыс қалпына келтірілген кезде біріктіріледі. Сақтау кезеңі параметрі деректерді қайта іске қосу алдында қанша уақыт сақталатынын анықтайды.
С: Бар басылымға жаңа мақалаларды қалай қосуға болады?
A: Бар басылымға жаңа мақалалар қосу үшін, пайдаланыңыз SQL Server Басылым қасиеттерін өзгерту және қосымша нысандарды таңдау үшін Management Studio бағдарламасын пайдаланыңыз немесе sp_addarticle сақталған процедурасын пайдаланыңыз. Мақалаларды қосқаннан кейін, жаңа сурет жасап, жазылушылардың жаңа мақалаларды алуын қамтамасыз ету үшін барлық жазылымдарды қайта іске қосыңыз. Кейбір өзгерістер жарияланым параметрлеріне байланысты жазылымды қайта іске қосуды қажет етуі мүмкін.
С: Дерекқордан репликацияны қалай жоюға болады?
A: Алдымен sp_dropsubscription көмегімен барлық жазылымдарды жою, содан кейін sp_droppublication көмегімен жарияланымды алып тастау және соңында sp_replicationdboption көмегімен дерекқорда жариялауды өшіру арқылы дерекқордан репликацияны жойыңыз. Егер сервер дистрибьютор болса, sp_dropdistributor көмегімен таратуды өшіріңіз. Репликация конфигурациясын жоймас бұрын әрқашан дерекқорлардың сақтық көшірмесін жасаңыз.
С: Олардың айырмашылығы неде SQL Server Репликация және AlwaysOn қолжетімділік топтары?
A: Репликация - бұл объект деңгейінде жұмыс істейтін деректерді тарату және интеграциялау шешімі, ал Әрқашан қолжетімді топтар дерекқор деңгейінде жұмыс істейтін жоғары қолжетімділік және апаттардан кейін қалпына келтіру шешімі болып табылады.
7. қорытынды
SQL Server Репликация деректерді бірнеше дерекқорлар мен орындар арасында тарату және синхрондау үшін сенімді негізді қамтамасыз етеді. Технология әртүрлі репликация түрлері арқылы әртүрлі сценарийлерді қолдайды.
Дұрыс репликация стратегиясын таңдау сіздің нақты талаптарыңызға байланысты. Деректерді өзгерту жиілігін, кідіріс талаптарын, жазылушыларға жаңартулар енгізу қажеттілігін, желі сипаттамаларын және жазылушының автономия қажеттіліктерін ескеріңіз. Кешігу маңызды емес сирек өзгеретін анықтамалық деректер үшін Snapshot репликациясы жақсы жұмыс істейді. Транзакциялық репликация төмен кідіріс пен негізінен бір жақты деректер ағынын қажет ететін жоғары көлемді сценарийлерге сәйкес келеді.
Жазылушыларға офлайн мүмкіндіктері және екі бағытты синхрондау арқылы автономды жұмыс қажет болған кезде біріктіру репликациясын таңдаңыз. Нақты уақыт режимінде дерлік консистенциясы бар бірнеше белсенді түйіндердегі оқу операцияларын жүктемені теңестіру үшін тең дәрежелі репликацияны енгізіңіз. Әртүрлі талаптары бар күрделі сценарийлер үшін бірнеше репликация түрлерін біріктіретін гибридті тәсілдерді қарастырыңыз.
Әдебиеттер тізімі
- Microsoft ресми құжаты: SQL Server Репликация
- Microsoft ресми құжаты: Репликация түрлері
- Microsoft ресми құжаты: Peer-to-Peer – Транзакциялық репликация
Автор туралы
Юань Шэн бойынша 10 жылдан астам тәжірибесі бар дерекқордың аға әкімшісі (DBA) болып табылады SQL Server орталар мен кәсіпорынның дерекқорын басқару. Ол қаржы қызметтері, денсаулық сақтау және өндірістік ұйымдардағы дерекқорды қалпына келтірудің жүздеген сценарийлерін сәтті шешті.
Юань маманданған SQL Server дерекқорды қалпына келтіру, жоғары қолжетімді шешімдер және өнімділікті оңтайландыру. Оның кең тәжірибелік тәжірибесіне көп терабайттық дерекқорларды басқару, Әрқашан қолжетімділік топтарын енгізу және маңызды бизнес жүйелері үшін автоматтандырылған сақтық көшірме жасау және қалпына келтіру стратегияларын әзірлеу кіреді.
Техникалық тәжірибесі мен практикалық көзқарасы арқылы Юань дерекқор әкімшілері мен АТ мамандарына күрделі мәселелерді шешуге көмектесетін толық нұсқаулықтарды жасауға бағытталған. SQL Server қиындықтарды тиімді шешеді. Ол соңғы жаңалықтардан хабардар болып отырады SQL Server шығарылымдары мен Microsoft корпорациясының дамып келе жатқан дерекқор технологиялары, оның ұсыныстары нақты әлемдегі ең жақсы тәжірибелерді көрсететініне көз жеткізу үшін қалпына келтіру сценарийлерін жүйелі түрде сынап отырады.
туралы сұрақтарыңыз бар SQL Server қалпына келтіру немесе қосымша дерекқор ақаулықтарын жою нұсқаулығы қажет пе? Юань қарсы алады кері байланыс пен ұсыныстар осы техникалық ресурстарды жақсарту үшін.














