Когда я запрашиваю конфигурацию трассировки по умолчанию, она показывает:
exec sp_configure 'default trace enabled';
-->
name minimum maximum config_value run_value
default trace enabled 0 1 1 1
Но когда я запрашиваю sys.traces
путь, он возвращает пустой набор строк:
select * from sys.traces;
Чем можно объяснить отсутствие включенной трассировки?
sql-server
sql-server-2008-r2
trace
Andomar
источник
источник
select * from sys.traces
возвращает пустой набор строкEXEC sp_trace_setstatus @traceid = 1, @status = 0
возвращает ее,The default trace cannot be stopped or modified.
поэтому я не уверен, что ее можно остановить, если не будет ошибки, которая мешает его запуску. Что-нибудь в журналах ошибок?Ответы:
Я бы сказал, что между вашим событием вне космоса и отсутствующим следом существует сильная корреляция. Обратите внимание, что
sp_configure
опция просто говорит вам, что трассировка по умолчанию включена, но это не значит, что она запущена или что она вообще существует. Обратите внимание, чтоsys.traces
это не таблица, а представление:Что
TABLE SYSTRACES
обеспечивает набор строк? Как это работает? Как фильтруются его результаты? Твоя догадка так же хороша как и моя. Возможно, что трасса все еще там, но в состоянии, которое препятствует тому, чтобы это было выставлено этим представлением. И он может находиться в состоянии, которое все еще не позволяет запустить его даже после перезапуска службы.Во-первых, убедитесь, что в расположении трассы по умолчанию достаточно места, учетная запись службы SQL Server по-прежнему имеет достаточные разрешения для записи в нее, на вас не распространяются никакие квоты пространства и т. Д. Расположение можно получить из реестра:
Если вы уверены, что SQL Server должен иметь возможность записи в эту папку, вы можете отключить и снова включить трассировку по умолчанию:
Вам не нужно перезапускать службу SQL Server на этом этапе, но это может быть последним ударом по штанам SQL Server, если вы все еще не видите строку в
sys.traces
. Обратите внимание, чтоtrace_id
вы не гарантированно останетесь на 1.источник
with override
. Журналы ошибок действительно показывали событие нехватки места.with override
это привычка.У меня была та же проблема после того, как двигатель заполнен. Трассировка по умолчанию была включена, но не запущена. Отключение и повторное включение работало сразу, без остановки служб.
источник