Dit artikel helpt u bij het oplossen van het veelvoorkomende probleem met de AlwaysOn-configuratie op SQL Server.
Notitie
Zie AlwaysOn-problemen met SQL Server oplossen voor stapsgewijze instructies in dit artikel.
Oorspronkelijke productversie: SQL Server 2012 Enterprise, SQL Server 2014 Enterprise, SQL Server 2016 Enterprise Oorspronkelijk KB-nummer: 10179
Belangrijke opmerkingen
Microsoft CSS-gegevens geven aan dat een aanzienlijk percentage klantproblemen vaak eerder wordt aangepakt in een uitgebrachte CU, maar niet proactief wordt toegepast en daarom wordt een doorlopende, proactieve installatie van CA's aanbevolen zodra deze beschikbaar komen. Zie Aankondiging van updates voor het SQL Server Incremental Servicing Model (ISM) voor meer informatie.
Het bovenliggende knooppunt voor documentatie over AlwaysOn-beschikbaarheidsgroepen en biedt een naslaginformatie over verschillende vragen. Zie AlwaysOn-beschikbaarheidsgroepen (SQL Server).
Ik heb aanwijzingen nodig voor het instellen en configureren van AlwaysOn-beschikbaarheidsgroepen
Als u documentatie zoekt over het instellen van de AlwaysOn-configuratie, raadpleegt u de volgende documenten:
Aan de slag met AlwaysOn-beschikbaarheidsgroepen (SQL Server): het document bevat antwoorden op veel vragen over beschikbaarheidsgroepen en installatie. Als u alle stappen in dit artikel volgt en vereisten, beperkingen en aanbevelingen voor AlwaysOn-beschikbaarheidsgroepen (SQL Server) bekijkt, kunt u veel problemen voorkomen die u kunt tegenkomen bij het instellen en onderhouden van beschikbaarheidsgroepen in uw omgeving.
Ik ondervind problemen met het configureren van AlwaysOn-beschikbaarheidsgroepen
Veelvoorkomende configuratieproblemen zijn AlwaysOn-beschikbaarheidsgroepen zijn uitgeschakeld, accounts zijn onjuist geconfigureerd, het eindpunt voor databasespiegeling bestaat niet, het eindpunt is niet toegankelijk (SQL Server-fout 1418), netwerktoegang bestaat niet en er mislukt een opdracht voor de joindatabase (SQL Server-fout 35250). Raadpleeg het volgende document voor hulp bij het oplossen van deze problemen:
Ik ondervind problemen met de listenerconfiguratie (19471, 19476 en andere fouten)
Een van de meest voorkomende configuratieproblemen die klanten ondervinden, is het maken van listener voor beschikbaarheidsgroepen. De fouten zijn vergelijkbaar met het volgende:
Msg 19471, Niveau 16, Status 0, Regel 2De WSFC-cluster kan de netwerknaamresource niet online brengen met DE DNS-naam '' . De DNS-naam is mogelijk genomen of heeft een conflict met bestaande naamservices, of de WSFC-clusterservice wordt mogelijk niet uitgevoerd of is mogelijk niet toegankelijk. Gebruik een andere DNS-naam om naamconflicten op te lossen of controleer het WSFC-clusterlogboek voor meer informatie.
Msg 19476, Niveau 16, Staat 4, Regel 2De poging om de netwerknaam en het IP-adres voor de listener te maken, is mislukt. De WSFC-service wordt mogelijk niet uitgevoerd of is mogelijk niet toegankelijk in de huidige status, of de waarden die zijn opgegeven voor de netwerknaam en het IP-adres zijn mogelijk onjuist. Controleer de status van het WSFC-cluster en valideer de netwerknaam en het IP-adres bij de netwerkbeheerder.
De meeste tijd is het maken van listeners mislukt, wat resulteert in de vorige berichten, vanwege een gebrek aan machtigingen voor het clusternaamobject (CNO) in Active Directory om het computerobject van de listener te maken en te lezen. Raadpleeg de volgende artikelen voor het oplossen van dit probleem:
Onjuiste configuratie van maximumfouten in de opgegeven periode is een van de belangrijkste oorzaken voor het niet automatisch uitvoeren van een failover naar de secundaire. De standaardwaarde voor deze instelling is N-1, waarbij N het aantal replica's is. Zie de limiet voor maximale fouten van failoverclusters (groep) voor meer informatie.
Ik ondervind problemen bij het maken van verbinding met AlwaysOn-beschikbaarheidsgroepen
Nadat u de listener voor de beschikbaarheidsgroep voor een AlwaysOn-beschikbaarheidsgroep in SQL Server 2012 hebt geconfigureerd, kunt u de listener mogelijk niet pingen of er verbinding mee maken vanuit een toepassing. Mogelijk krijgt u een foutmelding die er ongeveer als volgt uitziet:
Sqlcmd: Fout: Microsoft SQL Native Client: time-out voor aanmelding is verlopen.
Als u deze en vergelijkbare fouten wilt oplossen, raadpleegt u het volgende:
Ik ondervind problemen met het configureren van AlwaysOn-beschikbaarheidsgroepen in mijn Azure VM (IaaS)
Veel problemen met betrekking tot AlwaysOn treden op vanwege een onjuiste configuratie van de listener. Als u verbindingsproblemen ondervindt met de listener,
Zorg ervoor dat u alle beperkingen van de ILB-listener leest en alle stappen hebt gevolgd die in het volgende artikel worden beschreven, met name aandacht voor afhankelijkheidsconfiguratie, IP-adres en verschillende andere parameters in het PowerShell-script.
Als u het niet zeker weet, kunt u de listener verwijderen en opnieuw maken op basis van het bovenstaande document.
Als u de VM onlangs naar een andere service hebt verplaatst of als de IP-adressen zijn gewijzigd, moet u de waarde van de IP-adresresource bijwerken om het nieuwe adres weer te geven en moet u het eindpunt met gelijke taakverdeling voor uw beschikbaarheidsgroep opnieuw maken. U kunt het IP-adres als volgt bijwerken met behulp van de Get of Set opdrachten:
Het duurt lang om een failover van primaire naar secundaire of omgekeerde failover uit te voeren
Na een automatische failover of een geplande handmatige failover zonder gegevensverlies voor een beschikbaarheidsgroep, kan het zijn dat de failovertijd langer is dan de beoogde hersteltijd (RTO). Als u problemen met de oorzaken en mogelijke oplossingen wilt oplossen, raadpleegt u Problemen oplossen: Beschikbaarheidsgroep heeft RTO overschreden.
Wijzigingen op de primaire replica worden niet weergegeven of worden traag gerepliceerd naar de secundaire replica
U ziet mogelijk dat wijzigingen op de primaire replica niet tijdig worden doorgegeven aan secundaire replica. Probeer het volgende om deze problemen op te lossen:
Primaire of secundaire servers zijn getroffen in de oplossingsstatus of u ondervindt onverwachte failovers
Controleer de gebeurtenislogboeken van het systeem en de toepassing op hardwareproblemen en andere fouten en werk samen met de leverancier om deze op te lossen.
Hoe configureert u waarschuwingen om te controleren of de secundaire zich achter de primaire bevindt?
U kunt het volgende script gebruiken:
SQL
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
dr_state.database_id AS database_id,
is_ag_replica_local = CASEWHEN ar_state.is_local = 1THEN N'LOCAL'ELSE'REMOTE'END,
ag_replica_role = CASEWHEN ar_state.role_desc ISNULLTHEN N'DISCONNECTED'ELSE ar_state.role_desc
END,
dr_state.last_hardened_lsn, dr_state.last_hardened_time,
datediff(s,last_hardened_time, getdate()) AS'seconds behind primary'FROM (( sys.availability_groups AS ag
JOIN sys.availability_replicas AS ar
ON ag.group_id = ar.group_id)
JOIN sys.dm_hadr_availability_replica_states AS ar_state
ON ar.replica_id = ar_state.replica_id)
JOIN sys.dm_hadr_database_replica_states dr_state
ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
Hoe wordt u gewaarschuwd als de status van de database anders is dan gesynchroniseerd?
U kunt het volgende script gebruiken:
SQL
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
dr_state.database_id AS database_id,
is_ag_replica_local = CASEWHEN ar_state.is_local = 1THEN N'LOCAL'ELSE'REMOTE'END,
ag_replica_role = CASEWHEN ar_state.role_desc ISNULLTHEN N'DISCONNECTED'ELSE ar_state.role_desc
END,
ar_state.connected_state_desc, ar.availability_mode_desc, dr_state.synchronization_state_desc
FROM (( sys.availability_groups AS ag
JOIN sys.availability_replicas AS ar
ON ag.group_id = ar.group_id )
JOIN sys.dm_hadr_availability_replica_states AS ar_state
ON ar.replica_id = ar_state.replica_id)
JOIN sys.dm_hadr_database_replica_states dr_state
ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
U kunt ook de volgende koppelingen bekijken voor aanvullende methoden om AlwaysOn-groepen te bewaken:
Beheer een SQL Server-databaseinfrastructuur voor cloud-, on-premises en hybride relationele databases met behulp van de relationele Microsoft PaaS-databaseaanbiedingen.