Tranzakciós replikációs megújuló előfizetések engedélyezése az SQL Server 2019-ben

Oldal létrehozásának dátuma :

Bevezetés és óvintézkedések

Ez a cikk az SQL Server 2019 replikációjára szolgál. Az egyik funkció benne a "megújuló előfizetés" engedélyezve van.

Ez a szolgáltatás alapértelmezés szerint engedélyezve volt az SQL Server korábbi verzióiban, de (valószínűleg) 2017 óta le van tiltva.

Az SQL Server jövőbeli verziói eltávolíthatják ezt a szolgáltatást. A meglévő környezet frissítésén kívül azt javasoljuk, hogy cserélje ki az új építést egyesítési replikációval stb.

utalás

környezet

Használjon két kiszolgálót, egy kiszolgálót és két SQL Server kiszolgálót. A Windows Server olyan állapotban van, hogy a telepítés után azonnal nem történt további beállítás.

1. egység (publikációs oldal)
  • Windows Server 2019 Standard Edition
  • SQL Server 2019 Developer Edition (Standard Edition vagy újabb verzió szükséges)
  • SQL Server Management Studio 18.9.1
Második egység (előfizetői oldal)
  • Windows Server 2019 Standard Edition
  • SQL Server 2019 Express Edition
  • SQL Server Management Studio 18.9.1

cél

Még akkor is, ha az első vagy a második kiszolgálói adatbázis táblarekordjai frissülnek Győződjön meg arról, hogy egymás kiszolgálóin lévő táblarekordok szinkronizálva vannak.

Egyébként a kiadvány oldalán egy rendben van, de az előfizetői oldalon tetszőleges számú egység lehet. Az SQL Server több példányával is működik egyetlen kiszolgálón.

Az SQL Server telepítése

Az SQL Server telepítése nem a fő része ezeknek a tippeknek, ezért nem megyek bele a részletekbe. Csak a replikáció szempontjából relevánsak szerepelnek a listában.

A kiadványoldal telepítéséhez Standard Edition vagy újabb kiadás szükséges. Ez a tipp tesztkörnyezetként telepíti a Developer Edition kiadást.

Az előfizetők jól bánnak az Express Edition-rel. Természetesen más kiadások rendben vannak, a DB konfigurációjától függően.

A Szolgáltatás kiválasztása párbeszédpanelen válassza az Adatbázismotor-szolgáltatás és az SQL Server replikáció lehetőséget. Ugyanez vonatkozik mind a közzétételi, mind az előfizetői oldalra.

A Példánykonfiguráció alapértelmezés szerint mind a kiadványoldalon, mind az előfizetői oldalon jelenik meg. Még akkor is, ha módosítja a példány nevét, a különbség az, hogy később megadja-e a példány nevét a kiszolgáló specifikációjában.

A kiadványoldalon konfigurálja az SQL Server Agent automatikus indítását. Ezt a beállítást később módosíthatja.

Ez a tipp hitelesíti a replikációt az SQL Server sa fiókkal. Ezért engedélyezze az SQL Server hitelesítését. Ha biztonsági okokból nem szeretné használni a biztonsági fiókot, cserélje le a magyarázat SQL Server hitelesítési részét később Windows-hitelesítésre vagy más fiókra.

Tegye ezt a beállítást mindkét kiszolgálón azonossá.

Az SQL Server Management Studio telepítése

Telepítse a letöltött SQL Server Management Studio alkalmazást. Mivel a telepítési képernyő csak a telepítéshez szükséges, a magyarázat kimarad.

Indítsa újra a Windows rendszert, ha a rendszer a telepítés után újraindításra kéri. Telepítse a javításokat a Windows Update webhelyre is.

Közzétételi oldali adatbázis és táblák létrehozása

Ha a kiadványoldalon hoz létre táblát, az előfizetői oldal automatikusan replikálja a táblát vagy a rekordot.

A létrehozás módja megegyezik a szokásos eljárással, ezért kihagyom a részleteket.

Az SQL Server Management Studio kiadványkiszolgáló nevű adatbázisát hozza létre.

Hozzon létre egy "Felhasználók" nevű táblát, és regisztrálja az oszlopokat az alábbiak szerint: Mindössze annyit kell tennie, hogy ellenőrzi a rekordok szinkronizálását, így a tábla neve, száma és oszloptartalma bármi lehet. Azonban csak az elsődleges kulcsra van szükség.

Adjon hozzá néhány rekordot, hogy megbizonyosodjon arról, hogy a rekordok szinkronizálva vannak-e a replikáció létrehozása után.

Távoli kapcsolatok konfigurálása

Konfigurálja őket úgy, hogy távolról hozzáférjenek egymás kiszolgálóinak adatbázisaihoz. A részleteket a következő tippek foglalják össze.

Mappaengedélyek beállítása

A kiadványoldalon lévő kiszolgálón nyissa meg a következő mappa tulajdonságait: A mappa elérési útja az SQL Server verziójától és a példány nevétől függ.

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

A Biztonság lapon adja hozzá a "SERVICE" fiókot, és állítsa teljes ellenőrzésre.

A disztribúció konfigurálása

Ezúttal a disztribúció ugyanazon a kiszolgálón jön létre, mint a kiadvány.

Indítsa el az SQL Server Management Studio programot, kattintson a jobb gombbal a Replikáció elemre, és válassza a Terjesztés konfigurálása parancsot.

Kattintson a Tovább gombra.

Jelölje be a "Készítse el saját szerverét > saját forgalmazóját" <.

Ezután kattintson a "Tovább" gombra, ahogy azt ki kell töltenie.

Kiadvány létrehozása

Eredetileg a varázslóból jött létre, amint az a következő ábrán látható, Az SQL Server 2019-ben a varázslóból történő létrehozás nem teszi lehetővé a "megújuló előfizetéseket", és nem teszi lehetővé a rekordok szinkronizálását a táblák között.

Ezért a T-SQL-t használjuk a kiadvány létrehozásához itt.

Az SQL az SQL Server hitelesítéssel rendelkező kiadvány létrehozásához készült SQL: Módosítsa a jelszót a beállításoknak megfelelően.

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

Windows-hitelesítés használatakor módosítsa a "sp_addlogreader_agent" és a "sp_addpublication_snapshot" részeket az alábbiak szerint.

SQL Server hitelesítés

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

Windows-hitelesítés

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

Ha sikeresen létrejött, a következők jelennek meg:

Nyissa meg a létrehozott kiadvány tulajdonságait is, és győződjön meg arról, hogy a "Megújuló előfizetés" engedélyezve van.

Cikkek megadása

Eredetileg, ha varázslóval hozza létre, akkor a cikket egyidejűleg adja meg, Mivel a fenti szkript nem tartalmazza a cikk feldolgozását, a tulajdonságból van megadva.

Válassza a bal oldali menü "Cikkek" parancsát, ellenőrizze a szinkronizálni kívánt táblát, majd kattintson az OK gombra.

A szinkronizálandó tábla oszlopaihoz hozzáad egy msrepl_tran_version, és ezzel egyidejűleg egy tábla eseményindítót is hozzáad.

Előfizetés létrehozása

Kattintson a jobb gombbal az imént létrehozott kiadványra, és válassza az Új előfizetés parancsot.

Kattintson a Tovább gombra.

Jelölje ki a létrehozott kiadványt.

Jelölje be Az összes ügynök futtatása a Forgalmazó <kiszolgáló neve>.

Kattintson az SQL Server-előfizető hozzáadása gombra.

Itt adhatja meg az előfizetőként regisztrálni kívánt kiszolgálót (+ példánynév).

Ha nem rendelkezik előfizetői adatbázissal, hozzon létre egy újat. Ha már létezik, jelölje ki, mert megjelenik a kijelölési elem.

Az adatbázis megadása után kattintson a Tovább gombra.

Ha egynél több előfizetője van, itt regisztrálhat annyit, amennyire szüksége van.

Kattintson a "..." gombra.

Itt az ügynök az sa fiók alatt fut, de kérjük, állítsa be a környezetének megfelelően.

Válassza a Folyamatos futtatás lehetőséget.

A "Megújuló előfizetés" beállításnak működőképesnek kell lennie.

Abban az esetben, ha "egyszerre véglegesíti a módosításokat", azonnal szinkronizálódik, de minden kiszolgálónak futnia kell.

A "Várólista-módosítások és véglegesítés, ha lehetséges" módosításokat halmoz fel a várólistában, így azok a kiszolgáló futtatásakor lesznek véglegesítve, még akkor is, ha a kiszolgáló nem fut. A szinkronizálás időzítése azonban lassú.

Jelölje be: Előre definiált csatolt vagy távoli kiszolgáló használata jelölőnégyzet.

Válassza a Most lehetőséget.

Kattintson a Tovább gombra.

Kattintson a Befejezés gombra.

Zárjon be, ha nincsenek hibák.

Néhány pillanat múlva láthatja, hogy az adatbázis az előfizetői oldalon jött létre, és hogy a táblák is létrejöttek.

Ellenőrizheti, hogy a rekordok is szinkronizálva vannak-e.

Ha egy idő után nem szinkronizálódik, kérjük, tegye a következőket.

Kattintson a jobb gombbal a létrehozott előfizetésre, és válassza az Újraializálás parancsot.

Jelölje be az "Új pillanatkép használata" jelölőnégyzetet, majd kattintson a "Beállítás az újraializáláshoz" gombra.

Hiba esetén próbálkozzon újra.

Művelet ellenőrzése

Próbáljon meg táblákat hozzáadni vagy módosítani a kiadványoldalon.

Várjon néhány másodpercet, hogy megbizonyosodjon arról, hogy szinkronizálva van-e az előfizetővel.

Most módosítsuk a rekordot az előfizetői oldalon.

Ellenőrizheti, hogy szinkronizálva van-e a kiadványoldallal.

Ha több előfizetője van regisztrálva, győződjön meg arról, hogy szinkronizálva vannak az előfizetők között.