Eu diria que há uma forte correlação entre o evento fora do espaço e o rastreio ausente. Observe que a sp_configure
opção apenas informa que o rastreamento padrão está ativado, mas isso não significa que ele esteja em execução ou que exista. Observe que sys.traces
não é uma tabela, mas uma exibição:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
O que o TABLE SYSTRACES
conjunto de linhas fornece? Como funciona? Como os resultados são filtrados? Seu palpite é tão bom quanto o meu. É possível que o rastreamento ainda esteja lá, mas em um estado que impeça que ele seja exposto por essa visualização. E pode estar em um estado que ainda impede que seja iniciado mesmo após reiniciar o serviço.
Primeiro, verifique se o local do rastreamento padrão tem espaço suficiente, se a conta de serviço do SQL Server ainda possui permissões adequadas para gravar nele, se você não está sujeito a nenhuma cota de espaço, etc. Você pode obter o local no registro:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
Depois de ter certeza de que o SQL Server deve gravar nesta pasta, você pode desativar e reativar o rastreamento padrão:
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;
Você não precisa reiniciar o serviço SQL Server neste momento, mas pode ser um pontapé final nas calças do SQL Server se você ainda não vir uma linha sys.traces
. Observe que o que trace_id
você recebe não é garantido para permanecer em 1.
select * from sys.traces
devolve um conjunto de linhas vazio