Push и pull агенти репликације преко VPN-а између локација
Локација агента претплате одређује која машина отвара везе преко 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 отвара везу ка Subscriber-у преко VPN-а. Слушалац, заштитни зид и 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-а да видите како се агент опоравља. Претплата која преживи тај тест има размештај који можете да документујете и одбраните.