Omogočanje naročnin na replikacijo transakcij v strežniku SQL Server 2019

Datum ustvarjanja strani :

Uvedba in previdnostni ukrepi

Ta članek je namenjen za replikacijo v strežniku SQL Server 2019. Ena od funkcij v tem je "naročnina na obnovljive vire" je omogočena.

Ta funkcija je bila privzeto omogočena v prejšnjih različicah strežnika SQL Server, vendar je bila onemogočena od (verjetno) 2017.

Prihodnje različice strežnika SQL Server lahko odstranijo to funkcijo. Razen nadgradnje obstoječega okolja priporočamo, da ga zamenjate za novogradnja z združitveno replikacijo itd.

Referenčni

okolje

Uporabite dva strežnika, en strežnik in dva STREŽNIKa SQL. Windows Server je v stanju, v katerem ni bilo dodatnih nastavitev takoj po namestitvi.

1. enota (stran objave)
  • Windows Server 2019 Standard Edition
  • SQL Server 2019 Developer Edition (standardna izdaja ali višja zahteva)
  • SQL Server Management Studio 18.9.1
Druga enota (stran naročnika)
  • Windows Server 2019 Standard Edition
  • SQL Server 2019 Express Edition
  • SQL Server Management Studio 18.9.1

namen

Tudi če so zapisi tabel v zbirki podatkov prvega ali drugega strežnika posodobljeni Zagotovite sinhronizacijo zapisov tabel v strežnikih drug drugega.

Mimogrede, ena na strani objave je v redu, vendar ima naročnik lahko vsako število enot. Deluje tudi z več primerki strežnika SQL Server v enem strežniku.

Nameščanje strežnika SQL Server

Namestitev SQL Server ni glavni del teh nasvetov, tako da ne bom šel v podrobnosti. Na seznamu so le tisti, ki so pomembni za replikacijo.

Za namestitev strani publikacije je potrebna standardna izdaja ali višja. Ta nasveti namestijo Developer Edition kot preskusno okolje.

Naročniki so v redu z Express Edition. Seveda so druge izdaje v redu, odvisno od konfiguracije DB.

Za izbiro funkcij izberite Storitev stroja zbirke podatkov in replikacije strežnika SQL Server. To je enako tako za stran objave kot za stran naročnika.

Konfiguracija primerka je privzeta tako na strani publikacije kot na strani naročnika. Tudi če spremenite ime primerka, je razlika v tem, ali pozneje določite ime primerka v specifikaciji strežnika.

Na strani publikacije konfigurirajte SQL Server Agent za samodejno zagon. To nastavitev lahko spremenite pozneje.

Ta namig preveri pristnost replikacije s računom SQL Server sa. Zato omogočite preverjanje pristnosti strežnika SQL Server. Če računa SA ne želite uporabljati iz varnostnih razlogov, pozneje zamenjajte del preverjanja pristnosti strežnika SQL Server z preverjanjem pristnosti sistema Windows ali drugim računom.

Naredite to nastavitev enako na obeh strežnikih.

Nameščanje programa SQL Server Management Studio

Namestite sql Server Management Studio, ki ste ga prenesli. Ker je namestitveni zaslon samo za namestitev, je obrazložitev izotop.

Če ste po namestitvi pozvani, da se znova zaženete, znova zaženite Windows. Namestite tudi vse obliže v storitev Windows Update.

Ustvarjanje zbirke podatkov in tabel na strani objavljanja

Če na strani publikacije ustvarite tabelo, stran naročnika samodejno ponovi tabelo ali zapis.

Metoda ustvarjanja je enaka običajnem postopku, zato bom izostanek podrobnosti.

V programu SQL Server Management Studio ustvarjate zbirko podatkov z imenom Publication DB.

Ustvarite tabelo z imenom »Uporabniki« in registrirajte stolpce na naslednji način: Vse, kar morate storiti, je, da preverite sinhronizacijo zapisov, tako da je ime, številka in vsebina stolpca tabele lahko karkoli. Vendar pa je potreben le primarni ključ.

Dodajte nekaj zapisov, da se prepričate, da so zapisi sinhronizirani po ustvaritvi replikacije.

Konfiguriranje oddaljenih povezav

Konfigurirajte jih tako, da omogočajo oddaljen dostop do zbirk podatkov strežnikov drug drugega. Podrobnosti so povzete v naslednjih nasvetih.

Nastavitev dovoljenj za mape

Na strežniku na strani publikacije odprite lastnosti te mape: Pot mape je odvisna od različice strežnika SQL Server in imena primerka.

  • C:\Programske datoteke\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\ReplData

Na zavihku Varnost dodajte račun »SERVICE« in ga nastavite na popoln nadzor.

Konfiguriranje distribucije

Tokrat je distribucija ustvarjena na istem strežniku kot publikacija.

Zaženite SQL Server Management Studio, z desno tipko miške kliknite Replikacije in izberite Konfiguriraj distribucijo.

Kliknite Naprej.

Preverite »Naredite svoj strežnik > svojega distributerja« <.

Nato kliknite »Naprej« tako, da ga dokončate.

Ustvarjanje publikacije

Prvotno je ustvarjen iz čarovnika, kot je prikazano na naslednji sliki, V strežniku SQL Server 2019 ustvarjanje čarovnika ne omogoča »naročnin na obnovljive vire« in ne omogoča sinhronizacije zapisov med tabelami.

Zato uporabljamo T-SQL za ustvarjanje publikacije tukaj.

To je SQL za ustvarjanje publikacije s preverjanjem pristnosti strežnika SQL Server: Prosimo, spremenite geslo v skladu z nastavitvami.

-- トランザクションパブリケーションを追加するための宣言
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 uporabi preverjanja pristnosti sistema Windows spremenite dele »sp_addlogreader_agent« in »sp_addpublication_snapshot« na naslednji način.

Preverjanje pristnosti strežnika SQL

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

Preverjanje pristnosti sistema Windows

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

Če ga uspešno ustvarite, boste videli naslednje:

Odprite tudi lastnosti ustvarjene publikacije in preverite, ali je omogočena možnost »Naročnina na obnovljive vire«.

Določanje členov

Prvotno, če ga ustvarite s čarovnikom, boste hkrati določili članek, Ker zgornji skript ne vključuje obdelave člankov, je naveden iz lastnosti.

V meniju na levi izberite »Članki«, preverite tabelo, ki jo želite sinhronizirati, in kliknite gumb V redu.

Stolpcem tabele msrepl_tran_version, ki jih želite sinhronizirati, hkrati pa se doda sprožilec tabele.

Ustvarjanje naročnine

Z desno tipko miške kliknite publikacijo, ki ste jo pravkar ustvarili, in izberite Nova naročnina.

Kliknite Naprej.

Izberite publikacijo, ki ste jo ustvarili.

Preverite Zaženi vse agente na < ime >.

Kliknite gumb Dodaj naročnika strežnika SQL Server.

Določa strežnik (ime primerka+ za registracijo kot naročnik.

Če nimate zbirke podatkov naročnikov, ustvarite novo. Če že obstaja, ga izberite, ker je prikazan izbirni element.

Ko določite zbirko podatkov, kliknite Naprej.

Če imate več naročnikov, se lahko registrirate toliko, kot jih potrebujete tukaj.

Kliknite gumb "..."

Tukaj agent teče pod račun SA, vendar ga nastavite v skladu z okoljem.

Izberite Zaženi neprekinjeno.

Nastavitev »Naročnina na obnovljive vire« bi morala delovati.

V primeru »izvajati spremembe hkrati«, se takoj sinhronizira, vendar morajo biti vsi strežniki zagnani.

»Sprememba čakalne dobe in zaveza, če je mogoče« se kopičijo spremembe v čakalni čakalni redu, zato se zavezajo, ko se strežnik zaganja, tudi če strežnik ni zagnan. Časovni razpored sinhronizacije pa je počasen.

Preverite Uporaba vnaprej določenega povezanega ali oddaljenega strežnika.

Izberite Zdaj.

Kliknite Naprej.

Kliknite gumb Dokončaj.

Zaprite, če ni napak.

Po nekaj trenutkih lahko vidite, da je bila zbirka podatkov ustvarjena na strani naročnika in da so bile ustvarjene tudi tabele.

Preverite lahko tudi, ali so zapisi sinhronizirani.

Če se čez nekaj časa ne sinhronizira, naredite to.

Z desno tipko miške kliknite ustvarjeno naročnino in izberite Reinitialize.

Preverite »Uporabi nov posnetek« in kliknite gumb »Set to reinitialize«.

Če pride do napake, poskusite znova.

Preverjanje delovanja

Poskusite dodati ali spremeniti tabele na strani publikacije.

Počakajte nekaj sekund, da se prepričate, da je sinhronizirana s naročnikom.

Zdaj pa spremenimo zapis na strani naročnika.

Preverite lahko, ali je sinhronizirana s stranjo publikacije.

Če imate registriranih več naročnikov, se prepričajte, da so sinhronizirani med naročniki.