Delen via


Onregelmatige of periodieke verificatieproblemen in SQL Server

Notitie

Voordat u begint met het oplossen van problemen, raden we u aan de vereisten te controleren en de controlelijst te doorlopen. Zie Zelfhulpartikelen voor meer informatie.

In dit artikel worden veelvoorkomende oorzaken van onregelmatige verificatieproblemen in SQL Server-connectiviteit beschreven en worden oplossingen geboden.

Symptomen

Onregelmatige of periodieke verificatieproblemen in SQL Server-connectiviteit treden op wanneer gebruikers of toepassingen sporadische problemen ondervinden bij het verifiëren met de SQL Server-database. Dit veroorzaakt onderbrekingen in gegevenstoegang en toepassingsfunctionaliteit.

De meest voorkomende foutberichten

  • Kan geen SSPI-context genereren

  • Aanmelden is mislukt voor de gebruiker

    • Aanmelden is mislukt voor gebruiker ''
    • Aanmelding mislukt voor gebruiker 'NT AUTHORITY\ANONYMOUS LOGON'
    • Aanmelden is mislukt voor gebruiker UserName<>
    • Aanmelden is mislukt voor gebruiker '<Domain>\<UserName>'
    • Aanmelden mislukt. De aanmelding is afkomstig van een niet-vertrouwd domein en kan niet worden gebruikt met Windows-verificatie.

Oorzaak

De meest voorkomende problemen worden veroorzaakt door sql Server-prestaties of trage domeincontrollerreacties. Als u NT LAN Manager (NTLM) gebruikt, heeft de LSASS (Local Security Authority Subsystem Service) een knelpunt en wordt het aantal nieuwe verbindingen in één keer verwerkt. Er wordt een back-up gemaakt van andere aanvragen en er kan een time-out optreden. Sommige oorzaken, zoals antivirusprogramma's, kunnen moeilijk te bewijzen zijn, maar zijn nog steeds gebruikelijk en moeten zelfs zonder hard bewijs worden onderzocht als andere manieren van onderzoek ineffectief zijn.

Probleemoplossingsproces

Omdat het probleem af en toe optreedt, is de configuratie, zoals Kerberos Service Principal Names (SPN's), waarschijnlijk juist. Probeer de volgende stappen voor probleemoplossing om dit probleem op te lossen:

Verschil in latentie tussen meerdere domeinen of datacenters

Als er meerdere domeinen of datacenters bij betrokken zijn, controleert u of de gebruikers in het lokale domein of datacenter het probleem niet ondervinden terwijl gebruikers in andere domeinen of datacenters dat doen. Zo ja, dan kan dit duiden op een communicatielatentie tussen datacenters of domeincontrollers. Gebruik de volgende opdrachten om het probleem te onderzoeken:

  • Gebruik ping om de netwerklatentie te controleren. Bijvoorbeeld:

    1. Voer de opdracht uit: ping <DatabaseServer>.

    2. Bekijk de tijdkolom en vergelijk die tijd met die in het andere domein of datacenter:

      Pinging <DatabaseServer> [10.10.10.3] with 32 bytes of data:
      Reply from 10.10.10.3: bytes=32 time=68ms TTL=116
      Reply from 10.10.10.3: bytes=32 time=67ms TTL=116
      Reply from 10.10.10.3: bytes=32 time=67ms TTL=116
      
  • Als u latentieproblemen met referentievalidatie wilt testen, gebruikt u Runas met verschillende gebruikers. Bijvoorbeeld:

    1. Voer runas /user:<DomainName>\<UserAccountName> cmd.exe uit.
    2. Voer het wachtwoord van de gebruiker in nadat een opdrachtprompt wordt weergegeven.

Als het probleem zich blijft voordoen, zelfs na het testen met deze opdrachten, is het probleem niet met SQL Server, maar met de prestaties van de netwerkinfrastructuur of domeincontroller.

Prestatieprobleem zoeken in sql Server-foutenlogboek

In het SQL Server-foutenlogboek kunnen prestatieproblemen op SQL Server worden weergegeven, zoals vermeldingen die aangeven dat I/O langer duurt dan 15 seconden. Het SQL Performance-team heeft PSSDIAG om uit te voeren en te analyseren. Mogelijk moet u dit doen als een netwerktracering vertragingen in SQL Server-antwoorden weergeeft.

Het foutenlogboek kan ook andere domeingerelateerde fouten bevatten, zoals het volgende foutenlogboek dat enkele prestatieproblemen met Active Directory aangeeft:

SSPI handshake failed with error code 0x80090311 while establishing a connection with integrated security; the connection has been closed.
SSPI handshake failed with error code 0x80090304 while establishing a connection with integrated security; the connection has been closed.

De volgende foutcodes van het besturingssysteem geven de oorzaak van de fout aan:

  • Fout -2146893039 (0x80090311): Er kan geen contact worden gemaakt met de instantie voor verificatie.

  • Fout -2146893052 (0x80090304): er kan geen contact worden gemaakt met de lokale beveiligingsinstantie.

Gebeurtenislogboeken op clientsysteem controleren op netwerkfouten

Het gebeurtenislogboek van het systeem bevat verschillende gebeurtenissen, zoals Kerberos, Local Security Authority (LSA) en Netlogon-gebeurtenissen. Deze gebeurtenissen geven aan dat de computer enige tijd geen verbinding kan maken met de domeincontroller. U kunt deze gemakkelijker vinden door alleen fout-, waarschuwings- en kritieke gebeurtenissen te filteren. De tijd van de gebeurtenis moet rond de tijd van de storing zijn. Als er een overeenkomst is, kan het een Active Directory-probleem zijn.

In sommige gevallen kan dit probleem optreden op SQL Server. Controleer ook de logboeken op die computer.

Source: NETLOGON
Date: <DateTime>
Event ID: 5719
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: SQLPROD01
Description:
This computer was not able to set up a secure session with a domain controller in domain CONTOSO due to the following: The remote procedure call was cancelled. This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator.

Filter gebeurtenis-id 4625 in het gebeurtenislogboek van de beveiliging. Deze gebeurtenis bevat gedetailleerde informatie over de mislukte aanmelding.

Sql-connectiviteitsringsbuffer verzamelen en controleren

De ringbuffer is een historisch logboek met verbindingsevenementen op SQL Server, wat betekent dat deze kan worden genomen na een storing. Veel gebeurtenissen omvatten aanmeldingstimers die u vertellen waar de tijd wordt besteed:

  • De tijd die is besteed aan het netwerk geeft een mogelijke netwerk- of clientlatentie aan.
  • Tijd die is besteed aan SSPI-API's (Secure Sockets Layer) of SSPI-API's (Security Support Provider Interface) duidt op mogelijke problemen met het Windows-beveiligingssubsysteem.
  • De tijd van de enqueued geeft een prestatieprobleem met SQL Server aan.

Zie De connectiviteitsringsbuffer verzamelen voor meer informatie.

Groepsgewijze verbinding

Het ontbreken van groepsgewijze verbindingen kan leiden tot onregelmatige aanmeldingsfouten.

Notitie

Het ontbreken van groepsgewijze verbindingen toont een groot aantal TIME_WAIT statuscodes in de NETSTAT uitvoer vergeleken met tot stand gebrachte verbindingen.

Als groepsgewijze verbindingen niet is ingeschakeld, kan de client geen uitgaande poorten meer hebben en de server overbelast raken. Deze overbelasting kan ertoe leiden dat de server binnenkomende verbindingsaanvragen weigert of een slecht presterende domeincontroller overspoelt.

Het beste is om de toepassingsontwikkelaar verbindingspooling in hun toepassingen te laten gebruiken. Groepsgewijze verbindingen is standaard ingeschakeld in IIS-toepassingen (.NET en Internet Information Services), maar het is mogelijk om een of andere reden uitgeschakeld.

Het wordt sterk afgeraden voor toepassingen om aangepaste poolcode te gebruiken. Bijna alle aangepaste pooling-implementaties die we hebben aangetroffen, hebben problemen gehad. Het is beter om het ingebouwde mechanisme voor groepsgewijze verbindingen te gebruiken.

Onvoldoende tijdelijke poorten is een relatief veelvoorkomende oorzaak van onregelmatige verbindingstime-outs.

Probleem: weinig kernelgeheugen op de SQL Server-machine.

Oplossing: Pas het maximale servergeheugen (MB) aan in het deelvenster Eigenschappen in SQL Server Management Studio. U kunt het maximale servergeheugen (MB) het beste instellen op ongeveer 4 GB op 8 GB minder dan het fysieke geheugen op de computer. Deze waarde moet kleiner zijn als er meerdere exemplaren, IIS of andere toepassingsservers op de computer worden uitgevoerd. Zie Opties voor servergeheugenconfiguratie voor aanbevelingen over de instelling voor maximaal servergeheugen (MB).

Notitie

De standaardwaarde is 2147483647 MB, wat betekent dat de server ertoe kan leiden dat het besturingssysteem (OS) onvoldoende geheugen heeft.