Conditions préalables à la relecture
En plus des autres classes d'événements que vous voulez surveiller, vous devez capturer les classes d'événements suivantes dans votre trace pour en permettre la relecture (ces événements sont activés par défaut si le modèle de trace TSQL_Replay est utilisé pour configurer une trace qui sera utilisée ultérieurement à des fins de relecture) :
**CursorClose (**nécessaire uniquement pour la relecture de curseurs côté serveur)
CursorExecute (nécessaire uniquement pour la relecture de curseurs côté serveur)
CursorOpen (nécessaire uniquement pour la relecture de curseurs côté serveur)
CursorPrepare (nécessaire uniquement pour la relecture de curseurs côté serveur)
CursorUnprepare (nécessaire uniquement pour la relecture de curseurs côté serveur)
Audit Login
Audit Logout
ExistingConnection
RPC Output Parameter
RPC:Completed
RPC:Starting
Exec Prepared SQL (nécessaire uniquement pour la relecture d'instructions SQL préparées côté serveur)
Prepare SQL (nécessaire uniquement pour la relecture d'instructions SQL préparées côté serveur)
SQL:BatchCompleted
SQL:BatchStarting
En plus des autres colonnes de données que vous voudrez peut-être capturer, les colonnes de données suivantes doivent être capturées dans une trace pour permettre la relecture de la trace en question :
Event Class
EventSequence
TextData
Application Name
LoginName
DatabaseName
Database ID
ClientProcessID
HostName
ServerName
Binary Data
SPID
Start Time
EndTime
IsSystem
NTDomainName
NTUserName
Error
Notes
Utilisez le modèle de trace TSQL_Replay pour les traces qui capturent des données à des fins de relecture.
Dans Microsoft SQL Server, la relecture vérifie la présence des événements et des colonnes nécessaires. Cette nouveauté permet d'améliorer la précision de la relecture en supprimant tout travail de devinette dans la réparation des relectures qui échouent en raison de données manquantes. La relecture renvoie une erreur et s'arrête lorsque des données nécessaires sont manquantes dans une trace.
Pour relire une trace portant sur un serveur (cible) qui exécute SQL Server et qui n'est pas le serveur tracé au départ (source), vérifiez que les conditions suivantes sont réunies :
Tous les utilisateurs et connexions contenus dans la trace doivent déjà être créés sur la cible et dans la même base de données que la source.
Toutes les connexions d'accès et tous les utilisateurs contenus dans la cible doivent avoir les mêmes autorisations que dans la source.
Tous les mots de passe de connexion doivent être identiques à ceux de l'utilisateur qui exécute la relecture.
Les ID de base de données sur la cible doivent idéalement être identiques à ceux qui sont sur la source. Si ce n'est pas le cas, la mise en correspondance peut être effectuée sur la base du DatabaseName s'il est présent dans la trace.
La base de données par défaut de chaque connexion d'accès contenue dans la trace doit être définie (sur la cible) en tant que base de données cible relative à la connexion. Par exemple, la trace à relire contient les activités de la connexion Fred dans la base de données Fred_Db située sur la source. Par conséquent, sur la cible, la base de données par défaut de la connexion Fred doit être la base de données correspondant à Fred_Db (même si le nom de la base de données est différent). Pour définir la base de données par défaut de la connexion, utilisez la procédure stockée sp_defaultdb.
La relecture d'événements associés à des connexions manquantes ou incorrectes va entraîner des erreurs de relecture, mais l'opération de relecture va se poursuivre.
Pour savoir quelles autorisations sont nécessaires pour relire une trace, consultez Autorisations nécessaires pour exécuter SQL Server Profiler.