Lokacija agenta, a ne lokacija podataka, odluka je koja oblikuje SQL Server pretplatu. Mašina koja pokreće agenta otvara vezu, radi pod određenim računom i preuzima krivicu kada se sinhronizacija zaustavi. Na VPN-u između lokacija ta razlika je dizajn, a ne detalj. Nacrtajte veze agenta prije nego što nacrtate mrežu.

Tri uloge, ne dvije

Publisher posjeduje podatke članka, Distributor posjeduje bazu podataka za distribuciju, a Subscriber prima promjene. Log Reader Agent radi na Distributoru za transakcijsku replikaciju. Distribution Agent je onaj čija se lokacija mijenja s tipom pretplate, i zato određuje mrežni dizajn. Razjasnite te uloge prije nego što govorite o VPN pravilima.

Push pretplata pokreće Distribution Agent na Distributoru, a pull pretplata ga pokreće na Subscriberu, kako navodi Microsoftova dokumentacija o pretplatama kaže. Sve u mrežnom razgovoru proizlazi iz toga koja je to mašina. Zapišite četiri činjenice za svaku pretplatu: host agenta, identitet njegovog procesa, prijave na bazu podataka koje koristi i resurse do kojih mora doći. Te činjenice, a ne strelica na dijagramu, govore vam koji smjer mora raditi.

Push znači da agent živi na Distributoru

Kod push pretplate Distributor otvara vezu prema Subscriberu preko VPN-a. Slušalac, firewall i SQL prijava na strani pretplatnika moraju prihvatiti veze koje dolaze s udaljene strane. Servisni račun Distributora također treba dozvolu na bazi pretplatnika. Planirajte tu dolaznu putanju prije nego što napravite pretplatu, jer otkrivanje iste kasnije obično znači njeno ponovno stvaranje.

Isporuka snimke dodaje putanju koju stabilna replikacija nikada ne koristi. Ako je snimka smještena na datotečnom dijeljenju, Distribution Agent čita s tog dijeljenja i račun pretplatnika mora doći do iste UNC putanje. Tok promjena koji teče sedmicama ne govori ništa o tome hoće li ponovna inicijalizacija raditi. Zato dijeljenje sa snimkom pripada planu od početka.

Ne čitajte push kao jednosmjerni promet. Agent treba odgovore, potvrde i vlastite razmjene autentifikacije. Putanja mora biti dvosmjerna na razini veze čak i kada se podaci kreću u jednom smjeru.

Pull znači da agent živi na Subscriberu

Pull pretplata okreće vezu: Subscriber pokreće Distribution Agent i obraća se Distributoru. Taj raspored odgovara VPN politici koja dopušta odlazne veze iz poslovnice i blokira dolazne. On također stavlja odluku o rasporedu u ruke onoga ko brine o serveru poslovnice. Odaberite ga kada tim poslovnice treba posjedovati vlastitu sinhronizaciju i primjećivati vlastite kvarove.

Servisni račun SQL Server Agent pretplatnika treba pristup za čitanje baze za distribuciju i dijeljenja sa snimkom. Taj račun je identitet koji se pojavljuje u greškama replikacije, a lokalni servisni račun bez prava domene pada na mjestu koje izgleda kao mrežni kvar, ali je zapravo kvar vjerodajnica. Provjerite račun prije nego što otklanjate greške u tunelu. Popravljanje prijave obično je brže od dokazivanja nevinosti mreže.

Vlasništvo slijedi agenta. Odaberite push kada centralni tim treba posjedovati i raspored i kvarove. Šta god odabrali, zapišite to uz pretplatu da sljedeći inženjer zna gdje prvo pogledati.

Ponovno objavljivanje mijenja grananje, ne vlasništvo

Pretplatnik se može konfigurirati da ponovno objavljuje daljim pretplatnicima, što omogućava jednoj bazi poslovnice da opslužuje nekoliko lokalnih potrošača bez da svaki vuče preko WAN-a. Srednja baza sada drži publikaciju i vlastite agente. Ona također nasljeđuje dozvole, nadzor i plan oporavka koje prije nije imala. Ta dodatna uloga cijena je uklanjanja ponovljene WAN isporuke.

Dokumentirani redoslijed je važan: inicijalizirajte dolaznu pretplatu prije stvaranja nizvodne publikacije. Tretirajte to kao korak životnog ciklusa s provjerom, a ne kao papirologiju koju treba preskočiti. Obrnuti redoslijed stvara lanac koji izgleda konfiguriran i ništa ne isporučuje.

Eksplicitno navedite model pisanja. Repliciranje skupa podataka samo za čitanje lokalnom potrošaču drugačiji je dizajn od prihvatanja upisa na više lokacija, a lanac strelica ne stvara rješavanje sukoba. Ako poslovnica mora pisati, to je zasebna odluka s vlastitom topologijom. Učinite i zavisnost vidljivom: kada je ponovni izdavač pao, svaki potrošač ispod njega je zastario.

Dokažite smještaj od početka do kraja

Pročitajte tip pretplate iz baze za distribuciju umjesto da vjerujete pamćenju, pa provjerite stižu li promjene zaista:

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 vrijednosti 0 znači push, a 1 znači pull, i ne može se promijeniti na mjestu, pa nesklad znači ponovno stvaranje pretplate, a ne njeno uređivanje. Poziv za naredbe na čekanju kaže vam pomjera li odabrani agent posao ili samo radi. Pretplata koja prijavljuje nula naredbi na čekanju dok tabela pretplatnika ostaje prazna drugačiji je kvar od one koja prijavljuje rastući zaostatak, i njih dvije vode do različitih vlasnika.

Završite stvarnom promjenom: umetnite ili ažurirajte jedan red na Publisheru, sačekajte da agent izvijesti i pročitajte taj red na Subscriberu. Učinite to još jednom kroz kratak prekid VPN-a da vidite kako se agent oporavlja. Pretplata koja preživi taj test ima smještaj koji možete dokumentirati i braniti.

Povezani članci