Définir des indicateurs de trace «de façon permanente» dans SQL Server?

25

Nous devons utiliser l' indicateur de trace 7646 de SQL Server pour aider à atténuer certains blocages de texte intégral, mais j'ai été consterné de constater que l'indicateur de trace s'est «désactivé» lui-même, probablement lorsque le serveur de base de données a été redémarré.

J'ai utilisé

DBCC TRACEON (7646, -1)

pour définir l'indicateur de trace et

DBCC TRACESTATUS

pour afficher tous les indicateurs de trace, ce qui m'a dit qu'il n'était pas défini (après le redémarrage, je suppose). Pour définir définitivement l'indicateur de trace, j'ai fait ceci:

  • est allé à SQL Server Configuration Manager
  • propriétés affichées pour le service SQL Server
  • visité l'onglet Avancé
  • modifié l'option Paramètres de démarrage

et ajouté

; -T {numéro_trac}

à la fin, comme ça ...

-dD: \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ master.mdf; -eD: \ MSSQL10.MSSQLSERVER \ MSSQL \ Log \ ERRORLOG; -lD: \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ mastlog.ldf ; -T7646

Est-ce exact? Je trouve des résultats contradictoires sur la syntaxe des paramètres de démarrage de SQL Server .

Jeff Atwood
la source
FYI: Il y a un article ici sur la façon de définir les paramètres de démarrage via T-SQL: sqlservercentral.com/articles/Automation/105511
JohnLBevan
ps. Par ce qui précède, le SQL suivant vous donnera les chemins de registre pertinents et les valeurs actuelles pour votre instance:select * from sys.dm_server_registry where value_name like 'SQLArg%'
JohnLBevan

Réponses:

15

Oui, ça va le faire pour vous. En utilisant le paramètre de démarrage -T {traceflag}, c'est-à-dire.

squillman
la source
11

Quelque chose que j'ai appris à la dure, c'est que vous devez avoir des points-virgules avant chaque indicateur de trace. Par exemple, si vous activez la journalisation des informations de blocage dans un fichier, votre exemple deviendrait ...

-dD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;-
eD:\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-
lD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.l
df;-T7646;-T3605;-T1204;-T1222

Les espaces entre les indicateurs de trace entraînent l'ignorance des derniers indicateurs.

GaTechThomas
la source