Delen via


Gegevens verzamelen om verbindingsproblemen met SQL Server op te lossen

Dit artikel helpt u bij het identificeren van de hoofdoorzaak van SQL Server-verbindingsproblemen door relevante vragen te stellen op basis van specifieke categorieën. Hoewel de aanbevolen vereisten en controlelijst voor het oplossen van problemen met SQL Server-connectiviteit de belangrijkste items bevat die moeten worden verzameld, kunnen de vragen in dit artikel u helpen de oorzaak van de verbindingsproblemen te verfijnen en deze effectief op te lossen.

Notitie

Niet alle vragen zijn van toepassing op alle problemen. Deze vragen kunnen u echter helpen bij het oplossen van verbindingsproblemen.

Zie Overzicht van consistente verificatieproblemen in SQL Server voor het type fouten wanneer u de exacte aard van het probleem kunt inschakelen met behulp van de informatie in dit artikel.

Methode voor het verzamelen van gegevens

Voor het verzamelen van gegevens kunt u hulpprogramma's zoals Probleemstappenrecorder (PSR), Netwerktracering en NETLOGON-tracering gebruiken. Deze sectie bevat gedetailleerde stappen voor het installeren en configureren van een combinatie van al deze hulpprogramma's.

Volg deze stappen tegelijkertijd op zowel de client- als servercomputers. Als de toepassing een architectuur met drie lagen of n-lagen is, voert u de installatie ook uit op tussenliggende servers.

  1. Installeer WireShark op alle betrokken computers of gebruik de ingebouwde NETSH opdracht (Windows 2008 of nieuwere versies). Opnieuw opstarten is niet vereist.

  2. Schakel logboekregistratie voor foutopsporing voor NETLOGON op de client en alle servers in door de volgende opdracht uit te voeren:

    NLTEST /DBFLAG:2080FFFF

  3. Voer indien mogelijk een van de volgende stappen uit:

    • Start de clientcomputer opnieuw op.
    • Vraag de gebruiker zich af te melden en opnieuw aan te melden.
    • Sluit de clienttoepassing en open deze opnieuw.
  4. Start op de clientcomputer probleemstappenrecorder (psr.exe) en selecteer vervolgens Record starten.

    Met dit hulpprogramma worden alle gebruikersacties die voorafgaan aan het probleem nauwkeurig vastgelegd en worden de resultaten opgeslagen in een .zip-bestand.

  5. Start de netwerkopname op alle computers.

  6. Als u NETSH gebruikt, voert u de NETSH TRACE START CAPTURE=YES TRACEFILE=C:\TEMP%computername%.ETL opdracht uit (gebruik een geschikte bestandsnaam of padnaam).

  7. Maak de DNS-cache (Domain Name System) leeg op alle computers door de opdracht uit te IPCONFIG /FLUSHDNS voeren.

  8. Wis de NETBIOS-cache op alle computers door de opdracht uit te NBTSTAT /RR voeren.

  9. Leeg client Kerberos-tickets door de opdracht uit te KLIST purge voeren.

  10. Wis tickets op elke server door de opdracht uit te KLIST -li 0x3e7 purge voeren.

    Notitie

    Typ de opdracht. Kopieer en plak deze niet in de opdrachtregel omdat het afbreekstreepje mogelijk wordt geconverteerd naar een lang (em)-streepje. KLIST is hoofdlettergevoelig.

  11. Reproduceer het probleem.

  12. Stop de psr.exe opname.

  13. Stop de netwerkopnamen. Sla het opgenomen bestand op door de opdracht NETSH uit te voeren: NETSH TRACE STOP met behulp van een betekenisvolle naam. De naam van het bestand kan bijvoorbeeld SQLProd01.netmon.cap zijn.

  14. Wacht totdat de opdrachtprompt opnieuw wordt weergegeven en sluit het venster. Sluit het opdrachtpromptvenster niet voordat de prompt wordt weergegeven.

  15. Kopieer het NETLOGON-logboek naar C:\windows\debug\netlogon.log en geef het bestand een betekenisvolle naam. Bijvoorbeeld SQLProd01.netlogon.log.

  16. Schakel logboekregistratie uit door de opdracht uit te NLTEST /DBFLAG:0x0 voeren.

Gegevens verzamelen om de problemen te categoriseren

De volgende set vragen is ontworpen om u te helpen bij het vinden van de categorie waarin een probleem valt, zodat u naar de juiste richting voor probleemoplossing leidt. Selecteer elke vervolgkeuzelijst voor verwante vragen.

Voordat u begint met het stellen van de specifieke vragen, moet u ervoor zorgen dat aan alle vereiste vereisten voor de SQL Server-verbindingen is voldaan. Zie Aanbevolen vereisten en controlelijst voor het oplossen van verbindingsproblemen met SQL Server voor meer informatie over de vereisten.

Bredere perspectiefvragen
  • Heeft het probleem alleen invloed op databaseverbindingen of heeft het ook invloed op verbindingen met web- en bestandsshares? Veel gevallen worden gerapporteerd aan het SQL Server-team omdat deze zich op de databaseserver voordoen. Het is echter mogelijk dat het probleem helemaal niet is gerelateerd aan de database en mogelijk meer algemene Ondersteuning voor Windows of Active Directory vereist.
  • Bestaat er een vertrouwensrelatie tussen het gebruikersdomein, het clientdomein of het serverdomein als deze verschillen? Is het extern, forest, eenrichtings-, tweerichtings- of geen?
  • Werkt de verbinding correct als alle resources zich in hetzelfde domein bevinden?
  • Is het probleem onregelmatig of periodiek of consistent?
  • Treedt het probleem alleen op als meer dan één gebruiker de toepassing gebruikt? Treedt het vaker op als er meer gebruikers deze gebruiken?
  • Treedt het probleem alleen op bepaalde tijdstippen van de dag of op bepaalde dagen van de week op?
  • Treedt het probleem alleen op wanneer een back-up wordt gemaakt of als de database opnieuw wordt geïndexeerd?
  • Heeft het probleem invloed op meer dan één server?
  • Heeft het probleem alleen invloed op één knooppunt in een cluster met n-knooppunten? Zo ja, dan kan het efficiënter zijn om te overwegen om dat specifieke knooppunt opnieuw te bouwen.
  • Heeft het probleem slechts één of twee clients van meerdere invloed? Zo ja, misschien zou herbouwen efficiënter zijn.
  • Heeft het probleem alleen invloed op benoemde pijpen en niet op TCP (of omgekeerd)?
  • Treedt het probleem op wanneer u een SQL Server-aanmelding en TCP/IP gebruikt?
  • Bestaat er een werkcase die kan worden vergeleken met de foutcase? Hoe verschillen de systemen?
Clientcomputer

Gebruik de volgende vragen om gegevens te verzamelen over de verschillende onderdelen van de clientcomputer. Deze gegevens kunnen nuttig zijn bij het identificeren van de problemen.

  • Wat is de naam, editie en versie van het besturingssysteem (WinVer)?

  • Wat is de naam en versie van het SQL Server-stuurprogramma of -provider?

  • Wat zijn de computernaam en het IP-adres?

  • Wat is de domeinstatus van de computer? Als het lid is van een domein, wat is de domeinnaam?

  • Welke runtimeomgeving voor toepassingen wordt gebruikt? Bijvoorbeeld Iis (Internet Information Services), Windows Forms, Web Sphere of SSIS-taak (SQL Server Integration Services).

  • Welke toepassingstaal wordt gebruikt?

  • Wat is de verbindingsreeks gebruikt?

  • Welk type verificatie wordt gebruikt om verbinding te maken met de server? Bijvoorbeeld New Technology LAN Manager (NTLM), Kerberos, SQL of Azure Active Directory (AAD).

  • Als de toepassing een server of service is, delegeert deze gebruikersreferenties aan de back-enddatabase?

  • Wordt beperkte delegatie gebruikt?

  • Wat zijn het serviceaccount en domein van de toepassing?

  • Welk type service wordt gebruikt? Is het fysiek, virtueel of cloud? Bijvoorbeeld IaaS, web-app, webrol of Power BI.

  • Wat is het clientstuurprogramma? Is het Java Database Connectivity (JDBC) of wordt het uitgevoerd op Linux of Mac?

    Notitie

    De werkstromen zijn momenteel meer op Windows gericht.

  • Heeft het probleem alleen invloed op verouderde providers, zoals Provider=SQLOLEBD of Driver={SQL Server}, en niet op SQL Native Client en latere stuurprogramma's (of omgekeerd)?

  • Treedt het probleem op in slechts één toepassing of in meerdere toepassingen?

  • Mislukt een UDL-bestand (Universal Data Link) wanneer er verbinding wordt gemaakt met andere SQL Server-servers, of mislukt het alleen de server met het probleem?

  • Meldt de gebruiker zich aan bij de sql Server-server en probeert verbinding te maken met behulp van SQL Server Management Studio (SSMS)?

  • Treedt het probleem alleen op wanneer u de NETBIOS-naam van de server gebruikt en niet wanneer u de FQDN (Fully Qualified Domain Name) (of omgekeerd) gebruikt? Werkt het met behulp van het IP-adres?

  • Is de Credential Guard-functie ingeschakeld voor de client met Windows 10 Enterprise Edition? Zo ja, dan kan dit van invloed zijn op scenario's voor volledige delegatie.

Logboekgegevens

Gebruik de volgende vragen om gegevens over de logboekbestanden te verzamelen:

  • Wat is het exacte foutbericht in de aanroepstack?
  • Is het logboek verzameld uit de SQL Server ERRORLOG - en ERRORLOG.1-bestanden ?
  • Zijn de toepassingsgebeurtenislogboeken verzameld van de client en server?
  • Zijn de logboekbestanden en configuratiebestanden van de clienttoepassing verzameld? Bijvoorbeeld web.config, rsreportserver.config, *.config of *.ini.
  • Is er een beschikbare visuele weergave van het netwerk waarin de computers, routers enzovoort worden weergegeven?
Nieuwe of bestaande problemen

Verwijst naar het bepalen of het probleem een recente ontwikkeling is of of het een tijdje heeft bestaan:

  • Bestaat het probleem altijd (nieuwe installatie) of werkt de toepassing enige tijd goed voordat het onlangs is verbroken?
  • Als de toepassing correct werkt, welke wijzigingen zijn aangebracht in de omgeving? Bijvoorbeeld geïnstalleerde updates, bijgewerkte domeincontrollers, wijzigingen in de firewallinstellingen, buiten gebruik gestelde domeincontrollers of een verplaatsing naar een andere organisatie-eenheid in het domein.
Servercomputer

Verzamel voor een gekoppelde server servergegevens voor zowel de middellaagserver als de back-endserver. Voor een probleem met IIS-naar-SQL-delegering verzamelt u informatie op de webserver, met inbegrip van de web.config - en verificatie-instellingen.

  • Wat is de naam van de naam, editie en versie van het besturingssysteem (Winver)?
  • Wat is de naam en versie van de database?
  • Wat is de naam van de computer?
  • Wat is het IP-adres?
  • Wat is de domeinnaam als de computer lid is van een domein?
  • Wat is het SQL Server-serviceaccount en -domein?
  • Wat is de naam van het SQL Server-exemplaar?
  • Welke protocollen zijn ingeschakeld?
  • Op welke poort luistert de server?
  • Wat is de naam van de serverpijp? U vindt deze informatie in het foutenlogboek.
  • Welk type omgeving wordt gebruikt? Is het fysiek, virtueel of cloud? Bijvoorbeeld IaaS (SQL in een virtuele Azure-machine (VM)) of PaaS (Azure SQL Database, SQL Managed Instance (MI)).
  • Wordt de database geïmplementeerd als zelfstandig, geclusterd, gespiegeld of gebruikt u AlwaysOn?
  • Wat is de naam en het IP-adres van de failoverpartner?
  • Wat is de naam en poort van het virtuele cluster of de listener?
  • Wat is het virtuele IP- of listener-IP-adres?
  • Op welk besturingssysteem is de database geïnstalleerd? Is het Windows, Linux of Mac? Dit kan van invloed zijn op het verzamelen van gegevens.
  • Wat is de locatie van de database? Bevindt het zich in Azure?
  • Wat is de huidige status van de server in termen van de nieuwste servicepack en cumulatieve update? Er is geen punt bij het opsporen van fouten in een probleem dat al is opgelost.
  • Is SQL Server onlangs bijgewerkt ter ondersteuning van TLS (Transport Layer Security) 1.2? Zijn de clients ook bijgewerkt? Is TLS 1.0 uitgeschakeld?
  • Wat is de huidige status van de SQL Server-service? Is het actief?
  • Wat is de status van de SQL Browser-service? Is het actief?
  • Wat is de specificiteit van het probleem voor een serviceaccount? Lost het probleem op door de server uit te voeren met een ander serviceaccount?
Gebruikersgegevens

Verzamel de volgende gebruikersgegevens:

  • Meldt de gebruiker zich rechtstreeks aan bij de clientcomputer of opent deze op afstand? Gebruikt de gebruiker bijvoorbeeld een browser?
  • Is de gebruiker een service, zoals SQL Agent? Wordt de procesidentiteit gebruikt of wordt een opgeslagen referentie gebruikt?
  • Wat is het type verificatie dat wordt gebruikt om verbinding te maken met de clienttoepassing? Is dit Windows, Forms-verificatie of AAD?
  • Maakt de gebruiker verbinding met de server met behulp van geïntegreerde beveiliging?
  • Wat zijn de gebruikersnaam en domeinnaam?

Als de gebruiker extern is voor de clienttoepassing, verzamelt u de volgende gegevens:

  • Wat zijn de computernaam en het IP-adres?
  • Is het computerdomein gekoppeld? Zo ja, wat is de domeinnaam?
  • Maakt de gebruiker verbinding via een VPN of een proxyserver? Treedt het probleem op als een van beide methoden rechtstreeks is verbonden?
  • Als de gebruiker verbinding maakt met een webserver, is de taakverdeling van de server?
  • Worden plaksessies of sessieaffiniteit gebruikt?
  • Wordt de gebruiker aangemeld bij een terminalserver of jumpbox en krijgt deze toegang tot de toepassing?
  • Heeft het probleem alleen invloed op gebruikers in bepaalde organisatie-eenheden (OE's)?
  • Is de gebruiker, client of server verplaatst naar een andere organisatie-eenheid (OE) in Active Directory?
  • Heeft het probleem alleen invloed op niet-gebruikers met beheerdersrechten?
  • Heeft het probleem invloed op alle of slechts enkele van de gebruikers in een bepaald domein?

Zie ook

Disclaimerinformatie van derden

De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.