Sql Server 2019 kande replikatsiooni taastamise kordustellimuste lubamine
Sissejuhatus ja ettevaatusabinõud
See artikkel on mõeldud replikatsiooniks SQL Server 2019-s. Üks selle funktsioonidest on "taastuv tellimus" on lubatud.
See funktsioon lubati vaikimisi SQL Serveri eelmistes versioonides, kuid on keelatud alates (tõenäoliselt) 2017. aastast.
SQL Serveri tulevased versioonid võivad selle funktsiooni eemaldada. Välja arvatud olemasoleva keskkonna uuendamine, soovitame selle asendada uue konstruktsiooniga kooste replikatsiooniga jne.
- viide
keskkond
Kasutage kahte serverit, ühte serverit ja kahte SQL Serverit. Windows Server on olekus, kus kohe pärast installimist ei ole tehtud täiendavaid sätteid.
- 1. üksus (avaldamise pool)
-
- Windows Server 2019 standardväljaanne
- SQL Server 2019 developer edition (nõutav standardväljaanne või kõrgem versioon)
- SQL Serverihaldusstuudio 18.9.1
- Teine üksus (tellija pool)
-
- Windows Server 2019 standardväljaanne
- SQL Server 2019 Express Edition
- SQL Serverihaldusstuudio 18.9.1
Eesmärk
Isegi kui tabelikirjeid esimeses või teises serveriandmebaasis värskendatakse Veenduge, et üksteise serverites olevad tabelikirjed oleksid sünkroonitud.
Muide, üks väljaande poolel on hea, kuid abonendi poolel võib olla mis tahes arv ühikuid. See töötab ka mitme SQL Serveri eksemplariga ühes serveris.
SQL Serveri installimine
SQL Serveri installimine ei ole nende näpunäidete peamine osa, nii et ma ei lasku üksikasjadesse. Loetletud on ainult need, mis on seotud replikatsiooniga.
Publikatsioonipoole installimiseks on vaja Standard Editionit või uuemat versiooni. Need näpunäited installivad Developer Editioni testkeskkonnana.
Tellijatel on Express Editioniga kõik korras. Loomulikult on teised väljaanded head, sõltuvalt DB konfiguratsioonist.
Funktsioonivaliku jaoks valige Andmebaasi mootoriteenus ja SQL Serveri replikatsioon. See on sama nii väljaande kui ka tellija poolel.
Eksemplari konfiguratsioon vaikimisi nii publikatsiooni kui ka tellija poolel. Isegi kui muudate eksemplari nime, on erinevus selles, kas määrate eksemplari nime serveri spetsifikatsioonis hiljem või mitte.
Konfigureerige publikatsiooni poolel SQL Serveri agent automaatselt käivituma. Seda sätet saate hiljem muuta.
See näpunäide autendib replikatsiooni SQL Server SA kontoga. Seetõttu lubage SQL Serveri autentimine. Kui te ei soovi TURVAKAALUTLUSTEL SA kontot kasutada, asendage selgituse SQL Serveri autentimise osa hiljem Windowsi autentimise või mõne muu kontoga.
Tehke see säte mõlemas serveris samaks.
SQL Serverihaldusstuudio installimine
Installige allalaaditud SQL Serverihaldusstuudio. Kuna installiekraan on ainult installimiseks, jäetakse selgitus välja.
Taaskäivitage Windows, kui teil palutakse pärast installimist taaskäivitada. Samuti installige Windows Update'is kõik paigad.
Avaldamispõhise andmebaasi ja tabelite loomine
Kui loote publikatsiooni poolel tabeli, kopeerib abonendi pool tabeli või kirje automaatselt.
Loomise meetod on sama, mis tavaline protseduur, nii et ma jätan üksikasjad välja.
Loote SQL Serveri haldusstuudios andmebaasi nimega Publication DB.
Looge tabel nimega "Kasutajad" ja registreerige veerud järgmiselt. Kõik, mida peate tegema, on kontrollida kirjete sünkroonimist, nii et tabeli nimi, number ja veeru sisu võivad olla mis tahes. Siiski on vaja ainult peamist võtit.
Lisage mõned kirjed, et veenduda, et kirjed sünkroonitakse pärast tiražeerimise loomist.
Kaugühenduste konfigureerimine
Konfigureerige need nii, et need võimaldaksid kaugjuurdepääsu üksteise serverite andmebaasidele. Üksikasjad on kokku võetud järgmistes näpunäidetes.
Kaustaõiguste seadmine
Avage publikatsiooni poolel olevas serveris järgmise kausta atribuudid. Kaustatee sõltub SQL Serveri versioonist ja eksemplari nimest.
- C:\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\ReplData
Lisage vahekaardil Turvalisus konto "TEENUS" ja seadke see täielikuks kontrolliks.
Jaotuse konfigureerimine
Seekord luuakse levitamine väljaandega samas serveris.
Käivitage SQL Serverihaldusstuudio, paremklõpsake käsku Kopeerimine ja valige Konfigureeri jaotus.
Klõpsake nuppu Edasi.
Märkige < ruut "Tee oma server > oma edasimüüjaks".
Pärast seda klõpsake "Järgmine", kuna see on selle lõpuleviimiseks.
Publikatsiooni loomine
Algselt luuakse see viisardist, nagu on näidatud järgmisel joonisel, SQL Server 2019-s ei luba viisardist loomine "taastuvaid tellimusi" ega luba kirjete sünkroonimist tabelite vahel.
Seetõttu kasutame siin väljaande loomiseks T-SQL-i.
SQL SQL SQL SQL-i sql serveri autentimisega publikatsiooni loomiseks on järgmine. Palun muutke parooli vastavalt oma seadetele.
-- トランザクションパブリケーションを追加するための宣言
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
Windowsi autentimise kasutamisel muutke osi "sp_addlogreader_agent" ja "sp_addpublication_snapshot" järgmiselt.
SQL Serveri autentimine
@publisher_login = @login,
@publisher_password = @password,
@publisher_security_mode = 0;
Windowsi autentimine
@job_login = @login,
@job_password = @password,
@publisher_security_mode = 1;
Kui see on edukalt loodud, näete järgmist.
Samuti avage loodud väljaande atribuudid ja veenduge, et "Taastuv tellimus" on lubatud.
Artiklite määramine
Algselt, kui loote selle viisardiga, määrate artikli samal ajal, Kuna ülaltoodud skript ei sisalda artikli töötlemist, määratakse see atribuudist.
Valige vasakpoolsest menüüst "Artiklid", kontrollige tabelit, mida soovite sünkroonida, ja klõpsake nuppu OK.
Sünkroonitava tabeli veergudesse lisatakse msrepl_tran_version ja samal ajal lisatakse tabeli käivitaja.
Tellimuse loomine
Paremklõpsake äsja loodud publikatsiooni ja valige Uus tellimus.
Klõpsake nuppu Edasi.
Valige loodud publikatsioon.
Märkige ruut Käivita kõik agendid saidil Distributor <server name>.
Klõpsake nuppu Lisa SQL Serveri tellija.
Määrab abonendiks registreerumiseks serveri (+ eksemplari nime).
Kui teil pole abonendiandmebaasi, looge uus. Kui see on juba olemas, valige see, kuna valikuüksus kuvatakse.
Pärast andmebaasi määramist klõpsake nuppu Edasi.
Kui teil on rohkem kui üks abonent, saate siin registreeruda nii palju kui vaja.
Klõpsake nuppu "...".
Siin töötab agent SA konto all, kuid palun seadke see vastavalt oma keskkonnale.
Valige Käivita pidevalt.
Säte "Taastuvenergia tellimus" peaks toimima.
"Muudatuste tegemise samal ajal" puhul sünkroonitakse see kohe, kuid kõik serverid peavad töötama.
"Järjekord muutub ja pühendub, kui võimalik" kogub järjekorda muudatusi, nii et need on pühendunud serveri töötamisel, isegi kui server ei tööta. Sünkroonimise ajastus on siiski aeglane.
Märkige ruut Kasuta eelmääratletud lingitud või kaugserverit.
Valige Kohe.
Klõpsake nuppu Edasi.
Klõpsake nuppu Lõpeta.
Sulgege, kui tõrkeid pole.
Mõne hetke pärast näete, et andmebaas on loodud tellija poolel ja et tabelid on samuti loodud.
Saate kontrollida, kas kirjed on samuti sünkroonitud.
Kui see mõne aja pärast ei sünkroonita, tehke järgmist.
Paremklõpsake loodud tellimust ja valige Reitialize.
Märkige ruut "Kasuta uut hetktõmmist" ja klõpsake nuppu "Sea uuesti küllastamiseks".
Tõrke ilmnemisel proovige uuesti.
Toimingu kontroll
Proovige publikatsiooni poolel tabeleid lisada või muuta.
Oodake umbes mõni sekund, et veenduda, et see sünkroonitakse abonendiga.
Nüüd muudame kirjet tellija poolel.
Saate kontrollida, kas see on publikatsioonipoolega sünkroonitud.
Kui teil on registreeritud mitu tellijat, veenduge, et need oleksid abonentide vahel sünkroonitud.