Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vous pouvez utiliser des événements étendus dans Microsoft SQL Server pour recueillir des informations de débogage et de dépannage pour Amazon RDS for SQL Server. Les événements étendus remplacent SQL Trace et Server Profiler, qui ont été déconseillés par Microsoft. Les événements étendus sont similaires aux traces du profileur, mais avec un contrôle plus granulaire sur les événements suivis. Les événements étendus sont pris en charge pour les versions de SQL serveur 2016 et ultérieures sur AmazonRDS. Pour plus d'informations, consultez Présentation des événements étendus
Les événements étendus sont automatiquement activés pour les utilisateurs disposant de privilèges d'utilisateur principal dans Amazon RDS for SQL Server.
Rubriques
Limitations et recommandations
Lorsque vous utilisez des événements étendus sur RDS for SQL Server, les limites suivantes s'appliquent :
-
Les événements étendus ne sont pris en charge que pour les éditions Enterprise et Standard.
-
Vous ne pouvez pas modifier les sessions d'événements étendus par défaut.
-
Assurez-vous de définir le mode de partition de mémoire de session sur
NONE
. -
Le mode de rétention d'événement de session peut être
ALLOW_SINGLE_EVENT_LOSS
ouALLOW_MULTIPLE_EVENT_LOSS
. -
Le suivi des événements pour les cibles Windows (ETW) n'est pas pris en charge.
-
Assurez-vous que les cibles de fichiers se trouvent dans le répertoire
D:\rdsdbdata\log
. -
Pour les cibles correspondant aux paire, définissez la propriété
respond_to_memory_pressure
sur1
. -
La mémoire cible de la mémoire tampon Ring ne peut pas être supérieure à 4 Mo.
-
Les actions suivantes ne sont pas prises en charge :
-
debug_break
-
create_dump_all_threads
-
create_dump_single_threads
-
-
L'événement
rpc_completed
est pris en charge sur les versions suivantes et ultérieures : 15.0.4083.2, 14.0.3370.1, 13.0.5865.1, 12.0.6433.1, 11.0.7507.2.
Configuration des événements étendus sur RDS le SQL serveur
Sur RDS for SQL Server, vous pouvez configurer les valeurs de certains paramètres des sessions d'événements étendues. Le tableau suivant décrit les paramètres configurables.
Nom du paramètre | Description | RDSvaleur par défaut | Valeur minimale | Valeur maximale |
---|---|---|---|---|
xe_session_max_memory |
Spécifie la quantité maximale de mémoire à allouer à la session pour la mise en mémoire tampon des événements. Cette valeur correspond au paramètre max_memory de la session d'événement. |
4 Mo | 4 Mo | 8 Mo |
xe_session_max_event_size |
Spécifie la taille de mémoire maximale autorisée pour les événements volumineux. Cette valeur correspond au paramètre max_event_size de la session d'événement. |
4 Mo | 4 Mo | 8 Mo |
xe_session_max_dispatch_latency |
Spécifie la durée pendant laquelle les événements sont mis en mémoire tampon avant d'être distribués aux cibles de session d'événements étendus. Cette valeur correspond au paramètre max_dispatch_latency de la session d'événement. |
30 secondes | 1 seconde | 30 secondes |
xe_file_target_size |
Spécifie la taille maximale de la cible du fichier. Cette valeur correspond au paramètre max_file_size de la cible du fichier. |
100 Mo | 10 Mo | 1 Go |
xe_file_retention |
Spécifie la durée de conservation en jours pour les fichiers générés par les cibles de fichiers des sessions d'événements. | 7 jours | 0 jour | 7 jours |
Note
La valeur zéro xe_file_retention
entraîne la suppression automatique des fichiers .xel une fois le verrouillage de ces fichiers déverrouillé par le SQL serveur. Le verrouillage est libéré chaque fois qu'un fichier .xel atteint la limite de taille définie dans xe_file_target_size
.
Vous pouvez utiliser la procédure rdsadmin.dbo.rds_show_configuration
stockée pour afficher les valeurs actuelles de ces paramètres. Par exemple, utilisez l'SQLinstruction suivante pour afficher le paramètre actuel dexe_session_max_memory
.
exec rdsadmin.dbo.rds_show_configuration 'xe_session_max_memory'
Vous pouvez utiliser la procédure stockée rdsadmin.dbo.rds_set_configuration
pour les modifier. Par exemple, utilisez l'SQLinstruction suivante pour définir une xe_session_max_memory
valeur de 4 Mo.
exec rdsadmin.dbo.rds_set_configuration 'xe_session_max_memory', 4
Considérations sur les déploiements multi-AZ
Lorsque vous créez une session d'événements étendus sur une instance de base de données principale, elle ne se propage pas au réplica de secours. Vous pouvez basculer et créer la session d'événements étendus sur la nouvelle instance de base de données principale. Vous pouvez également supprimer et lire la configuration multi-AZ pour propager la session d'événements étendus au réplica de secours. RDSarrête toutes les sessions d'événements prolongées autres que celles par défaut sur la réplique de secours, afin que ces sessions ne consomment pas de ressources sur la réplique de secours. Pour cette raison, après qu'un réplica de secours devient l'instance de base de données principale, veillez à démarrer manuellement les sessions d'événements étendus sur la nouvelle instance principale.
Note
Cette approche s'applique aux groupes de disponibilité Always On et à la mise en miroir de bases de données.
Vous pouvez également utiliser une tâche d'agent SQL serveur pour suivre la réplique de secours et démarrer les sessions si la réplique de secours devient la réplique principale. Par exemple, utilisez la requête suivante dans votre étape de travail de l'agent SQL serveur pour redémarrer les sessions d'événements sur une instance de base de données principale.
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
Cette requête redémarre les sessions d'événements xe1
et xe2
sur une instance de base de données principale si ces sessions sont à l'état arrêté. Vous pouvez également ajouter une planification avec un intervalle pratique à cette requête.
Interrogation de fichiers d'événements étendus
Vous pouvez utiliser SQL Server Management Studio ou la sys.fn_xe_file_target_read_file
fonction pour afficher les données d'événements étendus utilisant des fichiers cibles. Pour plus d'informations sur cette fonction, consultez sys.fn_xe_file_target_read_file (Transact
Les cibles de fichiers d'événements étendus peuvent uniquement écrire des fichiers D:\rdsdbdata\log
dans le RDS répertoire SQL du serveur.
Par exemple, utilisez la SQL requête suivante pour répertorier le contenu de tous les fichiers des sessions d'événements étendues dont le nom commence parxe
.
SELECT * FROM sys.fn_xe_file_target_read_file('d:\rdsdbdata\log\xe*', null,null,null);