Povolení obnovitelných předplatných transakční replikace v SYSTÉMU SQL Server 2019

Datum vytvoření stránky :

Úvod a bezpečnostní opatření

Tento článek je určený pro replikaci v SQL Server 2019. Jednou z funkcí v něm je "obnovitelné předplatné" je povoleno.

Tato funkce byla ve výchozím nastavení povolena v předchozích verzích systému SQL Server, ale od (pravděpodobně) roku 2017 je zakázána.

Budoucí verze serveru SQL Server mohou tuto funkci odebrat. Kromě upgradu existujícího prostředí doporučujeme nahradit ho novou konstrukcí slučovací replikací atd.

odkaz

životní prostředí

Použijte dva servery, jeden server a dva SQL Server. Systém Windows Server je ve stavu, kdy nebyla provedena žádná další nastavení ihned po instalaci.

1. blok (publikační strana)
  • Windows Server 2019 Standard Edition
  • SQL Server 2019 Developer Edition (vyžaduje Standard Edition nebo vyšší)
  • 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

I v případě, že jsou aktualizovány záznamy tabulky v databázi prvního nebo druhého serveru Ujistěte se, že záznamy tabulek na serverech ostatních uživatelů jsou synchronizovány.

Mimochodem, jeden na straně publikace je v pořádku, ale strana předplatitele může mít libovolný počet jednotek. Funguje také s více instancemi serveru SQL Server na jednom serveru.

Instalace systému SQL Server

Instalace SQL Serveru není hlavní součástí těchto tipů, takže nebudu zacházet do podrobností. Uvedeny jsou pouze ty, které jsou relevantní pro replikaci.

Instalace stránky publikace vyžaduje edici Standard edition nebo vyšší. Tento tip nainstaluje Developer Edition jako testovací prostředí.

Předplatitelé jsou v pořádku s Express Edition. Samozřejmě, ostatní edice jsou v pořádku, v závislosti na konfiguraci DB.

V části Výběr funkcí vyberte Služba databázového stroje a Replikace SQL Serveru. To je stejné jak na straně publikace, tak na straně předplatitele.

Konfigurace instance je ve výchozím nastavení na straně publikace i na straně odběratele. I když změníte název instance, rozdíl je v tom, zda název instance zadáte ve specifikaci serveru později.

Na straně publikace nakonfigurujte SQL Server Agent tak, aby se spouštěl automaticky. Toto nastavení můžete později změnit.

Tento tip ověřuje replikaci pomocí účtu SQL Server sa. Proto povolte ověřování serveru SQL Server. Pokud nechcete z bezpečnostních důvodů používat účet sa, nahraďte část vysvětlení ověřování systému SQL Server později ověřováním systému Windows nebo jiným účtem.

Toto nastavení proveďte stejné na obou serverech.

Instalace SQL Server Management Studio

Nainstalujte SQL Server Management Studio, které jste stáhli. Vzhledem k tomu, že instalační obrazovka je určena pouze k instalaci, vysvětlení je vynecháno.

Restartujte systém Windows, pokud se po instalaci zobrazí výzva k restartování. Nainstalujte také všechny opravy v systému Windows Update.

Vytvoření databáze a tabulek na straně publikování

Pokud vytvoříte tabulku na straně publikace, strana odběratele automaticky replikuje tabulku nebo záznam.

Způsob tvorby je stejný jako normální postup, takže vynechám detaily.

Vytváříte databázi s názvem Databáze publikací v SQL Server Management Studio.

Vytvořte tabulku s názvem "Uživatelé" a zaregistrujte sloupce následujícím způsobem: Vše, co musíte udělat, je zkontrolovat synchronizaci záznamů, takže název, číslo a obsah sloupce tabulky může být cokoli. Je však vyžadován pouze primární klíč.

Přidejte několik záznamů, abyste se ujistili, že záznamy jsou synchronizovány po vytvoření replikace.

Konfigurace vzdálených připojení

Nakonfigurujte je tak, aby umožňovaly vzdálený přístup k databázím serverů ostatních uživatelů. Podrobnosti jsou shrnuty v následujících tipech.

Nastavení oprávnění složky

Na serveru na straně publikace otevřete vlastnosti následující složky: Cesta ke složce závisí na verzi serveru SQL Server a názvu instance.

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

Na kartě Zabezpečení přidejte účet "SERVICE" a nastavte jej na Úplné řízení.

Konfigurace distribuce

Tentokrát je distribuce vytvořena na stejném serveru jako publikace.

Spusťte SQL Server Management Studio, klikněte pravým tlačítkem na Replikace a vyberte Konfigurovat distribuci.

Klikněte na Další.

Zaškrtněte < "Vytvořte si vlastní server > vlastního distributora".

Poté klikněte na "Další", jak je to dokončit.

Vytvoření publikace

Původně je vytvořen z průvodce, jak je znázorněno na následujícím obrázku, V systému SQL Server 2019 vytvoření z průvodce nepovoluje "obnovitelná předplatná" a neumožňuje synchronizaci záznamů mezi tabulkami.

Proto používáme T-SQL k vytvoření publikace zde.

Následuje SQL pro vytvoření publikace s ověřováním SQL Server: Změňte heslo podle svého 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

Při použití ověřování systému Windows změňte části "sp_addlogreader_agent" a "sp_addpublication_snapshot" následujícím způsobem.

Ověřování systému SQL Server

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

Ověřování systému Windows

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

Pokud je úspěšně vytvořen, zobrazí se následující:

Otevřete také vlastnosti vytvořené publikace a ujistěte se, že je povoleno "Obnovitelné předplatné".

Určení článků

Původně, pokud jej vytvoříte pomocí průvodce, zadáte článek současně, Vzhledem k tomu, že výše uvedený skript nezahrnuje zpracování článku, je určen z vlastnosti.

V nabídce vlevo vyberte "Články", zkontrolujte tabulku, kterou chcete synchronizovat, a klikněte na tlačítko OK.

Do sloupců tabulky, která má být synchronizována, je přidána msrepl_tran_version a současně je přidána aktivační událost tabulky.

Vytvoření předplatného

Klikněte pravým tlačítkem na publikaci, kterou jste právě vytvořili, a vyberte Nový odběr.

Klikněte na Další.

Vyberte publikaci, kterou jste vytvořili.

Zaškrtněte políčko Spustit všechny agenty na Distributor < název serveru>.

Klikněte na tlačítko Přidat předplatitele SQL Serveru.

Určuje server (+ název instance), který se má zaregistrovat jako odběratel.

Pokud nemáte databázi odběratelů, vytvořte novou. Pokud již existuje, vyberte ji, protože je zobrazena položka výběru.

Po zadání databáze klepněte na tlačítko Další.

Pokud máte více než jednoho předplatitele, můžete zde zaregistrovat tolik, kolik potřebujete.

Klikněte na tlačítko "...".

Tady agent běží pod účtem sa, ale nastavte ho podle vašeho prostředí.

Vyberte Spustit nepřetržitě.

Nastavení "Obnovitelné předplatné" by mělo být funkční.

V případě "potvrdit změny současně" je synchronizován okamžitě, ale všechny servery musí být spuštěny.

"Změny ve frontě a potvrzení, pokud je to možné" shromažďuje změny ve frontě, takže jsou potvrzeny, když je server spuštěn, i když server není spuštěn. Časování synchronizace je však pomalé.

Zaškrtněte políčko Použít předdefinovaný propojený nebo vzdálený server.

Vyberte Nyní.

Klikněte na Další.

Klikněte na tlačítko Dokončit.

Zavřete, pokud nejsou žádné chyby.

Po několika okamžicích můžete vidět, že databáze byla vytvořena na straně předplatitele a že tabulky byly také vytvořeny.

Můžete ověřit, zda jsou záznamy také synchronizovány.

Pokud se po chvíli nesynchronizuje, proveďte následující kroky.

Klikněte pravým tlačítkem na vytvořené předplatné a vyberte Znovu inicializovat.

Zaškrtněte políčko "Použít nový snímek" a klikněte na tlačítko "Nastavit pro opětovnou inicializaci".

Pokud dojde k chybě, zkuste to znovu.

Kontrola provozu

Zkuste přidat nebo upravit tabulky na straně publikace.

Počkejte asi několik sekund, abyste se ujistili, že je synchronizován s předplatitelem.

Nyní upravíme záznam na straně předplatitele.

Můžete ověřit, zda je synchronizován se stranou publikace.

Pokud máte zaregistrováno více odběratelů, ujistěte se, že jsou mezi předplatiteli synchronizováni.