Verwenden erweiterter Ereignisse mit Amazon RDS für Microsoft SQL Server - Amazon Relational Database Service

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 Ereignisse mit Amazon RDS für Microsoft SQL Server

Sie können erweiterte Ereignisse in Microsoft SQL Server verwenden, um Debugging- und Fehlerbehebungsinformationen für Amazon RDS for SQL Server zu erfassen. Erweiterte Ereignisse ersetzen SQL Trace und Server Profiler, die von Microsoft als veraltet eingestuft wurden. Erweiterte Ereignisse ähneln Profiler-Traces, haben jedoch eine genauere Kontrolle über die nachverfolgten Ereignisse. Erweiterte Ereignisse werden für SQL Serverversionen 2016 und höher bei Amazon unterstütztRDS. Weitere Informationen finden Sie unter Übersicht über erweiterte Ereignisse in der Microsoft-Dokumentation.

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

Einschränkungen und Empfehlungen

Bei der Verwendung von Extended Events auf RDS for SQL Server 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.

  • Event Tracing für Windows (ETW) -Ziele werden 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.

Konfiguration erweiterter Ereignisse auf RDS für Server SQL

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

Parametername Beschreibung RDSStandardwert Mindestwert Maximaler Wert
xe_session_max_memory Angabe der maximalen Speichermenge, die der Sitzung für die Ereignispufferung zugewiesen werden soll. Dieser Wert entspricht der max_memory-Einstellung der Ereignissitzung. 4 MB 4 MB 8 MB
xe_session_max_event_size Angabe der maximalen Speichergröße an, die für große Ereignisse zulässig ist. Dieser Wert entspricht der max_event_size-Einstellung der Ereignissitzung. 4 MB 4 MB 8 MB
xe_session_max_dispatch_latency Angabe der Dauer der Pufferung von Ereignissen im Speicher, bevor sie an erweiterte Ereignissitzungsziele abgegeben werden. Dieser Wert entspricht der max_dispatch_latency-Einstellung der Ereignissitzung. 30 Sekunden 1 Sekunde 30 Sekunden
xe_file_target_size Festlegung der maximalen Größe des Dateiziels. Dieser Wert entspricht der max_file_size-Einstellung des Dateiziels. 100 MB 10 MB 1 GB
xe_file_retention Angabe der Aufbewahrungszeit für Dateien in Tagen, die von den Dateizielen von Ereignissitzungen generiert werden. 7 Tage 0 Tage 7 Tage
Anmerkung

Wenn der Wert xe_file_retention auf Null gesetzt wird, werden XEL-Dateien automatisch entfernt, nachdem die Sperre für diese Dateien vom 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 xe_session_max_memory anzuzeigen.

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 den Wert xe_session_max_memory auf 4 MB festzulegen.

exec rdsadmin.dbo.rds_set_configuration 'xe_session_max_memory', 4

Überlegungen zu Multi-AZ-Bereitstellungen

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. RDSstoppt alle nicht standardmäßigen Extended-Event-Sitzungen auf dem Standby-Replikat, sodass diese Sitzungen keine Ressourcen auf dem Standby-Replikat 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-Job verwenden, um das Standby-Replikat zu verfolgen und die Sitzungen zu starten, falls das Standby-Replikat zum primären Replikat wird. Verwenden Sie beispielsweise die folgende Abfrage in Ihrem SQL Server-Agent-Jobschritt, um Event-Sitzungen 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

Sie können entweder SQL Server Management Studio oder die sys.fn_xe_file_target_read_file Funktion verwenden, um Daten von erweiterten Ereignissen anzuzeigen, die Dateiziele verwenden. Weitere Informationen zu dieser Funktion finden Sie in der Microsoft-Dokumentation unter sys.fn_xe_file_target_read_file (Transact-). SQL

Ziele mit erweiterten Ereignisdateien können nur Dateien in das Verzeichnis auf dem Server schreiben. D:\rdsdbdata\log RDS SQL

Verwenden Sie beispielsweise die folgende SQL Abfrage, um den Inhalt aller Dateien von Sessions mit erweitertem Ereignis aufzulisten, deren Namen mit beginnenxe.

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