Estou tentando encontrar uma maneira de descobrir quando alguns dos meus bancos de dados SQL foram colocados offline.
Verifiquei os logs, mas não consegui encontrar nenhuma dessas informações e, além disso, não há rastreamento padrão ativado.
Só tenho uma informação de que antes havia um DBA que tirou isso do ar, mas nenhum e-mail ou comunicação por escrito como tal.
Podemos encontrar uma informação sobre isso?
por favor sugerir, obrigado!
Você pode descobrir todos esses eventos que estão no ciclo de log de eventos atual
sp_readerrorlog
usando :Você pode percorrer os valores de
@p1
se não o encontrar no log de eventos atual. Por padrão, você deve ser capaz de ler os 6 arquivos de log de erros atuais e anteriores, portanto, use 0-6 como argumentos para voltar o mais longe possível (no meu sistema, não consegui obter0
/NULL
agregar todos os arquivos de log; YMMV ).Vai retornar algo assim:
Há uma chance, é claro, de que o log de erros seja preenchido o suficiente para que o(s) evento(s) ocorra(m) antes do conjunto atual de logs de erros. Nesse caso, você está sem sorte. Para manter um histórico de execução mais longo no futuro, você pode alterar o número de logs de erros que são mantidos. No Object Explorer, expanda Management, clique com o botão direito do mouse em SQL Server Logs e escolha Configure. Lá você pode alterar as configurações de reciclagem do arquivo de log de erros, incluindo manter os 99 arquivos anteriores. Veja também esta resposta .
Observe que
sp_readerrorlog
não é documentado e não é suportado, embora muitas pessoas tenham escrito sobre isso . No final, os arquivos de log de erros são apenas arquivos de texto simples, então você pode escrever seu próprio PowerShell, CLR etc. que apenas analisa os arquivos e retorna as mesmas informações. Você pode determinar onde estão os arquivos de log de erros para esta instância usando:Os arquivos serão nomeados
ERRORLOG
,ERRORLOG.1
,ERRORLOG.2
, etc. Você pode abrir os arquivos em um editor de texto básico para ver a estrutura, embora eu seja cauteloso ao abrir o arquivo atual em uso (ERRORLOG
).Se o banco de dados foi definido offline:
ou seja
Você realmente veria uma mensagem registrada no log de erros do SQL Server:
ID da mensagem de 5084 se você estiver monitorando as alterações nas opções do banco de dados.
Se você não encontrar nada nos logs (pode ter sido colocado OFFLINE há algum tempo), você sempre pode verificar a data de modificação dos arquivos de dados físicos do banco de dados, pois não teria mudado depois de ter sido colocado OFFLINE.