Yo diría que hay una fuerte correlación entre su evento fuera del espacio y la traza que falta. Tenga en cuenta que la sp_configure
opción simplemente le dice que el rastreo predeterminado está habilitado, pero eso no significa que se esté ejecutando o que incluso exista. Tenga en cuenta que sys.traces
no es una tabla sino una vista:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
¿Qué TABLE SYSTRACES
proporciona el conjunto de filas? ¿Como funciona? ¿Cómo se filtran sus resultados? Tu invitado es tan bueno como el mío. Es posible que la traza todavía esté allí, pero en un estado que evita que quede expuesta por esta vista. Y puede estar en un estado que todavía impide que se inicie incluso después de reiniciar el servicio.
Primero, asegúrese de que la ubicación de la traza predeterminada tenga suficiente espacio, la cuenta de servicio de SQL Server todavía tiene los permisos adecuados para escribir en ella, no está sujeto a ninguna cuota de espacio, etc. Puede obtener la ubicación desde el registro:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
Una vez que esté seguro de que SQL Server debería poder escribir en esta carpeta, puede deshabilitar y volver a habilitar el rastreo predeterminado:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 1;
GO
RECONFIGURE WITH OVERRIDE;
No debería necesitar reiniciar el servicio de SQL Server en este punto, pero puede ser una patada final en los pantalones de SQL Server si aún no ve una fila sys.traces
. Tenga en cuenta que trace_id
no se garantiza que lo que obtenga se quede en 1.
select * from sys.traces
devuelve un conjunto de filas vacío