Агенттің орналасуы, деректердің орналасуы емес, 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 үзілісі кезінде тағы бір рет жасаңыз. Осы сынақтан өткен жазылымның құжаттай алатын және қорғай алатын орналасуы бар.

Қатысты мақалалар