Povolenie predplatného na obnovenie transakčnej replikácie na SQL Serveri 2019

Dátum vytvorenia strany :

Zavedenie a preventívne opatrenia

Tento článok je určený na replikáciu v SQL Serveri 2019. Jednou z funkcií v ňom je "obnoviteľné predplatné".

Táto funkcia bola predvolene povolená v predchádzajúcich verziách SQL Servera, ale od (pravdepodobne) roku 2017 je vypnutá.

Budúce verzie SQL Servera môžu túto funkciu odstrániť. Okrem modernizácie existujúceho prostredia odporúčame, aby ste ho nahradili novou stavbou s replikáciou zlúčenia atď.

referencia

životné prostredie

Použite dva servery, jeden server a dva SQL Servery. Windows Server je v stave, keď bezprostredne po inštalácii neboli vykonané žiadne ďalšie nastavenia.

1. jednotka (publikačná strana)
  • Windows Server 2019 Standard Edition
  • SQL Server 2019 Developer Edition (vyžaduje sa štandardná edícia alebo vyššia verzia)
  • SQL Server Management Studio 18.9.1
Druhá jednotka (strana účastníka)
  • Windows Server 2019 Standard Edition
  • SQL Server 2019 Express Edition
  • SQL Server Management Studio 18.9.1

účel

Aj keď sa aktualizujú záznamy tabuliek v databáze prvého alebo druhého servera Uistite sa, že záznamy tabuliek na serveroch druhej strany sú synchronizované.

Mimochodom, jedna na strane publikácie je v poriadku, ale strana účastníka môže mať ľubovoľný počet jednotiek. Funguje tiež s viacerými inštanciami SQL Servera na jednom serveri.

Inštalácia SQL Servera

Inštalácia SQL Servera nie je hlavnou časťou týchto tipov, takže nebudem zachádzať do podrobností. Uvedené sú len tie, ktoré sú relevantné pre replikáciu.

Inštalácia strany publikácie vyžaduje štandardné vydanie alebo vyššie. Tieto tipy inštalujú Edíciu vývojárov ako testovacie prostredie.

Predplatitelia sú v poriadku s Express Edition. Samozrejme, ostatné vydania sú v poriadku, v závislosti od konfigurácie DB.

V prípade výberu funkcií vyberte položku Služba databázového jadra a replikácia sql servera. To isté platí pre stranu publikácie aj pre stranu predplatiteľov.

Konfigurácia inštancie sa predvolene vzťahuje na stranu publikácie aj na stranu účastníka. Aj keď zmeníte názov inštancie, rozdiel je v tom, či neskôr zadáte názov inštancie v špecifikácii servera alebo nie.

Na strane publikácie nakonfigurujte SQL Server Agent tak, aby sa automaticky spustil. Toto nastavenie môžete neskôr zmeniť.

Tento tip overuje replikáciu pomocou konta SQL Server sa. Preto povoľte overenie SQL Servera. Ak nechcete použiť konto SA z bezpečnostných dôvodov, nahraďte overovaciu časť vysvetlenia sql servera neskôr overením systému Windows alebo iným kontom.

Toto nastavenie je na oboch serveroch rovnaké.

Inštalácia štúdia správy SQL Servera

Nainštalujte si štúdio SQL Server Management Studio, ktoré ste si stiahli. Keďže inštalačná obrazovka je určená len na inštaláciu, vysvetlenie sa vynecháva.

Ak sa zobrazí výzva na reštartovanie systému Windows po inštalácii, reštartujte systém Windows. Nainštalujte tiež všetky záplaty v službe Windows Update.

Vytvorenie databázy a tabuliek na strane publikovania

Ak vytvoríte tabuľku na strane publikácie, strana účastníka automaticky replikuje tabuľku alebo záznam.

Spôsob tvorby je rovnaký ako pri bežnom postupe, takže podrobnosti vynechám.

Vytvárate databázu s názvom Publication DB v SQL Server Management Studio.

Vytvorte tabuľku s názvom "Používatelia" a zaregistrujte stĺpce takto: Všetko, čo musíte urobiť, je skontrolovať synchronizáciu záznamov, takže názov, číslo a obsah stĺpca tabuľky môže byť čokoľvek. Vyžaduje sa však len primárny kľúč.

Pridajte niekoľko záznamov, aby ste sa uistili, že záznamy sú synchronizované po vytvorení replikácie.

Konfigurácia vzdialených pripojení

Nakonfigurujte ich tak, aby umožňovali vzdialený prístup k databázam serverov druhej strany. Podrobnosti sú zhrnuté v nasledujúcich tipoch.

Nastavenie povolení priečinka

Na serveri na strane publikácie otvorte vlastnosti nasledujúceho priečinka: Cesta priečinka závisí od verzie SQL Servera a názvu inštancie.

  • C:\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\Repldata

Na karte Zabezpečenie pridajte konto "SLUŽBA" a nastavte ho na plnú kontrolu.

Konfigurácia distribúcie

Tentokrát sa distribúcia vytvorí na rovnakom serveri ako publikácia.

Spustite štúdio správy SQL Servera, kliknite pravým tlačidlom myši na položku Replikácia a vyberte položku Konfigurovať distribúciu.

Kliknite na tlačidlo Ďalej.

Skontrolujte < "Vytvorte si vlastný server > vlastného distribútora".

Potom kliknite na "Ďalej", ako je potrebné ho dokončiť.

Vytvorenie publikácie

Pôvodne je vytvorený z sprievodcu, ako je znázornené na nasledujúcom obrázku, V SQL Serveri 2019 vytváranie z sprievodcu nepovoľuje "obnoviteľné predplatné" a neumožňuje synchronizáciu záznamov medzi tabuľkami.

Preto používame T-SQL na vytvorenie publikácie tu.

Nasleduje SQL pre vytvorenie publikácie s overením SQL Servera: Zmeňte heslo podľa svojich nastavení.

-- トランザクションパブリケーションを追加するための宣言
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'パブリケーションDB'; 
SET @publication = N'パブリケーション'; 
SET @login = 'sa'; 
SET @password = 'saパスワード'; 

USE [パブリケーションDB]

-- パブリケーションデータベースでトランザクションレプリケーションを有効にする。
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- sp_addlogreader_agent を実行して、エージェントジョブを作成します。
EXEC sp_addlogreader_agent 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

-- 即時更新、キュー更新、およびプルサブスクリプションをサポートするトランザクションパブリケーションを作成します。
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_sync_tran = N'true', 
    @allow_queued_tran = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true',
    -- 関連するデフォルトのプロパティを明示的に宣言する
    @conflict_policy = N'pub wins';

-- デフォルトのスケジュールを使用して、パブリケーションの新しいスナップショットジョブを作成します。
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;
GO

Pri používaní overovania systému Windows zmeňte časti "sp_addlogreader_agent" a "sp_addpublication_snapshot" takto.

Overenie sql servera

    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

Overenie systému Windows

    @job_login = @login, 
    @job_password = @password,
    @publisher_security_mode = 1;

Ak je úspešne vytvorený, uvidíte nasledovné:

Otvorte tiež vlastnosti vytvorenej publikácie a uistite sa, že je povolené predplatné na obnoviteľné zdroje.

Určenie článkov

Pôvodne, ak ho vytvoríte pomocou sprievodcu, súčasne zadáte článok, Keďže vyššie uvedený skript nezahŕňa spracovanie článku, je špecifikovaný z vlastnosti.

Vyberte "Články" z ponuky vľavo, začiarknite tabuľku, ktorú chcete synchronizovať, a kliknite na tlačidlo OK.

Do stĺpcov tabuľky, ktorá sa má synchronizovať, sa pridá msrepl_tran_version a súčasne sa pridá spúšťač tabuľky.

Vytvorenie predplatného

Kliknite pravým tlačidlom myši na publikáciu, ktorú ste práve vytvorili, a vyberte položku Nové predplatné.

Kliknite na tlačidlo Ďalej.

Vyberte publikáciu, ktorú ste vytvorili.

Začiarknite políčko Spustiť všetkých agentov na < mene <servera>.

Kliknite na tlačidlo Pridať predplatiteľa SQL Servera.

Určuje server (+ názov inštancie), ktorý sa má zaregistrovať ako účastník.

Ak nemáte databázu odberateľov, vytvorte novú. Ak už existuje, vyberte ho, pretože sa zobrazí položka výberu.

Po zadaní databázy kliknite na tlačidlo Ďalej.

Ak máte viac ako jedného účastníka, môžete tu zaregistrovať toľko, koľko potrebujete.

Kliknite na tlačidlo "..."

Tu agent beží pod účtom SA, ale prosím, nastavte si ho podľa svojho prostredia.

Vyberte položku Spustiť nepretržite.

Nastavenie "Predplatné na obnoviteľné zdroje" by malo byť funkčné.

V prípade "vykonať zmeny súčasne" sa okamžite synchronizuje, ale všetky servery musia byť spustené.

"Zmena frontu a odovzdanie, ak je to možné", akumuluje zmeny vo fronte, takže sú spáchané, keď je server spustený, aj keď server nie je spustený. Načasovanie synchronizácie je však pomalé.

Pozrite si tému Používanie preddefinovaného prepojeného alebo vzdialeného servera.

Vyberte položku Teraz.

Kliknite na tlačidlo Ďalej.

Kliknite na tlačidlo Dokončiť.

Zatvorte, ak sa nevyskytnú žiadne chyby.

Po niekoľkých okamihoch môžete vidieť, že databáza bola vytvorená na strane odberateľa a že boli vytvorené aj tabuľky.

Môžete overiť, či sú záznamy tiež synchronizované.

Ak sa po chvíli nesynchronizuje, postupujte podľa nasledujúcich krokov.

Kliknite pravým tlačidlom myši na vytvorené predplatné a vyberte položku Reinitialize.

Začiarknite políčko Použiť novú snímku a kliknite na tlačidlo "Nastaviť na reinicializáciu".

Ak sa vyskytne chyba, skúste to znova.

Kontrola prevádzky

Pokúste sa pridať alebo upraviť tabuľky na strane publikácie.

Počkajte asi niekoľko sekúnd, aby ste sa uistili, že je synchronizovaný s odberateľom.

Teraz upravte záznam na strane účastníka.

Môžete overiť, či je synchronizovaný so stranou publikácie.

Ak máte zaregistrovaných viacero odberateľov, uistite sa, že sú synchronizovaní medzi predplatiteľmi.