Сайттар арасындагы VPN аркылуу push жана pull репликация агенттери
Жазылуу агентинин жайгашкан жери кайсы машина VPN аркылуу байланыш ачарын аныктайт. push же pull тандоону диаграммадагы жебелер боюнча эмес, иштин ээсине карап жасаңыз.
Агенттин жайгашкан жери, маалыматтын жери эмес, SQL Server жазылуусун калыптандырган чечим. Агентти иштеткен машина байланышты ачат, белгилүү бир эсеп менен иштейт жана синхрондоо токтогондо жоопкерчиликти өзүнө алат. Сайттар арасындагы VPNде бул айырма — долбоорлоонун өзү, майда-чүйдө эмес. Тармакты тартуудан мурун агенттин байланыштарын тартыңыз.
Үч роль, экөө эмес
Publisher макаланын маалыматтарына ээ, Distributor таратуу маалымат базасына ээ, ал эми Subscriber өзгөртүүлөрдү кабыл алат. Log Reader Agent транзакциялык репликация үчүн Distributorдо иштейт. Distribution Agent — жазылуу түрү менен орду өзгөргөн агент, ошондуктан ал тармактын долбоорун аныктайт. VPN эрежелери тууралуу сүйлөшөрдүн мурун ушул ролдорду тактап алыңыз.
push жазылуусу Distribution Agentти Distributorдо иштетет, ал эми pull жазылуусу аны Subscriberде иштетет, Microsoft-тун жазылуу документтери айтканындай. Тармак сүйлөшүүсүндөгү баары ушул машинанын кайсы экенинен келип чыгат. Ар бир жазылуу үчүн төрт фактыны жазып алыңыз: агенттин хосту, анын процессинин идентификатору, ал колдонгон маалымат базасынын кирүүлөрү жана ал жетүүгө тийиш ресурстар. Диаграмманын жебеси эмес, ушул фактылар кайсы багыт иштеши керектигин айтат.
push дегени агент Distributorдо жашайт
push жазылуусунда Distributor VPN аркылуу Subscriberге байланыш ачат. Жазылуучу тараптагы угуучу, firewall жана SQL кирүү алыскы тараптан келген байланыштарды кабыл алышы керек. Distributorдун кызмат эсебине да жазылуучунун маалымат базасында уруксат керек. Бул кирүүчү жолду жазылуу түзүүдөн мурун пландаңыз, анткени аны кийин табуу адатта аны кайра түзүүнү билдирет.
Снэпшот жеткирүү туруктуу репликация эч качан колдонбогон жолду кошот. Эгер снэпшот файлдык бөлүшүүдө жайгашса, Distribution Agent ошол бөлүшүүдөн окуйт жана жазылуучунун эсеби ошол эле UNC жолуна жетиши керек. Жума бою уланган өзгөртүүлөр агымы кайра инициализация иштейби-иштебейби деген жөнүндө эч нерсе айтпайды. Ошондуктан снэпшоттун бөлүшүүсү планда башынан турушу керек.
pushти бир багыттуу трафик деп окубаңыз. Агентке жооптор, ырастоолор жана өзүнүн аутентификация алмашуулары керек. Маалымат бир багытта кыймылдаса да, жол байланыш деңгээлинде эки багыттуу болушу керек.
pull дегени агент Subscriberде жашайт
pull жазылуусу байланышты тескери бурат: Subscriber Distribution Agentти өзү иштетип, Distributorго кайрылат. Бул жайгашуу филиалдан чыгуучу байланыштарга уруксат берип, кирүүчүлөрдү блоктогон VPN саясатына туура келет. Ал ошондой эле график боюнча чечимди филиалдын серверин караган адамдын колуна берет. Филиалдын командасы өзүнүн синхрондоосун ээлеп, өзүнүн ийгиликсиздиктерин байкашы керек болгондо аны тандаңыз.
Жазылуучунун SQL Server Agent кызмат эсебине таратуу маалымат базасына жана снэпшоттун бөлүшүүсүнө окуу укугу керек. Ошол эсеп репликация каталарында көрүнгөн инсандык, ал эми домендик укуктары жок жергиликтүү кызмат эсеби тармактын бузулушуна окшош, бирок чындыгында эсептик маалыматтардын бузулушу болгон жерде ийгиликсиз болот. Туннелди жөндөөдөн мурун эсепти текшериңиз. Кирүүнү оңдоо адатта тармактын күнөөсүздүгүн далилдөөдөн тезирээк.
Ээлик агентти ээрчийт. Борбордук команда графикти да, ийгиликсиздиктерди да ээлеши керек болгондо push тандаңыз. Кандай тандасаңыз да, аны жазылуунун жанына жазыңыз, кийинки инженер кайдан биринчи карашты билсин.
Кайра жарыялоо таралышты өзгөртөт, ээликти эмес
Жазылуучуну мындан ары жазылуучуларга кайра жарыялоого конфигурациялоого болот, бул бир филиалдык маалымат базасына ар бири WAN аркылуу тартпастан бир нече жергиликтүү керектөөчүгө кызмат көрсөтүүгө мүмкүндүк берет. Ортодогу маалымат базасы эми басылманы жана өз агенттерин кармайт. Ал ошондой эле мурун болбогон уруксаттарды, мониторингди жана калыбына келтирүү планын мураска алат. Бул кошумча роль кайталанма WAN жеткирүүнү алып салуунун баасы.
Документтелген тартип маанилүү: төмөнкү басылманы түзүүдөн мурун кирүүчү жазылууну инициализациялаңыз. Муну текшерүү менен жашоо циклинин кадамы катары кабыл алыңыз, өткөрүп жиберилүүчү кагаз иштери катары эмес. Аны тескери буруу конфигурациялангандай көрүнгөн, бирок эч нерсе жеткирбеген чынжыр жаратат.
Жазуу моделин так айтыңыз. Тек окууга арналган маалымат топтомун жергиликтүү керектөөчүгө репликациялоо бир нече сайтта жазууларды кабыл алуудан башка долбоор, ал эми жебелердин чынжыры жаңжалды чечүүнү жаратпайды. Эгер филиал жазышы керек болсо, бул өз топологиясы бар өзүнчө чечим. Көз карандылыкты да көрүнүктүү кылыңыз: кайра жарыялоочу токтогондо, анын астындагы ар бир керектөөчү эскирет.
Жайгашууну башынан аягына чейин далилдеңиз
Эстутумга ишенүүнүн ордуна таратуу маалымат базасынан жазылуунун түрүн окуңуз, анан өзгөртүүлөр чын эле жетерин текшериңиз:
USE distribution;
SELECT publication, subscriber_db, subscription_type
FROM dbo.MSsubscriptions;
EXEC sp_replmonitorsubscriptionpendingcmds
@publisher = 'PUB1', @publisher_db = 'Sales',
@publication = 'SalesPub', @subscriber = 'BR1',
@subscriber_db = 'Sales';
subscription_type мааниси 0 болсо push, 1 болсо pull болот жана аны ордунда өзгөртүү мүмкүн эмес, ошондуктан дал келбестик жазылууну редакциялоону эмес, кайра түзүүнү билдирет. Күтүүдөгү буйруктарды чакыруу тандалган агент ишти жылдырып жатабы же жөн гана иштеп жатабы деп айтат. Күтүүдөгү буйруктар нөл деп билдирген, бирок жазылуучунун таблицасы бош калган жазылуу өсүп жаткан артта калууну билдирген жазылуудан башка бузулуш, жана экөө ар башка ээлерге алып барат.
Чыныгы өзгөртүү менен бүтүрүңүз: Publisherден бир сапты киргизиңиз же жаңыртыңыз, агенттин отчетун күтүңүз жана ошол сапты Subscriberден окуңуз. Агенттин кантип калыбына келерин көрүү үчүн муну кыска VPN үзгүлтүгү учурунда дагы бир жолу жасаңыз. Бул сыноодон өткөн жазылуунун документтештирип, коргой алган жайгашуусу бар.