Freigeben über


Sammeln von Daten zur Problembehandlung von SQL Server-Konnektivitätsproblemen

Dieser Artikel hilft Ihnen, die Ursache von SQL Server-Konnektivitätsproblemen zu identifizieren, indem Sie relevante Fragen basierend auf bestimmten Kategorien stellen. Obwohl die empfohlenen Voraussetzungen und Prüfliste für die Problembehandlung von SQL Server-Konnektivitätsproblemen artikel die wichtigsten zu sammelnden Elemente enthalten, können Die Fragen in diesem Artikel Ihnen helfen, die Ursache der Konnektivitätsprobleme einzugrenzen und effektiv zu beheben.

Notiz

Nicht alle Fragen gelten für alle Probleme. Diese Fragen können Sie jedoch bei der Behandlung von Verbindungsproblemen unterstützen.

Wenn Sie anhand der informationen in diesem Artikel zur genauen Art des Problems in Der Lage sind, null einzugeben, finden Sie unter Übersicht über konsistente Authentifizierungsprobleme in SQL Server für die Art von Fehlern.

Methode zum Sammeln von Daten

Zum Sammeln von Daten können Sie Tools wie Problem steps Recorder (PSR), Netzwerkablaufverfolgung und NETLOGON-Ablaufverfolgung verwenden. Dieser Abschnitt enthält detaillierte Schritte zum Installieren und Konfigurieren einer Kombination aller dieser Tools.

Führen Sie diese Schritte gleichzeitig auf den Clientcomputern und den Servercomputern aus. Wenn es sich bei der Anwendung um eine 3-stufige oder eine n-stufige Architektur handelt, führen Sie die Installation auch auf Zwischenservern aus.

  1. Installieren Sie WireShark auf allen betroffenen Computern, oder verwenden Sie den integrierten NETSH Befehl (Windows 2008 oder höher). Es ist kein Neustart erforderlich.

  2. Aktivieren Sie die NETLOGON-Debugprotokollierung auf dem Client und auf allen Servern, indem Sie den folgenden Befehl ausführen:

    NLTEST /DBFLAG:2080FFFF

  3. Führen Sie nach Möglichkeit eine der folgenden Schritte aus:

    • Starten Sie den Clientcomputer neu.
    • Bitten Sie den Benutzer, sich abzumelden und sich erneut anzumelden.
    • Schließen Sie die Clientanwendung, und öffnen Sie sie erneut.
  4. Starten Sie auf dem Clientcomputer die Problemschrittaufzeichnung (psr.exe), und wählen Sie dann "Datensatz starten" aus.

    Dieses Tool erfasst alle Benutzeraktionen, die dem Problem vorausgehen, und speichert die Ergebnisse in einer .zip Datei.

  5. Starten Sie die Netzwerkaufnahme auf allen Computern.

  6. Wenn Sie NETSH verwenden, führen Sie den NETSH TRACE START CAPTURE=YES TRACEFILE=C:\TEMP%computername%.ETL Befehl aus (verwenden Sie eine entsprechende Datei oder einen geeigneten Pfadnamen).

  7. Leeren Sie den DNS-Cache (Domain Name System) auf allen Computern, indem Sie den IPCONFIG /FLUSHDNS Befehl ausführen.

  8. Löschen Sie den NETBIOS-Cache auf allen Computern, indem Sie den NBTSTAT /RR Befehl ausführen.

  9. Löschen sie Kerberos-Clienttickets, indem Sie den KLIST purge Befehl ausführen.

  10. Löschen Sie Tickets auf jedem Server, indem Sie den KLIST -li 0x3e7 purge Befehl ausführen.

    Notiz

    Geben Sie den -Befehl ein. Kopieren Sie den Bindestrich nicht, und fügen Sie ihn nicht in die Befehlszeile ein, da der Bindestrich möglicherweise in einen langen Gedankenstrich (em) konvertiert wird. Bei KLIST wird die Groß- und Kleinschreibung beachtet.

  11. Reproduzieren Sie das Problem.

  12. Beenden Sie die psr.exe Aufzeichnung.

  13. Beenden Sie die Netzwerkaufzeichnungen. Speichern Sie die aufgezeichnete Datei, indem Sie den Befehl NETSH ausführen: NETSH TRACE STOP mithilfe eines aussagekräftigen Namens. Beispielsweise kann der Name der Datei SQLProd01.netmon.cap sein.

  14. Warten Sie, bis die Eingabeaufforderung erneut angezeigt wird, und schließen Sie dann das Fenster. Schließen Sie das Eingabeaufforderungsfenster nicht, bevor die Eingabeaufforderung angezeigt wird.

  15. Kopieren Sie das NETLOGON-Protokoll in C:\windows\debug\netlogon.log , und geben Sie der Datei einen aussagekräftigen Namen. Beispiel: SQLProd01.netlogon.log.

  16. Deaktivieren Sie die Protokollierung, indem Sie den NLTEST /DBFLAG:0x0 Befehl ausführen.

Sammeln von Daten zum Kategorisieren der Probleme

Die folgenden Fragen sollen Ihnen helfen, die Kategorie zu finden, in die ein Problem fällt, wodurch Sie in die richtige Richtung der Problembehandlung gehen. Wählen Sie die einzelnen Dropdownlisten für verwandte Fragen aus.

Bevor Sie mit der Frage beginnen, stellen Sie sicher, dass alle für die SQL Server-Verbindungen erforderlichen Voraussetzungen erfüllt sind. Weitere Informationen zu den Voraussetzungen finden Sie unter Empfohlene Voraussetzungen und Prüfliste für die Problembehandlung von SQL Server-Konnektivitätsproblemen.

Umfassendere Perspektivenfragen
  • Wirkt sich das Problem nur auf Datenbankverbindungen aus oder wirkt sich auch auf Web- und Dateifreigabeverbindungen aus? Viele Fälle werden dem SQL Server-Team gemeldet, da sie auf dem Datenbankserver auftreten. Es kann jedoch vorkommen, dass das Problem überhaupt nicht mit der Datenbank verknüpft ist und möglicherweise eine allgemeinere Windows- oder Active Directory-Unterstützung erfordert.
  • Gibt es eine Vertrauensstellung zwischen der Benutzerdomäne, der Clientdomäne oder der Serverdomäne, wenn sie anders sind? Ist es extern, gesamtstruktur, unidirektionale, bidirektionale oder keine?
  • Funktioniert die Verbindung ordnungsgemäß, wenn sich alle Ressourcen in derselben Domäne befinden?
  • Ist das Problem zeitweise oder periodisch oder ist es konsistent?
  • Tritt das Problem nur auf, wenn mehrere Benutzer die Anwendung verwenden? Tritt es häufiger auf, wenn mehr Benutzer sie verwenden?
  • Tritt das Problem nur zu bestimmten Tageszeiten oder an bestimmten Wochentagen auf?
  • Tritt das Problem nur auf, wenn eine Sicherung übernommen wird oder die Datenbank erneut indiziert wird?
  • Betrifft das Problem mehrere Server?
  • Betrifft das Problem nur einen Knoten in einem n-Knoten-Cluster? Wenn ja, ist es möglicherweise effizienter, diesen bestimmten Knoten neu zu erstellen.
  • Betrifft das Problem nur einen oder zwei Clients von mehreren? Wenn ja, wäre vielleicht der Wiederaufbau effizienter.
  • Betrifft das Problem nur Named Pipes und nicht TCP (oder umgekehrt)?
  • Tritt das Problem auf, wenn Sie eine SQL Server-Anmeldung und TCP/IP verwenden?
  • Gibt es einen Funktionierenden Fall, der mit dem fehlerhaften Fall verglichen werden kann? Wie unterscheiden sich die Systeme?
Clientcomputer

Verwenden Sie die folgenden Fragen, um Daten über die verschiedenen Komponenten des Clientcomputers zu sammeln. Diese Daten können bei der Identifizierung der Probleme hilfreich sein.

  • Wie lautet der Name, die Edition und die Version des Betriebssystems (WinVer)?

  • Wie lautet der Name und die Version des SQL Server-Treibers oder -Anbieters?

  • Wie lautet der Computername und die IP-Adresse?

  • Was ist der Domänenstatus des Computers? Wenn sie einer Domäne beigetreten ist, was ist der Domänenname?

  • Welche Anwendungsausführungsumgebung wird verwendet? Beispiel: Internetinformationsdienste (IIS), Windows Forms, Web Sphere oder SQL Server Integration Services (SSIS)-Auftrag.

  • Welche Anwendungssprache wird verwendet?

  • Was wird für die Verbindungszeichenfolge verwendet?

  • Welche Art von Authentifizierung wird verwendet, um eine Verbindung mit dem Server herzustellen? Beispiel: New Technology LAN Manager (NTLM), Kerberos, SQL oder Azure Active Directory (AAD).

  • Wenn es sich bei der Anwendung um einen Server oder Dienst handelt, delegiert sie Benutzeranmeldeinformationen an die Back-End-Datenbank?

  • Wird die eingeschränkte Delegierung verwendet?

  • Was sind das Anwendungsdienstkonto und die Domäne?

  • Welcher Diensttyp wird verwendet? Ist es physisch, virtuell oder Cloud? Beispiel: IaaS, Web App, Web Role oder Power BI.

  • Was ist der Clienttreiber? Ist es Java Database Connectivity (SUSE) oder wird sie unter Linux oder Mac ausgeführt?

    Notiz

    Die Workflows sind derzeit stärker windowsorientiert.

  • Betrifft das Problem nur Legacyanbieter, z Provider=SQLOLEBD . B. oder Driver={SQL Server}, und nicht SQL Native Client und spätere Treiber (oder umgekehrt)?

  • Tritt das Problem nur in einer Anwendung oder in mehreren Anwendungen auf?

  • Schlägt eine UDL-Datei (Universelle Datenverknüpfung) fehl, wenn versucht wird, eine Verbindung mit anderen SQL Server-basierten Servern herzustellen, oder tritt nur der Server mit dem Problem auf?

  • Meldet sich der Benutzer beim SQL Server-basierten Server an und versucht, eine Verbindung mit SQL Server Management Studio (SSMS) herzustellen?

  • Tritt das Problem nur auf, wenn Sie den NETBIOS-Namen des Servers verwenden und nicht, wenn Sie den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) (oder umgekehrt) verwenden? Funktioniert dies mithilfe der IP-Adresse?

  • Hat der Client unter Windows 10 Enterprise Edition das Credential Guard-Feature aktiviert? Wenn ja, kann sich dies auf vollständige Delegierungsszenarien auswirken.

Protokollieren von Informationen

Verwenden Sie die folgenden Fragen, um Daten zu den Protokolldateien zu sammeln:

  • Was ist die genaue Fehlermeldung im Aufrufstapel?
  • Wurde das Protokoll aus den SQL Server ERRORLOG - und ERRORLOG.1-Dateien gesammelt?
  • Wurden die Anwendungsereignisprotokolle vom Client und Server erfasst?
  • Wurden die Protokolldateien und Konfigurationsdateien der Clientanwendung gesammelt? Beispiel: web.config, rsreportserver.config, *.config oder *.ini.
  • Gibt es eine verfügbare visuelle Darstellung des Netzwerks, das die Computer, Router usw. anzeigt?
Neue oder vorhandene Probleme

Bezieht sich auf die Ermittlung, ob es sich bei dem Problem um eine kürzliche Entwicklung handelt oder ob es eine Weile lang beibehalten wurde:

  • Ist das Problem immer vorhanden (neue Installation) oder funktionierte die Anwendung seit einiger Zeit ordnungsgemäß, bevor es kürzlich nicht mehr funktionierte?
  • Wenn die Anwendung für die ordnungsgemäße Funktion verwendet wurde, welche Änderungen an der Umgebung vorgenommen wurden? Beispielsweise installierte Updates, aktualisierte Domänencontroller, Änderungen in den Firewalleinstellungen, außer Betrieb genommene Domänencontroller oder ein Wechsel zu einer anderen OU in der Domäne.
Servercomputer

Bei einem verknüpften Server sammeln Sie Serverinformationen sowohl für den Mid-Tier-Server als auch für den Back-End-Server. Bei einem IIS-to-SQL-Delegierungsproblem sammeln Sie Informationen auf dem Webserver, einschließlich der Web.config - und Authentifizierungseinstellungen.

  • Wie lautet der Name des Betriebssystemnamens, der Edition und der Version (Winver)?
  • Wie lautet der Name und die Version der Datenbank?
  • Wie lautet der Name des Computers?
  • Was ist die IP-Adresse?
  • Was ist der Domänenname, wenn der Computer einer Domäne beigetreten ist?
  • Was ist das SQL Server-Dienstkonto und die Domäne?
  • Wie lautet der Name der SQL Server-Instanz?
  • Welche Protokolle sind aktiviert?
  • Welcher Port überwacht der Server?
  • Wie lautet der Name der Serverpipeline? Diese Informationen finden Sie im Fehlerprotokoll.
  • Welche Art von Umgebung wird verwendet? Ist es physisch, virtuell oder Cloud? Beispiel: IaaS (SQL in einem virtuellen Azure-Computer (VM)) oder PaaS (Azure SQL-Datenbank, SQL verwaltete Instanz (MI)).
  • Wird die Datenbank als eigenständige, gruppierte, gespiegelte oder immer aktivierte Datenbank bereitgestellt?
  • Wie lautet der Name und die IP-Adresse des Failoverpartners?
  • Wie lautet der Name oder der Listenername und -port des virtuellen Clusters?
  • Was ist die virtuelle IP oder Listener-IP?
  • Auf welchem Betriebssystem ist die Datenbank installiert? Ist es Windows, Linux oder Mac? Dies kann sich auf die Datensammlung auswirken.
  • Wo befindet sich der Speicherort der Datenbank? Ist dies in Azure?
  • Was ist der aktuelle Status des Servers im Hinblick auf das neueste Service Pack und das kumulative Update? Es gibt keinen Punkt beim Debuggen eines Problems, das bereits behoben wurde.
  • Wurde SQL Server kürzlich aktualisiert, um Transport Layer Security (TLS) 1.2 zu unterstützen? Wurden die Clients ebenfalls aktualisiert? Wurde TLS 1.0 deaktiviert?
  • Wie lautet der aktuelle Status des SQL Server-Diensts? Wird sie ausgeführt?
  • Wie lautet der Status des SQL-Browserdiensts? Wird sie ausgeführt?
  • Was ist die Spezifität des Problems mit einem Dienstkonto? Behebt die Ausführung des Servers mit einem anderen Dienstkonto das Problem?
Benutzerinformationen

Sammeln Sie die folgenden Benutzerdetails:

  • Meldet sich der Benutzer direkt beim Clientcomputer an oder greift remote darauf zu? Verwendet der Benutzer beispielsweise einen Browser?
  • Ist der Benutzer ein Dienst, z. B. SQL-Agent? Wird die Prozessidentität verwendet oder werden gespeicherte Anmeldeinformationen verwendet?
  • Welche Art der Authentifizierung wird verwendet, um eine Verbindung mit der Clientanwendung herzustellen? Ist es Windows, Forms-Authentifizierung oder AAD?
  • Stellt der Benutzer über integrierte Sicherheit eine Verbindung mit dem Server her?
  • Was sind der Benutzername und der Domänenname?

Wenn der Benutzer remote zur Clientanwendung ist, erfassen Sie die folgenden Details:

  • Wie lautet der Computername und die IP-Adresse?
  • Ist der Computer einer Domäne beigetreten? Wenn ja, was ist der Domänenname?
  • Stellt der Benutzer eine Verbindung über ein VPN oder einen Proxyserver her? Tritt das Problem auf, wenn eine der Methoden direkt verbunden ist?
  • Wenn der Benutzer eine Verbindung mit einem Webserver herstellt, wird der Serverlastenausgleich ausgeglichen?
  • Werden Haftsitzungen oder Sitzungsaffinität verwendet?
  • Melden sich der Benutzer bei einem Terminalserver oder Sprungfeld an und greift auf die Anwendung zu?
  • Betrifft das Problem nur Benutzer in bestimmten Organisationseinheiten (OUs)?
  • Hat der Benutzer, der Client oder der Server in Active Directory zu einer anderen Organisationseinheit (OU) verschoben?
  • Betrifft das Problem nur nicht administrative Benutzer?
  • Betrifft das Problem alle oder nur einige der Benutzer in einer bestimmten Domäne?

Siehe auch

Informationen zum Haftungsausschluss von Drittanbietern

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.