Datenbankleistung mit erweiterten Ereignissen analysieren

Auf dieser Seite wird die Verwendung von Extended Events (XEvents) auf Ihren Instanzen beschrieben.

Cloud SQL unterstützt die Verwendung von XEvents zum Monitoring, zur Identifizierung und Fehlerbehebung der Leistung Ihrer Datenbank. Erstellen Sie dazu XEvent-Sitzungen und lesen Sie XEvent-Ausgabedateien. Sie können die XEvent-Ausgabedateien entweder auf der Instanz lesen oder die XEvent-Dateien aus einem Cloud Storage-Bucket herunterladen.

Hinweise

Wenn Sie Ihre XEvent-Dateien in einen Cloud Storage-Bucket hochladen möchten, erstellen Sie einen Bucket in Ihrem Google Cloud-Konto.

Best Practices

  • Führen Sie einen der folgenden Schritte aus, um zu vermeiden, dass große Dateien zwischen Regionen übertragen werden:
    • Multiregionale Cloud Storage-Buckets erstellen
    • Cloud Storage-Ziel-Bucket in derselben Region wie die Instanz einrichten
  • Aktivieren Sie vor der Verwendung von XEvents automatische Speichererweiterungen. XEvent-Ausgabedateien benötigen je nach Gesamtgröße und Aufbewahrungsintervall möglicherweise viel Speicherplatz.
  • Richten Sie eine Datenaufbewahrungsrichtlinie für Ihren Cloud Storage-Bucket ein, um nicht zu viele XEvent-Dateien über einen längeren Zeitraum aufzubewahren.
  • Wenn Sie eine XEvent-Sitzung über die SSMS-Benutzeroberfläche erstellen, aber einige Felder für Eingabewerte nicht angezeigt werden, passen Sie die Größe des Fensters XEvent-Sitzung erstellen an.

XEvent-Sitzungen erstellen

XEvents wird auf Ihren Instanzen automatisch aktiviert.

Definieren Sie mit dem Befehl CREATE EVENT SESSION neue XEvent-Sitzungen. Sie können auch die Benutzeroberfläche von SQL Server Management Studio (SSMS) verwenden, um XEvent-Sitzungen zu erstellen.

Cloud SQL erzwingt die folgenden Parameter für alle XEvent-Sitzungen:

Parameter Beschreibung Zulässige Werte
FILENAME Gibt den Dateinamen und den Pfad zum Speichern von XEvents-Sitzungsdaten an. Jeder Pfad, der mit /var/opt/mssql/xevents/ beginnt
MAX_FILE_SIZE Gibt die maximale Größe jeder Ausgabedatei an, bevor eine neue Datei erstellt wird. Mindestens 10 MB
Maximal 1 GB
MAX_MEMORY Gibt die maximale Arbeitsspeichermenge an, die der Sitzung für die Ereigniszwischenspeicherung zugewiesen werden soll. Mindestens 4 MB
Maximal 8 MB
MAX_DISPATCH_LATENCY Gibt die maximale Zeit in Sekunden an, die Ereignisse in der Ereignisweiterleitungswarteschlange verbleiben können, bevor sie an das Ziel gesendet werden. Mindestens 1 Sek.
Maximal 30 Sek.
MAX_EVENT_SIZE Legt die maximale Größe jedes Ereignisses in Byte fest. Mindestens 4 MB
Maximal 8 MB

Parameter für die XEvent-Sitzungskonfiguration

Sie können XEvent-Sitzungen konfigurieren, indem Sie die folgenden Parameter als benutzerdefinierte Flags verwenden:

Parameter Beschreibung
cloud sql xe bucket name Geben Sie den Cloud Storage-Bucket an, in den Sie die XEvent-Sitzungsausgabe hochladen möchten. Wenn diese nicht angegeben ist, lädt Cloud SQL die XEvent-Sitzungsausgabedaten nicht in Cloud Storage hoch.
cloud sql xe output total disk size (mb) Geben Sie die Menge des Speicherplatzes an, der für die Ausgabe aller XEvent-Sitzungen reserviert werden soll. Wenn diese nicht angegeben ist, verwendet Cloud SQL einen Standardspeicherplatz von 512 MB. Wenn die XEvent-Ausgabedateien mehr Speicherplatz als der Wert von cloud sql xe output total disk size (mb) belegen, entfernt Cloud SQL diese Dateien vom Laufwerk.
cloud sql xe file retention (mins) Geben Sie die Aufbewahrungsdauer auf der Instanz in Minuten für Dateien an, die von den Dateizielen von XEvent-Sitzungen generiert wurden. Wenn dieser Wert nicht angegeben ist, verwendet Cloud SQL einen Standardwert von 7 Tagen.
cloud sql xe upload interval (mins) Geben Sie das Uploadintervall für XEvent-Dateien an, die in Cloud Storage hochgeladen werden. Wenn dieses nicht angegeben ist, verwendet Cloud SQL einen Standardwert von 10 Minuten.

Weitere Informationen zum Festlegen dieser Flags finden Sie unter Datenbank-Flags konfigurieren.

XEvent-Sitzungsausgabedateien lesen

Sie können XEvent-Sitzungsausgabedateien entweder aus einer Cloud SQL-Instanz oder einem Cloud Storage-Bucket lesen.

XEvent-Ausgabedateien aus einer Instanz lesen

Verwenden Sie die Funktion sys.fn_xe_file_target_read_file, um die Daten aus einer XEvent-Datei abzurufen, die in einer XEvent-Sitzung erstellt wird.

Beispiel:

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

XEvent-Ausgabedateien aus einem Bucket lesen

Laden Sie die Dateien aus dem Bucket in eine SQL Server-Instanz herunter, um XEvent-Ausgabedateien aus einem Cloud Storage-Bucket zu lesen. Sie können Daten von einer der folgenden Instanzen herunterladen:

  • Eine Compute Engine-Windows-Instanz
  • Eine Compute Engine-Linux-Instanz
  • Ein anderer Instanztyp, auf dem SQL Server ausgeführt wird

Übertragen Sie dann die XEvent-Ausgabedateien aus dem Bucket an einen für diese Instanz zugänglichen Speicherort, z. B. das lokale Laufwerk. Führen Sie als Nächstes die Funktion sys.fn_xe_file_target_read_file mit einem Konto aus, das die Berechtigung VIEW SERVER STATE auf dem Server hat, um Informationen aus der XEvent-Ausgabedatei zurückzugeben. Weitere Informationen zu Berechtigungen finden Sie unter Berechtigungen.

XEvent-Sitzungen überwachen

Sie können sitzungsbezogene XEvent-Aktivitäten über die Datei xevents.log für die folgenden Vorgänge beobachten:

  • Die XEvent-Ausgabedateien wurden vom Laufwerk entfernt, die nicht in Cloud Storage hochgeladen wurden und mehr Speicherplatz belegen als der mit cloud sql xe output total disk size (mb) verknüpfte Wert.
  • Die vom Laufwerk entfernten XEvent-Ausgabedateien, die nicht in Cloud Storage hochgeladen wurden und älter als der mit cloud sql xe file retention verknüpfte Wert sind.

Hinweise zu Lesereplikaten

Dieser Abschnitt enthält Informationen zu XEvent-Sitzungen für neue und vorhandene Lesereplikate.

Für neue Lesereplikate

  • Alle XEvent-Sitzungskonfigurationsparameter, die über Datenbank-Flags auf der ursprünglichen Instanz übergeben werden, sind auf dem neu erstellten Lesereplikat verfügbar.
  • Alle XEvent-Sitzungen, die auf der ursprünglichen Instanz vorhanden sind, wenn die Lesereplikate erstellt werden, sind auf dem Lesereplikat verfügbar. Beachten Sie, dass XEvent-Sitzungen auf dem Lesereplikat manuell gestartet werden müssen, es sei denn, sie sind für den automatischen Start konfiguriert. Weitere Informationen finden Sie unter XEvent-Sitzungen erstellen.
  • Wenn Sie eine primäre Instanz klonen, werden alle Datenbank-Flags, die auf der primären Instanz angezeigt werden, an die geklonte Instanz weitergegeben. Außerdem müssen Sie dem Dienstkonto der geklonten Instanz Berechtigungen erteilen, um wieder auf den Cloud Storage-Bucket zugreifen zu können.

Für vorhandene Lesereplikate

  • XEvent-Sitzungskonfigurationsparameter, die über Datenbank-Flags an die ursprüngliche Instanz übergeben werden, werden nicht an Lesereplikate weitergegeben.
  • Auf der ursprünglichen Instanz erstellte XEvent-Sitzungen werden nicht an Lesereplikate weitergegeben.