Agenti replikácie push a pull cez VPN medzi lokalitami
Umiestnenie agenta predplatného rozhoduje o tom, ktorý počítač otvára pripojenia cez VPN. Vyberte push alebo pull podľa toho, kto vlastní úlohu, nie podľa šípok v diagrame.
Umiestnenie agenta, nie umiestnenie dát, je rozhodnutie, ktoré formuje predplatné SQL Servera. Počítač, ktorý agenta spúšťa, otvára pripojenie, beží pod konkrétnym účtom a nesie vinu, keď sa synchronizácia zasekne. Na VPN medzi lokalitami je ten rozdiel návrhom, nie detailom. Nakreslite pripojenia agenta skôr, než nakreslíte sieť.
Tri role, nie dve
Publisher vlastní dáta článku, Distributor vlastní distribučnú databázu a Subscriber prijíma zmeny. Log Reader Agent beží na Distributore pre transakčnú replikáciu. Distribution Agent je ten, ktorého umiestnenie sa mení s typom predplatného, a preto určuje návrh siete. Ujasnite si tieto role, skôr než začnete hovoriť o pravidlách VPN.
Predplatné push spúšťa Distribution Agent na Distributore a predplatné pull ho spúšťa na Subscriberi, ako uvádza dokumentácia k predplatnému Microsoftu. Všetko v sieťovom rozhovore vyplýva z toho, ktorý počítač to je. Zapíšte štyri skutočnosti pre každé predplatné: hostiteľa agenta, identitu jeho procesu, prihlásenia do databázy, ktoré používa, a prostriedky, ku ktorým sa musí dostať. Tieto skutočnosti, nie šípka v diagrame, vám povedia, ktorý smer musí fungovať.
push znamená, že agent žije na Distributore
Pri predplatnom push otvára Distributor pripojenie k Subscriberovi cez VPN. Poslucháč, firewall a SQL prihlásenie na strane predplatiteľa musia prijímať pripojenia prichádzajúce zo vzdialenej strany. Servisný účet Distributora tiež potrebuje oprávnenie na databáze predplatiteľa. Naplánujte túto prichádzajúcu cestu pred vytvorením predplatného, pretože jej neskoršie objavenie zvyčajne znamená jeho opätovné vytvorenie.
Doručenie snímky pridáva cestu, ktorú ustálená replikácia nikdy nepoužíva. Ak je snímka umiestnená na zdieľanej zložke, Distribution Agent číta z tejto zložky a účet predplatiteľa sa musí dostať na tú istú cestu UNC. Tok zmien, ktorý beží týždne, nič nehovorí o tom, či bude fungovať opätovná inicializácia. Preto zdieľaná zložka so snímkou patrí do plánu od začiatku.
Nečítajte push ako jednosmerný provoz. Agent potrebuje odpovede, potvrdenia a vlastné výmeny overovania. Cesta musí byť na úrovni pripojenia obojsmerná, aj keď sa dáta pohybujú jedným smerom.
pull znamená, že agent žije na Subscriberovi
Predplatné pull obracia pripojenie: Subscriber spúšťa Distribution Agent a obracia sa na Distributora. Toto usporiadanie vyhovuje zásade VPN, ktorá povoľuje odchádzajúce pripojenia z pobočky a blokuje prichádzajúce. Stavia tiež rozhodnutie o plánovaní do rúk toho, kto sa stará o server pobočky. Vyberte ho, keď má tím pobočky vlastniť vlastnú synchronizáciu a všímať si vlastné zlyhania.
Servisný účet SQL Server Agent predplatiteľa potrebuje prístup na čítanie k distribučnej databáze a k zdieľanej zložke so snímkou. Ten účet je identita, ktorá sa objavuje v chybách replikácie, a miestny servisný účet bez práv domény zlyháva v bode, ktorý vyzerá ako sieťová porucha, ale v skutočnosti je poruchou prihlasovacích údajov. Skontrolujte účet, skôr než začnete ladiť tunel. Oprava prihlásenia je zvyčajne rýchlejšia než dokazovanie neviny siete.
Vlastníctvo nasleduje agenta. Vyberte push, keď má centrálny tím vlastniť plán aj zlyhania. Čo si vyberiete, napíšte to vedľa predplatného, aby ďalší inženýr vedel, kam sa pozrieť najskôr.
Opätovné publikovanie mení vetvenie, nie vlastníctvo
Predplatiteľa možno nakonfigurovať na opätovné publikovanie ďalším predplatiteľom, čo umožňuje jednej pobočkovej databáze obsluhovať niekoľko miestnych spotrebiteľov bez toho, aby každý ťahal cez WAN. Prostredná databáza teraz drží publikáciu a vlastných agentov. Dedí tiež oprávnenia, monitorovanie a plán obnovy, ktoré predtým nemala. Táto úloha navyše je cena za odstránenie opakovaného doručovania cez WAN.
Zdokumentované poradie je dôležité: inicializujte prichádzajúce predplatné pred vytvorením nadväzujúcej publikácie. Berte to ako krok životného cyklu s overením, nie ako papierovačky, ktoré sa preskakujú. Opačné poradie vytvorí reťaz, ktorá vyzerá nakonfigurovaná a nič nedoručuje.
Vyslovte model zápisu výslovne. Replikácia dátovej sady iba na čítanie miestnemu spotrebiteľovi je iný návrh než prijímanie zápisov na viacerých lokalitách a reťaz šípok nevytvára riešenie konfliktov. Ak pobočka musí zapisovať, je to samostatné rozhodnutie s vlastnou topológiou. Zviditeľnite aj závislosť: keď opätovný publikovateľ nebeží, každý spotrebiteľ pod ním je zastaraný.
Dokážte umiestnenie od začiatku do konca
Prečítajte typ predplatného z distribučnej databázy namiesto dôverovania pamäti a potom overte, či zmeny skutočne dorazia:
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 s hodnotou 0 znamená push a 1 znamená pull a nedá sa zmeniť na mieste, takže nesúlad znamená nové vytvorenie predplatného, nie jeho úpravu. Volanie čakajúcich príkazov vám povie, či zvolený agent presúva prácu, alebo len beží. Predplatné, ktoré hlási nula čakajúcich príkazov, kým tabuľka predplatiteľa zostáva prázdna, je iná porucha než to, ktoré hlási rastúci nedostatok, a obe vedú k rôznym vlastníkom.
Skončite skutočnou zmenou: vložte alebo aktualizujte jeden riadok na Publisherovi, počkajte, kým agent podá správu, a prečítajte ten riadok na Subscriberovi. Urobte to ešte raz počas krátkeho prerušenia VPN, aby ste videli, ako sa agent zotaví. Predplatné, ktoré tento test prežije, má umiestnenie, ktoré môžete zdokumentovať a obhájiť.