Agenti replikace push a pull přes VPN mezi lokalitami
Umístění agenta předplatného rozhoduje o tom, který počítač otevírá připojení přes VPN. Zvolte push nebo pull podle toho, kdo vlastní úlohu, ne podle šipek v diagramu.
Umístění agenta, nikoli umístění dat, je rozhodnutí, které utváří předplatné SQL Serveru. Počítač, který agenta spouští, otevírá připojení, běží pod konkrétním účtem a nese vinu, když se synchronizace zasekne. Na VPN mezi lokalitami je tento rozdíl návrhem, ne detailem. Nakreslete připojení agenta dřív, než nakreslíte síť.
Tři role, ne dvě
Publisher vlastní data článku, Distributor vlastní distribuční databázi a Subscriber přijímá změny. Log Reader Agent běží na Distributoru pro transakční replikaci. Distribution Agent je ten, jehož umístění se mění s typem předplatného, a proto určuje návrh sítě. Srovnejte si tyto role, než začnete mluvit o pravidlech VPN.
Předplatné push spouští Distribution Agent na Distributoru a předplatné pull ho spouští na Subscriberu, jak uvádí dokumentace k předplatnému Microsoftu. Všechno v síťové konverzaci plyne z toho, který počítač to je. Zapište si čtyři skutečnosti pro každé předplatné: hostitele agenta, identitu jeho procesu, přihlášení k databázi, která používá, a prostředky, ke kterým se musí dostat. Tyto skutečnosti, ne šipka v diagramu, vám řeknou, který směr musí fungovat.
Push znamená, že agent žije na Distributoru
U předplatného push otevírá Distributor připojení k Subscriberu přes VPN. Naslouchač, firewall a SQL přihlášení na straně předplatitele musí přijímat připojení přicházející ze vzdálené strany. Servisní účet Distributoru také potřebuje oprávnění k databázi předplatitele. Naplánujte tuto příchozí cestu před vytvořením předplatného, protože její pozdější objevení obvykle znamená jeho nové vytvoření.
Doručení snímku přidává cestu, kterou ustálená replikace nikdy nepoužívá. Je-li snímek umístěn na sdílené složce, Distribution Agent čte z této složky a účet předplatitele se musí dostat na stejnou cestu UNC. Tok změn, který běží týdny, nic neříká o tom, zda bude fungovat opětovná inicializace. Proto sdílená složka se snímkem patří do plánu od začátku.
Nečtěte push jako jednosměrný provoz. Agent potřebuje odpovědi, potvrzení a vlastní výměny ověřování. Cesta musí být na úrovni připojení obousměrná, i když se data pohybují jedním směrem.
Pull znamená, že agent žije na Subscriberu
Předplatné pull obrací připojení: Subscriber spouští Distribution Agent a obrací se na Distributor. Toto uspořádání vyhovuje zásadě VPN, která povoluje odchozí připojení z pobočky a blokuje příchozí. Také staví rozhodnutí o plánování do rukou toho, kdo se stará o server pobočky. Zvolte je, když má tým pobočky vlastnit vlastní synchronizaci a všímat si vlastních selhání.
Servisní účet SQL Server Agent předplatitele potřebuje přístup pro čtení k distribuční databázi a ke sdílené složce se snímkem. Tento účet je identita, která se objevuje v chybách replikace, a místní servisní účet bez práv domény selhává v bodě, který vypadá jako síťová závada, ale ve skutečnosti je závadou přihlašovacích údajů. Zkontrolujte účet, než začnete ladit tunel. Oprava přihlášení je obvykle rychlejší než dokazování neviny sítě.
Vlastnictví následuje agenta. Zvolte push, když má centrální tým vlastnit plán i selhání. Ať zvolíte cokoli, napište to vedle předplatného, aby další inženýr věděl, kam se podívat nejdřív.
Znovuzveřejnění mění větvení, ne vlastnictví
Předplatitele lze nakonfigurovat, aby znovu zveřejňoval dalším předplatitelům, což umožňuje jedné pobočkové databázi obsluhovat několik místních spotřebitelů, aniž by každý tahal přes WAN. Prostřední databáze nyní drží publikaci a vlastní agenty. Také dědí oprávnění, monitorování a plán obnovy, který dřív neměla. Tato role navíc je cenou za odstranění opakovaného doručování přes WAN.
Dokumentované pořadí je důležité: inicializujte příchozí předplatné před vytvořením navazující publikace. Berte to jako krok životního cyklu s ověřením, ne jako papírování, které lze přeskočit. Obrácené pořadí vytvoří řetěz, který vypadá nakonfigurovaně a nic nedoručuje.
Vyslovte model zápisu výslovně. Replikace datové sady jen pro čtení k místnímu spotřebiteli je jiný návrh než přijímání zápisů na několika lokalitách a řetěz šipek nevytváří řešení konfliktů. Pokud pobočka musí zapisovat, je to samostatné rozhodnutí s vlastní topologií. Také zviditelněte závislost: když znovuzveřejňovatel neběží, každý spotřebitel pod ním je zastaralý.
Dokažte umístění od začátku do konce
Přečtěte typ předplatného z distribuční databáze, místo abyste věřili paměti, a pak ověřte, že změny skutečně dorazí:
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 nelze jej změnit na místě, takže nesoulad znamená nové vytvoření předplatného, nikoli jeho úpravu. Volání čekajících příkazů vám řekne, zda zvolený agent posouvá práci, nebo jen běží. Předplatné, které hlásí nula čekajících příkazů, zatímco tabulka předplatitele zůstává prázdná, je jiná závada než to, které hlásí rostoucí frontu, a obě vedou k různým vlastníkům.
Skončete skutečnou změnou: vložte nebo aktualizujte jeden řádek na Publisheru, počkejte, až agent podá zprávu, a přečtěte ten řádek na Subscriberu. Udělejte to ještě jednou během krátkého přerušení VPN, abyste viděli, jak se agent zotaví. Předplatné, které tento test přežije, má umístění, které můžete zdokumentovat a obhájit.