Utilizzo di eventi estesi con Amazon RDS for Microsoft SQL Server. - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di eventi estesi con Amazon RDS for Microsoft SQL Server.

È possibile utilizzare eventi estesi in Microsoft SQL Server per acquisire informazioni di debug e risoluzione dei problemi per Amazon RDS for SQL Server. Gli eventi estesi sostituiscono SQL Trace e Server Profiler, che sono stati deprecati da Microsoft. Gli eventi estesi sono simili alle tracce del profiler, ma hanno un controllo più granulare sugli eventi tracciati. Gli eventi estesi sono supportati per SQL Server versioni 2014 e successive su Amazon RDS. Per ulteriori informazioni, consulta Panoramica degli eventi estesi nella documentazione di Microsoft.

Gli eventi estesi vengono attivati automaticamente per gli utenti con privilegi utente master in Amazon RDS for SQL Server.

Limitazioni e consigli

Quando si utilizzano eventi estesi su RDS per SQL Server, si applicano le seguenti limitazioni:

  • Gli eventi estesi sono supportati solo per le edizioni Enterprise e Standard.

  • Non è possibile modificare le sessioni degli eventi estesi predefinite.

  • Assicurati di impostare la modalità di partizione della memoria della sessione su NONE.

  • La modalità di conservazione degli eventi della sessione può essere ALLOW_SINGLE_EVENT_LOSS o ALLOW_MULTIPLE_EVENT_LOSS.

  • Le destinazioni di traccia eventi per Windows (ETW) non sono supportate.

  • Assicurati che le destinazioni dei file siano nella directory D:\rdsdbdata\log.

  • Per le destinazioni corrispondenti alle coppie, imposta la proprietà respond_to_memory_pressure su 1.

  • La memoria di destinazione del buffer ring non può essere maggiore di 4 MB.

  • Le seguenti azioni non sono supportate:

    • debug_break

    • create_dump_all_threads

    • create_dump_single_threads

  • L'evento rpc_completed è supportato nelle seguenti versioni: 15.0.4083.2, 14.0.3370.1, 13.0.5865.1, 12.0.6433.1, 11.0.7507.2 e nelle versioni successive.

Configurazione di eventi estesi su RDS per SQL Server

In RDS per SQL Server, è possibile configurare i valori di determinati parametri delle sessioni degli eventi estesi. Nella tabella seguente vengono descritti i parametri configurabili.

Nome del parametro Descrizione Valore predefinito RDS Valore minimo Valore massimo
xe_session_max_memory Specifica la quantità massima di memoria da allocare alla sessione per il buffering degli eventi. Questo valore corrisponde all'impostazione max_memory della sessione evento. 4 MB 4 MB 8 MB
xe_session_max_event_size Specifica la dimensione massima di memoria consentita per eventi di grandi dimensioni. Questo valore corrisponde all'impostazione max_event_size della sessione evento. 4 MB 4 MB 8 MB
xe_session_max_dispatch_latency Specifica il tempo in cui gli eventi vengono memorizzati nel buffer prima di essere inviati alle destinazioni delle sessioni degli eventi estesi. Questo valore corrisponde all'impostazione max_dispatch_latency della sessione evento. 30 secondi 1 secondo 30 secondi
xe_file_target_size Specifica la dimensione massima della destinazione file. Questo valore corrisponde all'impostazione max_file_size della destinazione del file. 100 MB 10 MB 1 GB
xe_file_retention Specifica il tempo di conservazione (in giorni) per i file generati dalle destinazioni file delle sessioni eventi. 7 giorni 0 giorni 7 giorni
Nota

Impostando xe_file_retention su zero, i file .xel vengono rimossi automaticamente dopo il blocco di questi file viene rilasciato da SQL Server. Il blocco viene rilasciato ogni volta che un file con estensione .xel raggiunge il limite di dimensione impostato in xe_file_target_size.

È possibile utilizzare la stored procedure rdsadmin.dbo.rds_show_configuration per visualizzare i valori correnti di questi parametri. Ad esempio, utilizzare l'istruzione SQL seguente per visualizzare l'impostazione corrente di xe_session_max_memory.

exec rdsadmin.dbo.rds_show_configuration 'xe_session_max_memory'

È possibile utilizzare la stored procedure rdsadmin.dbo.rds_set_configuration per modificarle. Ad esempio, utilizzare l'istruzione SQL seguente per impostare xe_session_max_memory su 4 MB.

exec rdsadmin.dbo.rds_set_configuration 'xe_session_max_memory', 4

Considerazioni per le implementazioni Multi-AZ

Quando si crea una sessione per un evento esteso in un'istanza DB primaria, la sessione non viene propagata alla replica in standby. È possibile eseguire il failover e creare la sessione dell’evento esteso nella nuova istanza DB primaria. In alternativa, è possibile rimuovere e aggiungere nuovamente la configurazione Multi-AZ per propagare la sessione di eventi estesi alla replica in attesa. RDS interrompe tutte le sessioni degli eventi estesi non predefinite sulla replica in standby, in modo che queste sessioni non utilizzino risorse in standby. Per questo motivo, dopo che una replica in standby diventa l'istanza DB primaria, assicurarsi di avviare manualmente le sessioni dell’evento esteso sul nuovo primario.

Nota

Questo approccio si applica sia ai gruppi di disponibilità Always On che al mirroring del database.

È inoltre possibile utilizzare un processo di SQL Server Agent per tenere traccia della replica in standby e avviare le sessioni se lo standby diventa primario. Ad esempio, utilizzare la seguente query nel passaggio del processo Agente SQL Server per riavviare le sessioni di eventi in un'istanza DB primaria.

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

Questa query riavvia le sessioni di evento xe1 e xe2 su un'istanza DB primaria se queste sessioni sono in uno stato interrotto. È inoltre possibile aggiungere una pianificazione con un intervallo conveniente a questa query.

Esecuzione di query sui file di eventi estesi

È possibile utilizzare SQL Server Management Studio o la sys.fn_xe_file_target_read_file funzione per visualizzare i dati da eventi estesi che utilizzano destinazioni file. Per ulteriori informazioni su questa funzione, consulta sys.fn_xe_file_target_read_file (Transact-SQL) nella documentazione di Microsoft.

Le destinazioni dei file degli eventi estesi possono scrivere solo file nella directory D:\rdsdbdata\log su RDS for SQL Server.

Ad esempio, utilizzare la seguente query SQL per elencare il contenuto di tutti i file delle sessioni di eventi estesi i cui nomi iniziano con xe.

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