Kiedy sprawdzam konfigurację domyślnego śledzenia, pokazuje włączone:
exec sp_configure 'default trace enabled';
-->
name minimum maximum config_value run_value
default trace enabled 0 1 1 1
Ale kiedy pytam sys.traces
o ścieżkę, zwraca pusty zestaw wierszy:
select * from sys.traces;
Co może tłumaczyć brak włączonego śledzenia?
sql-server
sql-server-2008-r2
trace
Andomar
źródło
źródło
select * from sys.traces
zwraca pusty zestaw wierszyEXEC sp_trace_setstatus @traceid = 1, @status = 0
przywraca,The default trace cannot be stopped or modified.
więc nie jestem pewien, czy można go zatrzymać, chyba że wystąpi błąd uniemożliwiający jego uruchomienie. Coś w dziennikach błędów?Odpowiedzi:
Powiedziałbym, że istnieje silna korelacja między wydarzeniem braku miejsca i brakującym śladem. Zauważ, że ta
sp_configure
opcja mówi ci tylko, że śledzenie domyślne jest włączone, ale to nie znaczy, że jest uruchomione lub że w ogóle istnieje. Pamiętaj, żesys.traces
nie jest to tabela, ale widok:Co
TABLE SYSTRACES
zapewnia zestaw wierszy? Jak to działa? Jak filtrowane są jego wyniki? Twoje domysły są równie dobre jak moje. Możliwe, że ślad nadal tam jest, ale w stanie, który uniemożliwia jego ujawnienie przez ten widok. I może być w stanie, który wciąż uniemożliwia uruchomienie go nawet po ponownym uruchomieniu usługi.Po pierwsze, upewnij się, że lokalizacja domyślnego śledzenia ma wystarczającą ilość miejsca, konto usługi SQL Server nadal ma odpowiednie uprawnienia do zapisu na nim, nie podlegasz żadnym limitom miejsca itp. Możesz uzyskać lokalizację z rejestru:
Gdy masz pewność, że SQL Server powinien móc zapisywać w tym folderze, możesz wyłączyć i ponownie włączyć domyślne śledzenie:
W tym momencie nie powinieneś ponownie uruchamiać usługi SQL Server, ale może być ostatnim kopnięciem w spodniach SQL Server, jeśli nadal nie widzisz wiersza
sys.traces
. Pamiętaj, żetrace_id
nie masz gwarancji, że pozostanie na poziomie 1.źródło
with override
. Dzienniki błędów rzeczywiście pokazywały zdarzenie braku miejsca.with override
to nawyk.Miałem ten sam problem po zapełnieniu dysku. Domyślne śledzenie było włączone, ale nie działało. Wyłączenie i ponowne włączenie działało natychmiast, bez zatrzymywania usług.
źródło