Кто-то выполнял запрос к нашей базе данных SQL Server удаленно, и его система зависала.
У них нет резервной копии этого запроса и они хотят увидеть, что было запущено на сервере.
Можно ли найти этот запрос в журнале или в истории где-нибудь?
sql-server
logs
user87094
источник
источник
Ответы:
У аналогичного Гранта Фричи была проблема, когда он закрыл SSMS и потерял запрос, над которым работал ... написал здесь: О, **********!
РЕДАКТИРОВАТЬ
Чтобы сделать это немного более подробным ответом, ссылка, на которую ссылается выше Grant, предоставляет запрос, чтобы просто перейти в кэш экземпляра, чтобы извлечь запрос, который вы только что выполнили (или, по крайней мере, попытались):
Еще несколько вариантов, которые были отмечены в комментариях к блогу Гранта:
источник
2005+, трассировка по умолчанию для спасения.
Трассировка по умолчанию переворачивается на 20 Мб, но SQL сохраняет историю 5 трасс. Имея доступ к серверу, вы можете получить файлы * .trc из каталога MSSQL \ Log. Если вы не можете получить доступ к серверу, следующее даст вам имя текущего файла трассировки по умолчанию:
Если текущим файлом является, например, E: \ MSSQL.1 \ MSSQL \ LOG \ log_200.trc, предыдущими файлами должны быть log_199.trc, log_198.trc и т. Д. Получите содержимое трассировки с помощью:
источник
Вы можете получить информацию из кэшированных планов запросов, проверить BOL для получения информации о sys.dm_exec_query_stats или запустить ее из среды управления, подключенной к той же базе данных:
Отфильтруйте вывод с помощью
сузить результаты.
источник
Если база данных находилась в режиме полного восстановления, возможно, есть шанс восстановить некоторые данные и получить представление о том, что было сделано, прочитав журнал транзакций.
К сожалению, это не поддерживается по умолчанию, но есть способы сделать это.
Вы можете попробовать использовать сторонние инструменты, такие как ApexSQL Log или SQL Log Rescue (бесплатно, но только для SQL 2000).
Другой вариант - попробовать использовать недокументированные функции DBCC LOG или fn_dblog. Это сложнее, но бесплатно.
источник
Если ваша база данных настроена на полную модель восстановления, вы можете исследовать резервные копии журнала транзакций. Смотрите
fn_dump_dblog
для получения дополнительной информации.источник
ApexSQL имеет функцию «Выполненные запросы», которая позволяет искать и фильтровать по дате.
Я не уверен, извлекает ли он историю из кэша SSMS или фактически отслеживает ее сам. Вы можете попробовать установить его и надеяться на лучшее.
источник