Megosztás a következőn keresztül:


Replikáció konfigurálása "Always On" rendelkezésre állási csoportokkal

A következőkre vonatkozik:SQL Server Windows rendszeren

Az SQL Server replikáció és az Always On rendelkezésre állási csoportok konfigurálása hét lépésből áll. Minden lépést részletesebben a következő szakaszokban ismertetünk.

1. Az adatbázis-kiadványok és -előfizetések konfigurálása

A forgalmazó konfigurálása

A terjesztési adatbázis nem helyezhető el az SQL Server 2012 és az SQL Server 2014 rendelkezésre állási csoportjában. A terjesztési adatbázis rendelkezésre állási csoportba helyezése az SQL 2016 és újabb verzióval támogatott, kivéve az egyesítő, kétirányú vagy társközi replikációs topológiákban használt terjesztési adatbázisokat. További információ: Replikációs terjesztési adatbázis beállítása az Always On rendelkezésre állási csoportban.

  1. A disztribúció konfigurálása a forgalmazónál. Ha tárolt eljárásokat használ a konfigurációhoz, futtassa sp_adddistributor a @password paramétert annak a jelszónak a azonosításához, amelyet egy távoli közzétevő a terjesztőhöz való csatlakozáskor használ. A távoli terjesztő beállításakor a jelszóra is szükség lesz minden távoli közzétevőnél.

    USE master;
    GO
    
    EXECUTE sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = '**Strong password for distributor**';
    
  2. Hozza létre a terjesztési adatbázist a forgalmazónál. Ha tárolt eljárásokat használ a konfigurációhoz, futtassa a sp_adddistributiondb

    USE master;
    GO
    
    EXECUTE sys.sp_adddistributiondb
        @database = 'distribution',
        @security_mode = 1;
    
  3. Konfigurálja a távoli közzétevőt. Ha tárolt eljárásokat használ a forgalmazó konfigurálásához, futtassa sp_adddistpublisher a @security_mode paramétert annak meghatározására, hogy a közzétevő által a replikációs ügynökökből futtatott, tárolt eljárás hogyan csatlakozik az aktuális elsődlegeshez. Ha 1-ra van állítva, a rendszer a Windows-hitelesítést használja az aktuális elsődlegeshez való csatlakozáshoz. Ha 0 értékre van állítva, az SQL Server-hitelesítést a megadott @login és @password értékekkel használja a rendszer . A megadott bejelentkezésnek és jelszónak minden másodlagos replikánál érvényesnek kell lennie ahhoz, hogy az érvényesítési tárolt eljárás sikeresen csatlakozzon a replikához.

    Megjegyzés:

    Ha a módosított replikációs ügynökök a forgalmazótól eltérő számítógépen futnak, a Windows-hitelesítés használata az elsődlegeshez való csatlakozáshoz Kerberos-hitelesítést igényel a replikagazdaszámítógépek közötti kommunikációhoz. Az SQL Server-bejelentkezés használata az aktuális elsődleges kapcsolathoz nem igényel Kerberos-hitelesítést.

    USE master;
    GO
    
    EXECUTE sys.sp_adddistpublisher
        @publisher = 'AGPrimaryReplicaHost',
        @distribution_db = 'distribution',
        @working_directory = '\\MyReplShare\WorkingDir',
        @login = 'MyPubLogin',
        @password = '**Strong password for publisher**';
    

További információ: sp_adddistpublisher.

A közzétevő konfigurálása az eredeti közzétevőnél

  1. Távoli disztribúció konfigurálása. Ha tárolt eljárásokat használ a közzétevő konfigurálásához, futtassa a sp_adddistributor parancsot azzal az értékkel, amelyet a @password megadásakor és a sp_adddistrbutor futtatásakor a terjesztőnél a terjesztési beállításhoz használt.

    EXECUTE sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = 'MyDistPass';
    
  2. Engedélyezze az adatbázist a replikációhoz. Ha tárolt eljárásokat használ a közzétevő konfigurálásához, futtassa sp_replicationdboption azt, ha a tranzakciós és az egyesítési replikációt is konfigurálni kell az adatbázishoz, mindegyiknek engedélyezve kell lennie.

    USE master;
    GO
    
    EXECUTE sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'publish',
        @value = 'true';
    
    EXECUTE sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'merge publish',
        @value = 'true';
    
  3. Hozza létre a replikációs kiadványt, cikkeket és előfizetéseket. A replikáció konfigurálásáról további információt az Adatok és adatbázis-objektumok közzététele című témakörben talál.

2. A rendelkezésre állási csoport konfigurálása

A kívánt elsődleges helyen hozza létre a rendelkezésre állási csoportot a közzétett (vagy közzéteendő) adatbázissal tagadatbázisként. Ha a Rendelkezésre állási csoport varázslót használja, engedélyezheti, hogy a varázsló először szinkronizálja a másodlagos replika-adatbázisokat, vagy manuálisan is végrehajthatja az inicializálást biztonsági mentéssel és visszaállítással.

Hozzon létre egy DNS-figyelőt ahhoz a rendelkezésre állási csoporthoz, amelyet a replikációs ügynökök az aktuális elsődlegeshez való csatlakozáshoz fognak használni. A megadott hallgató neve szolgál majd célként az eredeti közzétevő/közzétett adatbázispár átirányításához. Ha például dDL-t használ a rendelkezésre állási csoport konfigurálásához, az alábbi kód példával megadhat egy rendelkezésre állási csoport figyelőt egy meglévő, nevesített MyAGrendelkezésre állási csoporthoz:

ALTER AVAILABILITY GROUP 'MyAG'
    ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));

További információ: Rendelkezésre állási csoportok (SQL Server) létrehozása és konfigurálása.

3. Győződjön meg arról, hogy az összes másodlagos replika gazdagép replikációra legyenek konfigurálva.

Minden másodlagos replikagazda esetében ellenőrizze, hogy az SQL Server konfigurálva van-e a replikáció támogatásához. A következő lekérdezés futtatható minden másodlagos replika gazdagépen annak megállapításához, hogy a replikáció telepítve van-e:

USE master;
GO

DECLARE @installed AS INT;

EXECUTE @installed = sys.sp_MS_replication_installed;

SELECT @installed;

Ha @installed 0, a replikációt hozzá kell adni az SQL Server telepítéséhez.

4. A másodlagos replika-gazdagépek konfigurálása replikációs közzétevőként

A másodlagos replika nem működhet replikáció publikálóként vagy újrapublikálóként, de a replikációt úgy kell konfigurálni, hogy a másodlagos átvehessen feladatátvétel esetén. A forgalmazónál konfigurálja az egyes másodlagos replika-gazdagépek terjesztését. Adja meg ugyanazt a terjesztési adatbázist és munkakönyvtárat, amelyet az eredeti közzétevő forgalmazóhoz való hozzáadásakor adott meg. Ha tárolt eljárásokat használ a disztribúció konfigurálásához, használja sp_adddistpublisher a távoli közzétevők és a forgalmazó társítását. Ha a @login és @password értékeket használták az eredeti közzétevőnél, adja meg ugyanazokat az értékeket, amikor a másodlagos replikagépeket közzétevőként felveszi.

EXECUTE sys.sp_adddistpublisher
    @publisher = 'AGSecondaryReplicaHost',
    @distribution_db = 'distribution',
    @working_directory = '\\MyReplShare\WorkingDir',
    @login = 'MyPubLogin',
    @password = '**Strong password for publisher**';

Minden egyes másodlagos replika gazdagépen konfigurálja a disztribúciót. Azonosítsa az eredeti közzétevő forgalmazóját távoli terjesztőként. Használja ugyanazt a jelszót, mint amelyet eredetileg akkor használt, amikor a sp_adddistributor futott a forgalmazónál. Ha tárolt eljárásokat használ a disztribúció konfigurálásához, a rendszer az @password paramétert sp_adddistributor használja a jelszó megadásához.

EXECUTE sp_adddistributor
    @distributor = 'MyDistributor',
    @password = '**Strong password for distributor**';

Győződjön meg arról, hogy minden másodlagos replika gazdagépén az adatbázis-kiadványok leküldéses előfizetői csatolt kiszolgálókként jelennek meg. Ha tárolt eljárásokat használ a távoli közzétevők konfigurálásához, használja sp_addlinkedserver az előfizetők csatolt kiszolgálóként való hozzáadásához a közzétevőkhöz (ha még nincsenek jelen).

EXECUTE sys.sp_addlinkedserver @server = 'MySubscriber';

5. Az eredeti közzétevőt irányítsa át az AG figyelő nevére

A terjesztőnél a terjesztési adatbázisban futtassa a tárolt eljárást sp_redirect_publisher az eredeti közzétevő és a közzétett adatbázis társításához a rendelkezésre állási csoport figyelőjének nevével.

USE distribution;
GO

EXECUTE sys.sp_redirect_publisher
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = 'MyAGListenerName';

6. Futtassa a replikációérvényesítés tárolt eljárását a konfiguráció ellenőrzéséhez

A terjesztőnél a terjesztési adatbázisban futtassa a tárolt eljárást sp_validate_replica_hosts_as_publishers annak ellenőrzéséhez, hogy az összes replika gazdagép jelenleg úgy van-e konfigurálva, hogy közzétevőként működjön a közzétett adatbázishoz kapcsolódóan.

USE distribution;
GO

DECLARE @redirected_publisher AS sysname;

EXECUTE sys.sp_validate_replica_hosts_as_publishers
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = @redirected_publisher OUTPUT;

A tárolt eljárást sp_validate_replica_hosts_as_publishers egy olyan bejelentkezésből kell futtatni, amely megfelelő engedélyekkel rendelkezik minden rendelkezésre állási csoport replika gazdagépén a rendelkezésre állási csoporttal kapcsolatos információk lekérdezéséhez. A sp_validate_redirected_publisher-val ellentétben, a hívó hitelesítő adatait használja, és nem a msdb.dbo.MSdistpublishers-ben megőrzött bejelentkezést a rendelkezésre állási csoport replikáihoz való csatlakozáshoz.

Hiba a másodlagos replika gazdagépek ellenőrzésekor

sp_validate_replica_hosts_as_publishers a következő hibával meghiúsul, ha olyan másodlagos replika-gazdagépeket érvényesít, amelyek nem engedélyezik az olvasási hozzáférést, vagy olvasási szándék megadását követelik meg.

Msg 21899, Level 11, State 1, Procedure sp_hadr_verify_subscribers_at_publisher, Line 109

A "MyReplicaHostName" átirányított közzétevőnél tett lekérdezés, amelynek célja az volt, hogy ellenőrizze, vannak-e sysserver bejegyzések a "MyOriginalPublisher" eredeti közzétevő előfizetői számára, a "976-os hibával" nem sikerült. Hibajelentés: "976-os hiba, 14. szint, 1. állapot, üzenet: A céladatbázis, a 'MyPublishedDB', részt vesz egy rendelkezésre állási csoportban, és jelenleg nem érhető el a lekérdezések számára." Az adatáthelyezés fel van függesztve, vagy a rendelkezésre állási replika nincs engedélyezve az olvasási hozzáféréshez. Ha olvasásra korlátozódó hozzáférést szeretne engedélyezni ehhez az adatbázishoz és a csoport más adatbázisaihoz, engedélyezze az olvasási hozzáférést a csoport egy vagy több másodlagos rendelkezésre állási replikájához. További információkért lásd az SQL Server Books Online ALTER AVAILABILITY GROUP utasítását.

A (z) "MyReplicaHostName" replikagazda esetében legalább egy közzétevő-érvényesítési hiba történt.

Ez a várt viselkedés. A sysserver-bejegyzések közvetlenül a gazdagépen való lekérdezésével ellenőriznie kell az előfizetői kiszolgáló bejegyzéseinek jelenlétét ezeken a másodlagos replika gazdagépeken.

7. Az eredeti közzétevő hozzáadása a Replikációfigyelőhöz

Minden rendelkezésre állási csoport replikájában adja hozzá az eredeti közzétevőt a Replikációfigyelőhöz.

Replication

Rendelkezésre állási csoport létrehozása és konfigurálása