Erfassen einer Ablaufverfolgung im Assistenten für Datenbankexperimente
Hinweis
Dieses Tool wird am 15. Dezember 2024 ausgemustert. Wir werden dieses Tool für alle auftretenden Probleme in Zukunft nicht mehr unterstützen und keine Programmfehlerbehebung oder weitere Updates herausgeben.
Sie können den Assistenten für Datenbankexperimente (DEA) verwenden, um eine Ablaufverfolgungsdatei mit einem Protokoll erfasster Serverereignisse zu erstellen. Ein erfasstes Serverereignis ist ein Ereignis, das während eines bestimmten Zeitraums auf einem bestimmten Server auftritt. Eine Ablaufverfolgungserfassung muss einmal pro Server ausgeführt werden.
Bevor Sie eine Ablaufverfolgungserfassung starten, sichern Sie alle Zieldatenbanken.
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
Wählen Sie im DEA auf der linken Navigationsleiste das Kamerasymbol aus und wählen Sie dann auf der Seite Alle Erfassungen die Option Neue Erfassung aus.
Geben Sie auf der Seite Neue Erfassung unter Erfassungsdetails die folgenden Informationen ein oder wählen Sie sie aus:
Erfassungsname: Geben Sie einen Namen für die Ablaufverfolgungsdatei Ihrer Erfassung ein.
Format: Geben Sie das Format (Trace oder XEvents) für die Erfassung an.
Dauer: Wählen Sie aus, wie lange (in Minuten) die Ablaufverfolgungserfassung ausgeführt werden soll.
Erfassungsspeicherort: Wählen Sie den Zielpfad für die Ablaufverfolgungsdatei aus.
Hinweis
Der Dateipfad zur Ablaufverfolgungsdatei muss sich auf dem Computer befinden, 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.
Bestätigen Sie, dass Sie ein Backup erstellt haben, indem Sie das Kontrollkästchen Ja, ich habe die Sicherung manuell durchgeführt... auswählen.
Geben Sie unter Erfassungsdetails folgende Informationen ein oder wählen Sie sie aus:
- Servertyp: Geben Sie den Typ des SQL Servers an (SqlServer, AzureSqlDb, AzureSqlManagedInstance).
- Servername: Geben Sie den Servernamen oder die IP-Adresse Ihres SQL Servers an.
- Authentifizierungstyp: Wählen Sie Windows als Authentifizierungstyp aus.
- Datenbankname: Geben Sie einen Namen für eine Datenbank ein, auf der eine Datenbankablaufverfolgung gestartet werden soll. Wenn Sie keine Datenbank angeben, wird die Ablaufverfolgung auf allen Datenbanken am Server erfasst.
Aktivieren oder deaktivieren Sie Ihrem Szenario entsprechend die Kontrollkästchen Verbindung verschlüsseln und Serverzertifikat vertrauen.
Starten der Ablaufverfolgungserfassung
Wählen Sie nach dem Eingeben oder Auswählen der erforderlichen Informationen Starten aus, um die Ablaufverfolgungserfassung zu beginnen.
Wenn die von Ihnen eingegebenen Informationen gültig sind, beginnt der Ablaufverfolgungserfassungsprozess. 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 Starten aus.
Während die Ablaufverfolgungserfassung ausgeführt wird, wird unter Erfassungsdetails der Status und der Fortschritt des Ablaufverfolgungsprozesses angezeigt.
Wenn die Ablaufverfolgungserfassung abgeschlossen ist, wird die neue Ablaufverfolgungsdatei (.trc) am Erfassungsspeicherort gespeichert, den Sie während der Erstkonfiguration angegeben haben.
Die Ablaufverfolgungsdatei enthält Ablaufverfolgungsergebnisse 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 Ablaufverfolgungserfassung
Nachfolgend werden einige häufig gestellte Fragen zur Ablaufverfolgungserfassung im DEA beantwortet.
F: Welche Ereignisse werden erfasst, wenn ich eine Ablaufverfolgungserfassung in einer Produktionsdatenbank ausführe?
In der folgenden Tabelle sind die Ereignisse und die entsprechenden Spaltendaten aufgeführt, die DEA für Ablaufverfolgungen sammelt:
Veranstaltungsname | Textdaten (1) | Binärdaten (2) | Datenbank-ID (3) | Hostname (8) | Anwendungsname (10) | Anmeldename (11) | SPID (12) | Startzeit (14) | Endzeit (15) | Datenbankname (35) | Ereignissequenz (51) | IsSystem (60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RPC:Completed (10) | * | * | * | * | * | * | * | * | * | * | * | |
RPC:Starting (11) | * | * | * | * | * | * | * | * | * | * | ||
RPC-Ausgabeparameter (100) | * | * | * | * | * | * | * | * | * | * | ||
SQL:BatchCompleted (12) | * | * | * | * | * | * | * | * | * | * | * | |
SQL:BatchStarting (13) | * | * | * | * | * | * | * | * | * | * | ||
Überwachungsanmeldung (14) | * | * | * | * | * | * | * | * | * | * | * | |
Überwachungsabmeldung (15) | * | * | * | * | * | * | * | * | * | * | * | |
ExistingConnection (17) | * | * | * | * | * | * | * | * | * | * | * | |
CursorOpen (53) | * | * | * | * | * | * | * | * | * | * | ||
CursorPrepare (70) | * | * | * | * | * | * | * | * | * | * | ||
SQL vorbereiten (71) | * | * | * | * | * | * | * | * | * | |||
Vorbereitetes SQL ausführen (72) | * | * | * | * | * | * | * | * | * | |||
CursorExecute (74) | * | * | * | * | * | * | * | * | * | * | ||
CursorUnprepare (77) | * | * | * | * | * | * | * | * | * | * | ||
CursorClose (78) | * | * | * | * | * | * | * | * | * | * |
F: Wir die Leistung meines Produktionsserver beeinflusst, während die Ablaufverfolgungserfassung ausgeführt wird?
Ja, während der Ablaufverfolgungssammlung wird die Leistung minimal beeinflusst. Bei unseren Tests wurden etwa eine etwa 3 %ige Speicherauslastung festgestellt.
F: Welche Arten von Berechtigungen sind zum Erfassen von Ablaufverfolgungen in einer Produktionsworkload erforderlich?
- Windows-Benutzer:innen die den Ablaufverfolgungsvorgang in der DEA-Anwendung ausführen, müssen über SysAdmin-Rechte auf dem Computer verfügen, auf dem SQL Server ausgeführt wird.
- Das Dienstkonto, das am Computer verwendet wird, auf dem SQL Server ausgeführt wird, muss Schreibzugriff auf den angegebenen Ablaufverfolgungsdateipfad haben.
F: Kann ich Ablaufverfolgungen für den gesamten Server oder nur für eine einzelne Datenbank erfassen?
Mithilfe des DEAs können Sie Ablaufverfolgungen für alle Datenbanken am Server oder für eine einzelne Datenbank erfassen.
F: Ich habe einen Verbindungsserver 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 Verbindungsserverabfragen. Um eine Ablaufverfolgungserfassung für den gesamten Server auszuführen, lassen Sie das Feld Datenbankname unter Neue Erfassung leer.
F: Was ist die empfohlene Mindestzeit für Produktionsworkload-Ablaufverfolgungen?
Es wird empfohlen, eine Zeit auszuwählen, die Ihre gesamte Workload am besten darstellt. Auf diese Weise wird die Analyse für alle Abfragen in Ihrer Workload ausgeführt.
F: Wie wichtig ist es, ein Datenbankbackup direkt vor dem Starten einer Ablaufverfolgungserfassung durchzuführen?
Bevor Sie eine Ablaufverfolgungserfassung starten, sichern Sie alle Ihre Zieldatenbanken. Die erfasste Ablaufverfolgung in Ziel 1 und Ziel 2 wird wiedergegeben. Wenn der Datenbankstatus nicht identisch ist, sind die Ergebnisse des Experimentierens verzerrt.
F: Kann ich XEvents anstelle von Ablaufverfolgungen sammeln und XEvents wiedergeben?
Ja. DEA unterstützt XEvents. Laden Sie die aktuelle Version von DEA herunter und probieren Sie es aus.
Problembehandlung bei Ablaufverfolgungserfassungen
Wenn beim Ausführen einer Ablaufverfolgungserfassung ein Fehler angezeigt wird, bestätigen Sie Folgendes:
- Der Namen des Computers, auf dem SQL Server ausgeführt wird, ist gültig. Um das zu tun, versuchen Sie mithilfe von SQL Server Management Studio (SSMS) eine Verbindung zum Computer, auf dem SQL Server ausgeführt wird, herzustellen.
- Ihre Firewallkonfiguration blockiert keine Verbindungen mit dem Computer, auf dem SQL Server ausgeführt wird.
- Die Benutzer:innen verfügen über die Berechtigungen, die in den Häufig gestellten Fragen zur Wiedergabe aufgelistet sind.
- Der Ablaufverfolgungsname folgt nicht der Standard-Rolloverkonvention (Capture_1). Probieren Sie stattdessen Ablaufverfolgungsnamen wie Capture_1A oder Capture1 aus.
Nachfolgend finden Sie einige mögliche Fehler, die angezeigt werden können, und Lösungen zur Behandlung dieser:
Mögliche Fehler: | Lösung |
---|---|
Die Ablaufverfolgung für das SQL Server-Ziel 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 „Sql-Fehlercode (53)“ hat. | Die Benutzer:innen, die das DEA-Tool ausführen, müssen Zugriff auf den Computer haben, auf dem SQL Server ausgeführt wird. Den Benutzer:innen muss die Sysadmin-Rolle zugewiesen werden. |
Die Ablaufverfolgung für das SQL Server-Ziel 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 „Sql-Fehlercode (19062)“ hat. | 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. NETZWERKDIENST). 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 am Zielserver ausgeführt. | Eine aktive Ablaufverfolgung wird bereits am Zielserver ausgeführt. Sie können keine neue Ablaufverfolgung starten, wenn bereits eine serverweite Ablaufverfolgung ausgeführt wird. |
Die angeforderte Datenbank kann nicht zum Erfassen der Ablaufverfolgung geöffnet werden. Dieser Fehler kann durch einen falschen Datenbanknamen verursacht werden. | Die angegebene Datenbank ist nicht vorhanden oder für aktuelle Benutzer:innen nicht zugänglich. Verwenden Sie den korrekten Datenbanknamen. |
Falls andere Fehler mit der Bezeichnung Sql-Fehlercode angezeigt werden, finden Sie unter Datenbank-Engine-Fehler ausführliche Beschreibungen.
Siehe auch
- Informationen zum Konfigurieren der Distributed Replay-Tools in SQL Server vor der Wiedergabe einer erfassten Ablaufverfolgung finden Sie unter Konfigurieren von Distributed Replay für den Assistenten für Datenbankexperimente.