Я б сказав, що існує сильна кореляція між вашою космічною подією та відсутнім слідом. Зауважте, що sp_configure
параметр просто повідомляє вам, що трасування за замовчуванням увімкнено, але це не означає, що він працює або що він навіть існує. Зауважте, що sys.traces
це не таблиця, а вид:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
Що TABLE SYSTRACES
забезпечує набір рядків? Як це працює? Як фільтруються його результати? Ваша здогадка така ж добра, як і моя. Можливо, що слід все ще є, але в стані, який заважає йому піддаватися цьому погляду. І він може перебувати в стані, який все ще заважає запускати його навіть після перезапуску послуги.
По-перше, переконайтесь, що в розташуванні трасування за замовчуванням є достатньо місця, в обліковому записі служби SQL Server все ще є адекватні дозволи для запису на нього, на вас не поширюються жодні космічні квоти тощо. Ви можете отримати місцезнаходження з реєстру:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
Після того, як ви впевнені, що SQL Server повинен мати можливість записувати в цю папку, ви можете вимкнути та повторно включити слід за замовчуванням:
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;
У цей момент вам не потрібно буде перезапускати службу SQL Server, але це може бути остаточним ударом у штани SQL Server, якщо ви все ще не бачите ряду в sys.traces
. Зауважте, що отриманий trace_id
вами не гарантовано залишиться о 1.
select * from sys.traces
повертає порожній набір рядків