Iespējot transakciju replicēšanas atjaunojamos abonementus SQL Server 2019

Lapas izveides datums :

Ievads un piesardzības pasākumi

Šis raksts ir paredzēts replicēšanai SQL Server 2019. Viena no funkcijām tajā ir iespējota "atjaunojamā abonēšana".

Šis līdzeklis pēc noklusējuma tika iespējots iepriekšējās SQL Server versijās, bet kopš (iespējams) 2017. gada tas ir atspējots.

Turpmākās SQL Server versijas var noņemt šo līdzekli. Izņemot esošās vides modernizāciju, ieteicams to aizstāt ar jaunu būvniecību ar sapludināšanu replikāciju utt.

Atsauce

vide

Izmantojiet divus serverus, vienu serveri un divus SQL Server. Windows Server ir tādā stāvoklī, ka tūlīt pēc instalēšanas nav veikti papildu iestatījumi.

1. vienība (publikācijas puse)
  • Windows Server 2019 standarta izdevums
  • SQL Server 2019 izstrādātāju izdevums (nepieciešams standarta izdevums vai jaunāka versija)
  • SQL Server Management Studio 18.9.1
Otrā vienība (abonenta puse)
  • Windows Server 2019 standarta izdevums
  • SQL Server 2019 Express Edition
  • SQL Server Management Studio 18.9.1

mērķis

Pat ja tabulas ieraksti pirmajā vai otrajā servera datu bāzē tiek atjaunināti Pārliecinieties, vai tabulas ieraksti viens otra serveros ir sinhronizēti.

Starp citu, viens no publikācijas puses ir labi, bet abonenta pusē var būt jebkurš vienību skaits. Tas darbojas arī ar vairākiem SQL Server gadījumiem vienā serverī.

Notiek SQL Server instalēšana

SQL Servera instalēšana nav šo padomu galvenā daļa, tāpēc es neiedziļināšos detaļās. Ir uzskaitītas tikai tās, kas attiecas uz replicēšanu.

Lai instalētu publikācijas pusi, ir nepieciešams standarta izdevums vai jaunāka versija. Šie padomi instalē Izstrādātāju izdevumu kā testa vidi.

Ar Express Edition abonentiem viss ir kārtībā. Protams, citi izdevumi ir labi, atkarībā no DB konfigurācijas.

Līdzekļu atlasei atlasiet Datu bāzes programmas pakalpojums un SQL Servera replicēšana. Tas pats attiecas gan uz publikācijas pusi, gan abonentu.

Instances konfigurācija pēc noklusējuma ir gan publikācijas, gan abonenta pusē. Pat ja maināt instances nosaukumu, atšķirība ir tā, vai vēlāk servera specifikācijā norādāt instances nosaukumu.

Publikācijas pusē konfigurējiet SQL Servera aģenta automātisku startēšanu. Šo iestatījumu var mainīt vēlāk.

Šis padoms autentificē replicēšanu ar SQL Server sa kontu. Tāpēc iespējojiet SQL Server autentifikāciju. Ja drošības apsvērumu dēļ nevēlaties izmantot SA kontu, vēlāk aizstājiet paskaidrojuma SQL Servera autentifikācijas daļu ar Windows autentifikāciju vai citu kontu.

Padariet šo iestatījumu vienādu abos serveros.

SQL Server Management Studio instalēšana

Instalējiet lejupielādēto SQL Server Management Studio. Tā kā instalācijas ekrāns ir tikai jāinstalē, skaidrojums tiek izlaists.

Restartējiet sistēmu Windows, ja pēc instalēšanas tiek piedāvāts restartēt. Instalējiet arī ielāpus windows update.

Publicēšanas puses datu bāzes un tabulu izveide

Ja izveidojat tabulu publikācijas pusē, abonenta puse automātiski atkārto tabulu vai ierakstu.

Radīšanas metode ir tāda pati kā parastā procedūra, tāpēc es izlaidīšu detaļas.

Sql Server Management Studio tiek veidota datu bāze ar nosaukumu Publikācijas DB.

Izveidojiet tabulu ar nosaukumu "Lietotāji" un reģistrējiet kolonnas šādi: Viss, kas jums jādara, ir pārbaudīt ierakstu sinhronizāciju, lai tabulas nosaukums, numurs un kolonnas saturs varētu būt jebkas. Tomēr ir nepieciešama tikai primārā atslēga.

Pievienojiet dažus ierakstus, lai pārliecinātos, vai ieraksti ir sinhronizēti pēc replicēšanas izveides.

Attālo savienojumu konfigurēšana

Konfigurējiet tos, lai atļautu attālo piekļuvi otras puses serveru datu bāzēm. Sīkāka informācija ir apkopota šajos padomos.

Mapju atļauju iestatīšana

Publikācijas pusē esošajā serverī atveriet šīs mapes rekvizītus: Mapes ceļš ir atkarīgs no SQL Server versijas un instances nosaukuma.

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

Cilnē Drošība pievienojiet kontu "PAKALPOJUMS" un iestatiet to pilnīgai kontrolei.

Sadales konfigurēšana

Šoreiz sadalījums tiek izveidots tajā pašā serverī, kurā atrodas publikācija.

Startējiet SQL Server Management Studio, ar peles labo pogu noklikšķiniet uz Replicēšana un atlasiet Konfigurēt izplatīšanu.

Noklikšķiniet uz Tālāk.

Atzīmējiet "Izveidojiet savu serveri > savu izplatītāju" <.

Pēc tam noklikšķiniet uz "Tālāk", kā tas ir, lai to pabeigtu.

Publikācijas izveide

Sākotnēji tas ir izveidots no vedņa, kā parādīts nākamajā attēlā, Programmā SQL Server 2019 izveide no vedņa neiespējo "atjaunojamos abonementus" un neļauj sinhronizēt ierakstus starp tabulām.

Tāpēc mēs izmantojam T-SQL, lai izveidotu publikāciju šeit.

Tālāk ir norādīts SQL, lai izveidotu publikāciju ar SQL Server autentifikāciju: Lūdzu, nomainiet paroli atbilstoši saviem iestatījumiem.

-- トランザクションパブリケーションを追加するための宣言
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

Izmantojot Windows autentifikāciju, mainiet daļas "sp_addlogreader_agent" un "sp_addpublication_snapshot" šādi.

SQL Server autentifikācija

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

Windows autentifikācija

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

Ja tas ir veiksmīgi izveidots, jūs redzēsiet:

Atveriet arī izveidotās publikācijas rekvizītus un pārliecinieties, vai ir iespējots "Atjaunojamais abonements".

Rakstu norādīšana

Sākotnēji, ja to izveidojat ar vedni, vienlaikus norādīsit rakstu, Tā kā iepriekš minētais skripts neietver rakstu apstrādi, tas ir norādīts no rekvizīta.

Kreisajā pusē esošajā izvēlnē atlasiet "Raksti", pārbaudiet tabulu, kuru vēlaties sinhronizēt, un noklikšķiniet uz pogas Labi.

Sinhronizējamās tabulas kolonnām tiek pievienots msrepl_tran_version, un vienlaikus tiek pievienots tabulas trigeris.

Abonementa izveide

Ar peles labo pogu noklikšķiniet uz tikko izveidotās publikācijas un atlasiet Jauns abonements.

Noklikšķiniet uz Tālāk.

Atlasiet izveidoto publikāciju.

Atzīmējiet Palaist visus aģentus ar izplatītāja <servera nosaukumu>.

Noklikšķiniet uz pogas Pievienot SQL Servera abonentu.

Norāda serveri (+ instances nosaukumu), lai reģistrētos kā abonents.

Ja jums nav abonentu datu bāzes, izveidojiet jaunu datu bāzi. Ja tas jau pastāv, atlasiet to, jo tiek parādīts atlases vienums.

Pēc datu bāzes norādīšanas noklikšķiniet uz Tālāk.

Ja jums ir vairāk nekā viens abonents, šeit varat reģistrēt tik daudz, cik nepieciešams.

Noklikšķiniet uz pogas "...".

Šeit aģents darbojas zem SA konta, bet, lūdzu, iestatiet to atbilstoši savai videi.

Atlasiet Palaist nepārtraukti.

Iestatījumam "Atjaunojamo energoresursu abonēšana" būtu jāsāk darboties.

Gadījumā, ja "vienlaikus veic izmaiņas", tas tiek sinhronizēts nekavējoties, bet visiem serveriem ir jādarbojas.

"Rinda mainās un apņemas, ja iespējams" uzkrāj izmaiņas rindā, tāpēc tās tiek veiktas, kad serveris darbojas, pat ja serveris nedarbojas. Tomēr sinhronizācijas hronometrāža ir lēna.

Atzīmējiet Izmantot iepriekš definētu saistītu vai attālu serveri.

Atlasiet Tūlīt.

Noklikšķiniet uz Tālāk.

Noklikšķiniet uz pogas Pabeigt.

Aizvērt, ja nav kļūdu.

Pēc dažiem mirkļiem jūs varat redzēt, ka datu bāze ir izveidota abonenta pusē un ka ir izveidotas arī tabulas.

Varat pārbaudīt, vai ieraksti ir arī sinhronizēti.

Ja tas pēc kāda laika netiek sinhronizēts, lūdzu, rīkojieties šādi.

Ar peles labo pogu noklikšķiniet uz izveidotā abonementa un atlasiet Atkārtoti instalēt.

Atzīmējiet "Izmantot jaunu momentuzņēmumu" un noklikšķiniet uz pogas "Iestatīt atkārtotai inicializēt".

Ja rodas kļūda, mēģiniet vēlreiz.

Darbības pārbaude

Mēģiniet pievienot vai modificēt tabulas publikācijas pusē.

Uzgaidiet apmēram dažas sekundes, lai pārliecinātos, vai tas ir sinhronizēts ar abonentu.

Tagad modificēsim ierakstu abonenta pusē.

Varat pārbaudīt, vai tas ir sinhronizēts ar publikācijas pusi.

Ja esat reģistrējis vairākus abonentus, pārliecinieties, vai tie ir sinhronizēti starp abonentiem.