jeudi 20 août 2009

Lire les SqlServer logs depuis TSQL

Il est des cas où l'accès à l'interface du Console Management n'est pas disponible sur un serveur SQL donné.
Ou bien encore, le Sql Server Log est trop long pour être accédé depuis cette même interface graphique.
Dans ce cas, l'utilisation de la stored procedure sp_readerrorlog s'avère bien pratique.

Syntaxe
EXEC sp_readerrorlog Param1,Param2, Param3, Param4

Param 1: identification de l'archive (0=Current Log, 1=Archive 1, 2=Archive 2, etc)
Param 2: Type de log à lire (1 ou NULL= SqlServer Log, 2=Sql Agent Log)
Param 3: texte à rechercher dans le log.
Param 4: raffiner la recherche en cherchant un autre texte dans les résultats de Param3

Exemple
La requête suivante va lire le log courant (Param1=0) du "SqlServer log" (Param2=1) pour y rechercher le texte 'been using' (Param3='been using').
EXEC sp_readerrorlog 0,1 

Cette recherche permet d'être informer des jours de fonctionnement de SQL server. En effet, tous les jours à heure de démarrage, Sql Server affiche la ligne suivante dans le log "This instance of SQL Server has been using a process ID of xxx since ..."

Référence
Pour plus d'informations, voir l'article "Reading the SQL Server log files using T-SQL" sur MSSqlTips.

Aucun commentaire: