Freigeben über


Erfassen einer Spur im Assistent für Datenbankexperimente

Anmerkung

Dieses Tool wurde am 15. Dezember 2024eingestellt. Wir haben dieses Tool für alle auftretenden Probleme nicht mehr unterstützt, und es werden keine Fehlerkorrekturen oder weitere Updates ausgeführt.

Sie können den Datenbankexperiments-Assistenten (DEA) verwenden, um eine Ablaufverfolgungsdatei mit einem Protokoll der erfassten Serverereignisse zu erstellen. Ein erfasstes Serverereignis ist ein Ereignis, das während eines bestimmten Zeitraums auf einem bestimmten Server auftritt. Eine Protokollerfassung muss einmal pro Server ausgeführt werden.

Bevor Sie mit der Protokollierung beginnen, stellen Sie sicher, dass Sie von allen Zieldatenbanken ein Backup erstellen.

Die Abfragezwischenspeicherung in SQL Server wirkt sich möglicherweise auf Auswertungsergebnisse aus. Es wird empfohlen, den SQL Server-Dienst (MSSQLSERVER) in der Dienstanwendung neu zu starten, um die Konsistenz der Auswertungsergebnisse zu verbessern.

Konfigurieren einer Ablaufverfolgungserfassung

  1. Wählen Sie in DEA auf der linken Navigationsleiste das Kamerasymbol aus, und wählen Sie dann auf der Seite "Alle Aufzeichnungen" "Neue Aufnahme"aus.

    Screenshot der Erstellung einer Aufnahme in DEA.

  2. Geben Sie auf der Seite Neue Erfassung unter Erfassungsdetailsdie folgenden Informationen ein oder wählen Sie diese aus:

    • Erfassungsname: Geben Sie einen Namen für die Ablaufverfolgungsdatei für die Aufnahme ein.

    • Format: Geben Sie das Format (Trace oder XEvents) für die Aufnahme an.

    • Dauer: Wählen Sie die Dauer (in Minuten) aus, die die Ablaufverfolgungserfassung ausführen soll.

    • Aufnahmespeicherort: Wählen Sie den Zielpfad für die Protokolldatei aus.

      Anmerkung

      Der Dateipfad zur Trace-Datei muss auf dem Computer liegen, auf dem SQL Server ausgeführt wird. Wenn der SQL Server-Dienst nicht für ein bestimmtes Konto festgelegt ist, benötigt der Dienst möglicherweise Schreibberechtigungen für den angegebenen Ordner, damit die Ablaufverfolgungsdatei geschrieben werden kann.

  3. Vergewissern Sie sich, dass Sie eine Sicherung erstellt haben, indem Sie das Kontrollkästchen Ja, ich habe die Sicherung manuell erstellt... auswählen.

  4. Geben Sie unter Erfassungsdetailsdie folgenden Informationen ein, oder wählen Sie sie aus:

    • Servertyp: Geben Sie den Typ des SQL Server an (SqlServer, AzureSqlDb, AzureSqlManagedInstance).
    • Servername: Geben Sie den Servernamen oder die IP-Adresse Ihres SQL Server an.
    • Authentifizierungstyp: Wählen Sie für den Authentifizierungstyp Windowsaus.
    • Datenbankname: Geben Sie einen Namen für eine Datenbank ein, für die eine Datenbankablaufverfolgung gestartet werden soll. Wenn Sie keine Datenbank angeben, wird die Ablaufverfolgung auf allen Datenbanken auf dem Server erfasst.
  5. Aktivieren oder deaktivieren Sie die Verschlüsselung der Verbindung und Serverzertifikat vertrauen Kontrollkästchen, je nach Ihrem Szenario geeignet.

    Screenshot der Seite

Beginnen Sie die Ablaufverfolgungserfassung

  1. Nachdem Sie die erforderlichen Informationen eingegeben oder ausgewählt haben, wählen Sie Start aus, um die Ablaufverfolgung zu starten.

    Wenn die eingegebenen Informationen gültig sind, beginnt der Prozess der Ablaufverfolgungserfassung. Andernfalls werden Textfelder mit ungültigen Einträgen rot hervorgehoben. Wenn Fehler auftreten, korrigieren Sie alle erforderlichen Einträge, und wählen Sie dann erneut Start aus.

    Während die Trace-Erfassung ausgeführt wird, wird unter Erfassungsdetailsder Status und der Fortschritt des Trace-Erfassungsvorgangs angezeigt.

    Screenshot des Bildschirmaufnahmefortschritts.

  2. Wenn die Ablaufverfolgungserfassung abgeschlossen ist, wird die neue Ablaufverfolgungsdatei (TRC) im Aufnahmespeicherort gespeichert, Sie während der Erstkonfiguration spezifisch sind.

    Screenshot der Aufzeichnung der abgeschlossenen Ablaufverfolgung.

    Die Ablaufverfolgungsdatei enthält die Ergebnisse der Aktivität einer SQL Server-Datenbank. TRC-Dateien sollen weitere Informationen zu Fehlern bereitstellen, die von SQL Server erkannt und gemeldet werden.

Häufig gestellte Fragen zur Erfassung von Traces

Im Folgenden werden einige häufig gestellte Fragen zur Tracerfassung in DEA aufgeführt.

Welche Ereignisse werden erfasst, wenn ich eine Ablaufverfolgungserfassung in einer Produktionsdatenbank ausführt?

In der folgenden Tabelle sind die Ereignisse und Spaltendaten entsprechend aufgeführt, die DEA für Traces sammelt.

Ereignisname Textdaten (1) Binäre Daten (2) Datenbank-ID (3) Hostname (8) Anwendungsname (10) Anmeldename (11) SPID (12) Startzeit (14) Endzeitpunkt (15) Datenbankname (35) Ereignissequenz (51) IsSystem (60)
RPC:Completed (10) Nein Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
RPC:Startet (11) Nein Ja Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
RPC-Ausgabeparameter (100) Ja Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
SQL:BatchCompleted (12) Ja Nein Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
SQL:BatchStarting (13) Ja Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
Überwachungsanmeldung (14) Ja Ja Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
Audit-Abmeldung (15) Ja Nein Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
ExistingConnection (17) Ja Ja Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
CursorOpen (53) Ja Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
CursorPrepare (70) Ja Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
SQL vorbereiten (71) Nein Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
Exec Prepared SQL (72) Nein Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
CursorExecute (74) Ja Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
CursorUnprepare (77) Ja Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja
CursorClose (78) Ja Nein Ja Ja Ja Ja Ja Ja Nein Ja Ja Ja

Gibt es einen Leistungseffekt auf meinem Produktionsserver, wenn die Ablaufverfolgungserfassung ausgeführt wird?

Ja, bei der Sammlung von Ablaufverfolgungen gibt es einen minimalen Leistungseinfluss. Bei unseren Tests fanden wir etwa einen 3% Arbeitsspeicherdruck.

Welche Art von Berechtigungen sind zum Erfassen von Traces in einer Produktionsumgebung erforderlich?

Der Windows-Benutzer, der die Ablaufverfolgung in der DEA-Anwendung durchführt, muss sysadmin-Rechte auf dem Computer haben, auf dem SQL Server läuft.

Das Dienstkonto, das auf dem Computer verwendet wird und auf dem SQL Server ausgeführt wird, muss Schreibzugriff auf den Pfad der angegebenen Ablaufverfolgungsdatei haben.

Kann ich Ablaufverfolgungen für den gesamten Server oder nur für eine einzelne Datenbank erfassen?

Mithilfe von DEA können Sie Ablaufverfolgungen für alle Datenbanken auf dem Server oder für eine einzelne Datenbank erfassen.

Ich habe einen verknüpften Server in meiner Produktionsumgebung konfiguriert. Werden diese Abfragen in den Ablaufverfolgungen angezeigt?

Wenn Sie eine Ablaufverfolgungserfassung für den gesamten Server ausführen, erfasst die Ablaufverfolgung alle Abfragen, einschließlich der verknüpften Serverabfragen. Wenn Sie eine Ablaufverfolgungserfassung für den gesamten Server ausführen möchten, lassen Sie das Feld Datenbankname unter Neue Aufnahme leer.

Es wird empfohlen, eine Zeit auszuwählen, die die gesamte Arbeitsauslastung am besten darstellt. Auf diese Weise wird die Analyse für alle Abfragen in Ihrer Workload ausgeführt.

Wie wichtig ist es, unmittelbar bevor ich eine Nachverfolgung starte, eine Datenbanksicherung zu erstellen?

Bevor Sie mit der Protokollierung beginnen, stellen Sie sicher, dass Sie alle Zieldatenbanken sichern. Die erfasste Ablaufverfolgung in Ziel 1 und Ziel 2 wird wiedergegeben. Wenn der Datenbankstatus nicht identisch ist, sind die Ergebnisse der Experimentierung schief.

Kann ich XEvents anstelle von Ablaufverfolgungen sammeln, und kann ich XEvents wiedergeben?

Ja. DEA unterstützt XEvents. Laden Sie die neueste Version von DEA herunter, und probieren Sie es aus.

Problembehandlung bei Protokollaufzeichnungen

Wenn beim Ausführen einer Ablaufverfolgungserfassung ein Fehler angezeigt wird, überprüfen Sie Folgendes:

  • Der Name des Computers, auf dem SQL Server ausgeführt wird, ist gültig. Um dies zu bestätigen, versuchen Sie, eine Verbindung zu dem Computer herzustellen, auf dem SQL Server ausgeführt wird, indem Sie SQL Server Management Studio (SSMS) verwenden.

  • Ihre Firewallkonfiguration blockiert keine Verbindungen mit dem Computer, auf dem SQL Server ausgeführt wird.

  • Der Benutzer verfügt über die Berechtigungen, die in der Häufig gestellte Fragen (FAQ)aufgeführt sind.

  • Der Protokollierungsname folgt nicht der Standard-Übertragungs-Konvention (Capture_1). Probieren Sie stattdessen Namen für Aufzeichnungen wie Capture_1A oder Capture1 aus.

Im Folgenden finden Sie einige mögliche Fehler, die Möglicherweise angezeigt werden, und Lösungen zum Beheben dieser Fehler:

Mögliche Fehler Lösung
Die Ablaufverfolgung für den Ziel-SQL-Server kann nicht gestartet werden. Überprüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen und ob das SQL-Server-Konto Schreibzugriff auf den angegebenen Ablaufverfolgungsdateipfad hat. SQL-Fehlercode (53). Der Benutzer, der das DEA-Tool ausführt, muss Zugriff auf den Computer haben, auf dem SQL Server ausgeführt wird. Dem Benutzer muss die Sysadmin-Rolle zugewiesen werden.
Die Ablaufverfolgung auf dem Ziel-SQL-Server kann nicht gestartet werden. Überprüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen und ob das SQL-Server-Konto Schreibzugriff auf den angegebenen Ablaufverfolgungspfad hat. SQL-Fehlercode (19062) Der angegebene Ablaufverfolgungspfad ist möglicherweise nicht vorhanden, oder der Ordner verfügt nicht über Schreibberechtigungen für das Konto, unter dem SQL Server-Dienste ausgeführt werden (z. B. NETWORK SERVICE). Der Pfad muss vorhanden sein, und er muss über die erforderlichen Berechtigungen verfügen, damit die Ablaufverfolgung gestartet werden kann.
Eine DEA-Ablaufverfolgung wird derzeit auf dem Zielserver ausgeführt. Eine aktive Ablaufverfolgung wird bereits auf dem Zielserver ausgeführt. Sie können keine neue Ablaufverfolgung starten, wenn bereits eine serverweite Ablaufverfolgung ausgeführt wird.
Die angeforderte Datenbank lässt sich nicht öffnen, um die Ablaufverfolgung zu erfassen. Dieser Fehler kann durch einen falschen Datenbanknamen verursacht werden. Die angegebene Datenbank ist nicht vorhanden oder für den aktuellen Benutzer nicht zugänglich. Verwenden Sie den richtigen Datenbanknamen.

Wenn Sie weitere Fehler mit der Bezeichnung SQL-Fehlercodesehen, finden Sie unter Datenbankmodulereignisse und -fehler ausführliche Beschreibungen.