

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden erweiterter Datenereignisse mit Amazon RDS für Microsoft SQL Server.
<a name="SQLServer.ExtendedEvents"></a>

Sie können erweiterte Ereignisse in Microsoft SQL Server verwenden, um Informationen zum Debuggen und zur Fehlerbehebung für Amazon RDS für SQL Server zu erfassen. Erweiterte Ereignisse ersetzen SQL Trace und Server Profiler, die von Microsoft als veraltet aussortiert wurden. Erweiterte Ereignisse ähneln Profiler-Traces, haben jedoch eine genauere Kontrolle über die nachverfolgten Ereignisse. Erweiterte Ereignisse werden für SQL Server-Versionen 2016 und höher auf Amazon RDS unterstützt. Weitere Informationen finden Sie unter [Übersicht über erweiterte Ereignisse](https://docs.microsoft.com/en-us/sql/relational-databases/extended-events/extended-events) in der Microsoft-Dokumentation.

Erweiterte Ereignisse werden automatisch für Benutzer mit Master-Benutzerrechten in Amazon RDS für SQL Server aktiviert.

**Topics**
+ [Einschränkungen und Empfehlungen](#SQLServer.ExtendedEvents.Limits)
+ [Konfigurieren von erweiterten Ereignissen auf RDS für SQL Server](#SQLServer.ExtendedEvents.Config)
+ [Überlegungen zu Multi-AZ-Bereitstellungen](#SQLServer.ExtendedEvents.MAZ)
+ [Abfragen von erweiterten Ereignisdateien](#SQLServer.ExtendedEvents.Querying)

## Einschränkungen und Empfehlungen
<a name="SQLServer.ExtendedEvents.Limits"></a>

Wenn Sie erweiterte Ereignisse von RDS für SQL Server verwenden, gelten die folgenden Einschränkungen:
+ Erweiterte Ereignisse werden nur für die Enterprise und Standard Editions unterstützt.
+ Sie können standardmäßige erweiterte Ereignissitzungen nicht ändern.
+ Stellen Sie sicher, dass Sie die Sitzungsspeicherpartition auf einstelle `NONE`.
+ Der Aufbewahrungsmodus für Sitzungsereignisse kann entweder `ALLOW_SINGLE_EVENT_LOSS` oder `ALLOW_MULTIPLE_EVENT_LOSS` sein.
+ Ereignisverfolgung für Windows (ETW) -Ziele wird nicht unterstützt.
+ Stellen Sie sicher, dass sich die Dateiziele im Verzeichnis `D:\rdsdbdata\log` befinden.
+ Um zusammengehörige Ziele zu paaren, setzen Sie die `respond_to_memory_pressure`-Eigenschaft auf `1`.
+ Der Zielspeicher des Ringpuffers darf nicht größer als 4 MB sein.
+ Die folgenden Aktionen werden nicht unterstützt:
  + `debug_break`
  + `create_dump_all_threads`
  + `create_dump_single_threads`
+ Das `rpc_completed` Ereignis wird in den folgenden Versionen und später unterstützt: 15.0.4083.2, 14.0.3370.1, 13.0.5865.1, 12.0.6433.1, 11.0.7507.2.

## Konfigurieren von erweiterten Ereignissen auf RDS für SQL Server
<a name="SQLServer.ExtendedEvents.Config"></a>

Auf RDS für SQL Server können Sie die Werte bestimmter Parameter von erweiterten Ereignissitzungen konfigurieren. In der folgenden Tabelle werden die konfigurierbaren Parameter beschrieben.


| Parametername | Beschreibung | RDS-Standardwert | Mindestwert | Maximaler Wert | 
| --- | --- | --- | --- | --- | 
| xe\$1session\$1max\$1memory | Angabe der maximalen Speichermenge, die der Sitzung für die Ereignispufferung zugewiesen werden soll. Dieser Wert entspricht der max\$1memory-Einstellung der Ereignissitzung. | 4 MB | 4 MB | 8 MB | 
| xe\$1session\$1max\$1event\$1size | Angabe der maximalen Speichergröße an, die für große Ereignisse zulässig ist. Dieser Wert entspricht der max\$1event\$1size-Einstellung der Ereignissitzung. | 4 MB | 4 MB | 8 MB | 
| xe\$1session\$1max\$1dispatch\$1latency | Angabe der Dauer der Pufferung von Ereignissen im Speicher, bevor sie an erweiterte Ereignissitzungsziele abgegeben werden. Dieser Wert entspricht der max\$1dispatch\$1latency-Einstellung der Ereignissitzung. | 30 Sekunden | 1 Sekunde | 30 Sekunden | 
| xe\$1file\$1target\$1size | Festlegung der maximalen Größe des Dateiziels. Dieser Wert entspricht der max\$1file\$1size-Einstellung des Dateiziels. | 100 MB | 10 MB | 1 GB | 
| xe\$1file\$1retention | Angabe der Aufbewahrungszeit für Dateien in Tagen, die von den Dateizielen von Ereignissitzungen generiert werden. | 7 Tage | 0 Tage | 7 Tage | 

**Anmerkung**  
Wenn Sie `xe_file_retention` auf Null setzen, werden .xel-Dateien automatisch entfernt, nachdem die Sperre für diese Dateien von SQL Server aufgehoben wurde. Die Sperre wird aufgehoben, wenn eine .xel-Datei die in eingestellte Größenbeschränkung erreich `xe_file_target_size`.

Sie können die in `rdsadmin.dbo.rds_show_configuration` gespeicherte Prozedur verwenden, um die aktuellen Werte dieser Parameter anzuzeigen. Verwenden Sie beispielsweise die folgende SQL-Anweisung, um die aktuelle Einstellung von anzuzeige `xe_session_max_memory`.

```
exec rdsadmin.dbo.rds_show_configuration 'xe_session_max_memory'
```

Sie können die in `rdsadmin.dbo.rds_set_configuration` gespeicherte Prozedur verwenden, um sie zu ändern. Verwenden Sie beispielsweise die folgende SQL-Anweisung, um `xe_session_max_memory` auf 4 MB festzulegen.

```
exec rdsadmin.dbo.rds_set_configuration 'xe_session_max_memory', 4
```

## Überlegungen zu Multi-AZ-Bereitstellungen
<a name="SQLServer.ExtendedEvents.MAZ"></a>

Wenn Sie eine erweiterte Ereignissitzung auf einer primären DB-Instance erstellen, wird sie nicht auf das Standby-Replikat übertragen. Sie können einen Failover haben und die erweiterte Ereignissitzung für die neue primäre DB-Instance erstellen. Oder Sie können die Multi-AZ-Konfiguration entfernen und dann erneut hinzufügen, um die erweiterte Ereignissitzung auf das Standby-Replikat zu übertragen. RDS stoppt alle nicht standardmäßigen erweiterten Ereignissitzungen auf dem Standby-Replikat, so dass diese Sitzungen keine Ressourcen im Standby verbrauchen. Nachdem ein Standby-Replikat zur primären DB-Instance wurde, sollten Sie daher die erweiterten Ereignissitzungen manuell auf der neuen primären DB-Instance starten.

**Anmerkung**  
Dieser Ansatz gilt sowohl für Always On-Verfügbarkeitsgruppen als auch für die Datenbankspiegelung.

Sie können auch einen SQL Server Agent-Auftrag verwenden, um das Standby-Replikat nachzuverfolgen und die Sitzungen zu starten, wenn der Standby- zur primären DB-Instance wird. Verwenden Sie beispielsweise die folgende Abfrage in Ihrem Auftragsschritt für den SQL Server-Agenten, um Ereignissitzungen auf einer primären DB-Instance neu zu starten.

```
BEGIN
    IF (DATABASEPROPERTYEX('rdsadmin','Updateability')='READ_WRITE'
    AND DATABASEPROPERTYEX('rdsadmin','status')='ONLINE'
    AND (DATABASEPROPERTYEX('rdsadmin','Collation') IS NOT NULL OR DATABASEPROPERTYEX('rdsadmin','IsAutoClose')=1)
    )
    BEGIN
        IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe1')
            ALTER EVENT SESSION xe1 ON SERVER STATE=START
        IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe2')
            ALTER EVENT SESSION xe2 ON SERVER STATE=START
    END
END
```

Diese Abfrage startet die Ereignissitzungen `xe1` und `xe2` auf einer primären DB-Instance neu, wenn sich diese Sitzungen in einem gestoppten Zustand befinden. Sie können dieser Abfrage auch einen Zeitplan mit einem passenden Intervall hinzufügen.

## Abfragen von erweiterten Ereignisdateien
<a name="SQLServer.ExtendedEvents.Querying"></a>

Sie können entweder SQL Server Management Studio oder die `sys.fn_xe_file_target_read_file`-Funktion verwenden, um Daten aus erweiterten Ereignissen anzuzeigen, die Dateiziele verwenden. Weitere Informationen zu dieser Funktion finden Sie in der Microsoft-Dokumentation unter [sys.fn\$1xe\$1file\$1target\$1read\$1file (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-xe-file-target-read-file-transact-sql).

Dateiziele erweiterter Ereignisse können nur Dateien in das `D:\rdsdbdata\log`-Verzeichnis auf RDS für SQL Server schreiben.

Verwenden Sie beispielsweise die folgende SQL-Abfrage, um den Inhalt aller Dateien von erweiterten Ereignissitzungen aufzulisten, deren Namen mit beginne `xe`.

```
SELECT * FROM sys.fn_xe_file_target_read_file('d:\rdsdbdata\log\xe*', null,null,null);
```