Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server in Windows
Het configureren van SQL Server-replicatie en AlwaysOn-beschikbaarheidsgroepen omvat zeven stappen. Elke stap wordt uitgebreid beschreven in de volgende secties.
1. De databasepublicaties en -abonnementen configureren
De distributeur configureren
De distributiedatabase kan niet worden geplaatst in een beschikbaarheidsgroep met SQL Server 2012 en SQL Server 2014. Het plaatsen van de distributiedatabase in een beschikbaarheidsgroep wordt ondersteund met SQL 2016 en hoger, met uitzondering van distributiedatabases die worden gebruikt in samenvoeging, bidirectionele of peer-to-peer-replicatietopologieën. Zie Replicatiedistributiedatabase instellen in AlwaysOn-beschikbaarheidsgroep voor meer informatie.
Configureer distributie bij de distributeur. Als opgeslagen procedures worden gebruikt voor configuratie, voert
sp_adddistributoru de parameter @password uit om het wachtwoord te identificeren dat wordt gebruikt wanneer een externe uitgever verbinding maakt met de distributeur. Het wachtwoord is ook nodig bij elke externe uitgever wanneer de externe distributeur is ingesteld.USE master; GO EXECUTE sys.sp_adddistributor @distributor = 'MyDistributor', @password = '**Strong password for distributor**';Maak de distributiedatabase bij de distributeur. Als opgeslagen procedures worden gebruikt voor configuratie, voert u
sp_adddistributiondbUSE master; GO EXECUTE sys.sp_adddistributiondb @database = 'distribution', @security_mode = 1;Configureer de externe uitgever. Als opgeslagen procedures worden gebruikt om de distributeur te configureren, voert u
sp_adddistpublisheruit. De parameter @security_mode wordt gebruikt om te bepalen hoe de replicatieagenten verbinding maken met de huidige primaire via de uitgevoerde opgeslagen procedure van de publicerende server. Als deze optie is ingesteld op 1 wordt Windows-verificatie gebruikt om verbinding te maken met de huidige primaire. Als dit is ingesteld op 0, wordt SQL Server-verificatie gebruikt met de opgegeven @login en @password waarden. De opgegeven inloggegevens moeten geldig zijn op elke secundaire replica zodat de validatie-opgeslagen procedure verbinding kan maken met die replica.Opmerking
Als gewijzigde replicatie-agents op een andere computer dan de distributeur worden uitgevoerd, vereist het gebruik van Windows-verificatie voor de verbinding met de primaire server dat Kerberos-verificatie wordt geconfigureerd voor de communicatie tussen de replicahostcomputers. Voor het gebruik van een SQL Server-aanmelding voor de verbinding met de huidige primaire server is geen Kerberos-verificatie vereist.
USE master; GO EXECUTE sys.sp_adddistpublisher @publisher = 'AGPrimaryReplicaHost', @distribution_db = 'distribution', @working_directory = '\\MyReplShare\WorkingDir', @login = 'MyPubLogin', @password = '**Strong password for publisher**';
Zie sp_adddistpublisher voor meer informatie.
De uitgever configureren bij de oorspronkelijke uitgever
Externe distributie configureren. Als opgeslagen procedures worden gebruikt om de uitgever te configureren, voert u de opdracht
sp_adddistributorGeef dezelfde waarde op voor @password als de waarde die is gebruikt toensp_adddistrbutordeze werd uitgevoerd bij de distributeur om distributie in te stellen.EXECUTE sys.sp_adddistributor @distributor = 'MyDistributor', @password = 'MyDistPass';Schakel de database in voor replicatie. Als opgeslagen procedures worden gebruikt om de uitgever te configureren, voert u
sp_replicationdboptionuit. Als er zowel transactionele als samenvoegreplicatie voor de database moet worden geconfigureerd, moet elk ervan worden ingeschakeld.USE master; GO EXECUTE sys.sp_replicationdboption @dbname = 'MyDBName', @optname = 'publish', @value = 'true'; EXECUTE sys.sp_replicationdboption @dbname = 'MyDBName', @optname = 'merge publish', @value = 'true';Maak de replicatiepublicatie, artikelen en abonnementen. Zie Publicatiegegevens en databaseobjecten voor meer informatie over het configureren van replicatie.
2. De beschikbaarheidsgroep configureren
Maak op de beoogde primaire database de beschikbaarheidsgroep met de gepubliceerde (of te publiceren) database als liddatabase. Als u de wizard Beschikbaarheidsgroep gebruikt, kunt u toestaan dat de wizard de secundaire replicadatabases in eerste instantie synchroniseert of u kunt de initialisatie handmatig uitvoeren met behulp van back-up en herstel.
Maak een DNS-listener voor de beschikbaarheidsgroep die door de replicatieagents wordt gebruikt om verbinding te maken met de huidige primaire. De naam van de listener die is opgegeven, wordt gebruikt als het doel van omleiding voor het oorspronkelijke uitgevers-/gepubliceerde databasepaar. Als u bijvoorbeeld DDL gebruikt om de beschikbaarheidsgroep te configureren, kan het volgende codevoorbeeld worden gebruikt om een listener voor een beschikbaarheidsgroep op te geven voor een bestaande beschikbaarheidsgroep met de naam MyAG:
ALTER AVAILABILITY GROUP 'MyAG'
ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));
Zie Het maken en configureren van beschikbaarheidsgroepen (SQL Server) voor meer informatie.
3. Zorg ervoor dat alle secundaire replicahosts zijn geconfigureerd voor replicatie
Controleer op elke secundaire replicahost of SQL Server is geconfigureerd ter ondersteuning van replicatie. De volgende query kan worden uitgevoerd op elke secundaire replicahost om te bepalen of replicatie is geïnstalleerd:
USE master;
GO
DECLARE @installed AS INT;
EXECUTE @installed = sys.sp_MS_replication_installed;
SELECT @installed;
Als @installed 0 is, moet de replicatie worden toegevoegd aan de SQL Server-installatie.
4. Stel de secundaire replicahosts in als replicatie-uitgevers
Een secundaire replica kan niet als een replicatie-uitgever of heruitgever fungeren, maar de replicatie moet zo worden geconfigureerd dat de secundaire replica na een failover de taken kan overnemen. Configureer bij de distributeur distributie voor elke secundaire replicahost. Geef dezelfde distributiedatabase en werkmap op als die is opgegeven toen de oorspronkelijke uitgever werd toegevoegd aan de distributeur. Als u opgeslagen procedures gebruikt om distributie te configureren, gebruikt sp_adddistpublisher u deze om de externe uitgevers te koppelen aan de distributeur. Als @login en @password zijn gebruikt voor de oorspronkelijke uitgever, geeft u voor elke uitgever dezelfde waarden op wanneer u de secundaire replicahosts toevoegt als uitgevers.
EXECUTE sys.sp_adddistpublisher
@publisher = 'AGSecondaryReplicaHost',
@distribution_db = 'distribution',
@working_directory = '\\MyReplShare\WorkingDir',
@login = 'MyPubLogin',
@password = '**Strong password for publisher**';
Configureer distributie op elke secundaire replicahost. Identificeer de distributeur van de oorspronkelijke uitgever als de externe distributeur. Gebruik hetzelfde wachtwoord als het wachtwoord dat werd gebruikt toen sp_adddistributor oorspronkelijk bij de distributeur werd uitgevoerd. Als opgeslagen procedures worden gebruikt om distributie te configureren, wordt de @password parameter gebruikt sp_adddistributor om het wachtwoord op te geven.
EXECUTE sp_adddistributor
@distributor = 'MyDistributor',
@password = '**Strong password for distributor**';
Zorg ervoor dat op elke secundaire replicahost de pushabonnees van de databasepublicaties worden weergegeven als gekoppelde servers. Gebruik opgeslagen procedures om de externe uitgevers te configureren; gebruik sp_addlinkedserver om de abonnees (indien niet al aanwezig) als gekoppelde servers aan de uitgevers toe te voegen.
EXECUTE sys.sp_addlinkedserver @server = 'MySubscriber';
5. De oorspronkelijke uitgever doorverwijzen naar de naam van de AG-listener
Voer bij de distributeur in de distributiedatabase de opgeslagen procedure sp_redirect_publisher uit om de oorspronkelijke uitgever en de gepubliceerde database te koppelen aan de naam van de listener voor de beschikbaarheidsgroep van de beschikbaarheidsgroep.
USE distribution;
GO
EXECUTE sys.sp_redirect_publisher
@original_publisher = 'MyPublisher',
@publisher_db = 'MyPublishedDB',
@redirected_publisher = 'MyAGListenerName';
6. Voer de opgeslagen procedure voor replicatievalidatie uit om de configuratie te controleren
Voer bij de distributeur in de distributiedatabase de opgeslagen procedure sp_validate_replica_hosts_as_publishers uit om te controleren of alle replicahosts nu zijn geconfigureerd om te fungeren als uitgevers voor de gepubliceerde database.
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;
De opgeslagen procedure sp_validate_replica_hosts_as_publishers moet worden uitgevoerd vanaf een aanmelding met voldoende autorisatie bij elke replicahost van de beschikbaarheidsgroep om te zoeken naar informatie over de beschikbaarheidsgroep. In tegenstelling tot sp_validate_redirected_publisher worden de referenties van de aanroeper gebruikt en wordt de login die is opgeslagen in msdb.dbo.MSdistpublishers niet gebruikt om verbinding te maken met de replica's van de beschikbaarheidsgroep.
Fout bij het valideren van secundaire replicahosts
sp_validate_replica_hosts_as_publishers mislukt met de volgende fout bij het valideren van secundaire replicahosts die geen leestoegang toestaan of waarvoor leesintentie moet worden opgegeven.
Msg 21899, niveau 11, staat 1, procedure
sp_hadr_verify_subscribers_at_publisher, regel 109De query bij de omgeleide uitgever 'MyReplicaHostName' om te bepalen of er sysserververmeldingen waren voor de abonnees van de oorspronkelijke uitgever 'MyOriginalPublisher' is mislukt met fout '976', foutbericht 'Fout 976, Niveau 14, Status 1, Bericht: De doeldatabase, 'MyPublishedDB', maakt deel uit van een beschikbaarheidsgroep en is momenteel niet toegankelijk voor query's. Gegevensverplaatsing wordt onderbroken of de beschikbaarheidsreplica is niet ingeschakeld voor leestoegang. Als u alleen-lezentoegang tot deze en andere databases in de beschikbaarheidsgroep wilt toestaan, schakelt u leestoegang in tot een of meer secundaire beschikbaarheidsreplica's in de groep. Zie de instructie ALTER AVAILABILITY GROUP in SQL Server Books Online voor meer informatie.
Er zijn een of meer validatiefouten van de uitgever opgetreden voor de replicahost 'MyReplicaHostName'.
Dit is te verwachten gedrag. U moet de aanwezigheid van de vermeldingen van de abonneeserver op deze secundaire replicahosts controleren door rechtstreeks op de host een query uit te voeren op de sysserververmeldingen.
7. De oorspronkelijke uitgever toevoegen aan Replicatiemonitor
Voeg op elke replica van de beschikbaarheidsgroep de oorspronkelijke uitgever toe aan Replication Monitor.
Gerelateerde taken
Replication
Veelgestelde vragen over replicatiebeheer
Een beschikbaarheidsgroep maken en configureren
- Gebruik de Wizard Beschikbaarheidsgroep (SQL Server Management Studio)
- Het dialoogvenster Nieuwe beschikbaarheidsgroep gebruiken (SQL Server Management Studio)
- Een beschikbaarheidsgroep maken (Transact-SQL)
- Een beschikbaarheidsgroep maken (SQL Server PowerShell)
- Geef de eindpunt-URL op bij het toevoegen of wijzigen van een beschikbaarheidsreplica (SQL Server)
- Een eindpunt voor databasespiegeling maken voor AlwaysOn-beschikbaarheidsgroepen (SQL Server PowerShell)
- Een secundaire replica toevoegen aan een beschikbaarheidsgroep (SQL Server)
- Handmatig een secundaire database voorbereiden voor een beschikbaarheidsgroep (SQL Server)
- Een secundaire database toevoegen aan een beschikbaarheidsgroep (SQL Server)
- een listener voor een beschikbaarheidsgroep (SQL Server) maken of configureren