MS SQL. Как я могу найти момент, когда файл журнала был сжат? - PullRequest
0 голосов
/ 06 сентября 2018

Кто-то сокращает файлы журналов баз данных в производстве. Сейчас и тогда. Нехорошо часто сжиматься.

Но как мне найти информацию о том, когда и каким пользователем sql файл журнала уменьшался?

Все на сервере MS SQL регистрируется, поэтому где-то находится информация, которую я ищу. Какой-то вид системы или таблицы?

Ответы [ 3 ]

0 голосов
/ 06 сентября 2018

Перейдите в раздел Сервер> Управление> Расширенные события. Затем создайте новый сеанс и используйте библиотеку событий: enter image description here

Затем вы можете просматривать данные в реальном времени:

enter image description here

Или проанализируйте прошлые данные:

enter image description here

Надеюсь, это поможет. Если вы заинтересованы в чтении расширенного файла журнала напрямую с помощью t-sql, я тоже могу помочь;)

0 голосов
/ 07 сентября 2018

когда и какой пользователь SQL уменьшал размер файла журнала ???

Вы должны быть в состоянии определить это по времени "last modified" в файле "ldf" (если только он не вырос автоматически в промежуточный период - что кажется маловероятным, поскольку он все еще только 1 МБ)

Есть ли в базе данных запись активности? Включена ли опция автоусадочной базы данных?

Вы не увидели бы задание агента SQL, если бы в этом случае фоновая задача выполняла эти операции сжатия. Этот параметр крайне не рекомендуется

Файл журнала был сокращен. Кто это сделал?

Можно просмотреть трассировку по умолчанию, чтобы определить, кем и когда был выполнен файл сжатия.

Для поиска трассировки по умолчанию сначала определите, включена ли трассировка по умолчанию. Это можно сделать, запустив sp_configure следующим образом:

SQL:

EXEC master.dbo.sp_configure 'show advanced options', 1; 
GO 
EXEC master.dbo.sp_configure 'default trace enabled';
GO

После проверки и запуска трассировки по умолчанию определите место, куда записываются файлы трассировки, запустив функцию fn_trace_getinfo

SQL:

SELECT * 
FROM fn_trace_getinfo(default);
GO

Чтобы прочитать файл трассировки, используйте fn_trace_gettable. Это извлечет все данные из файла трассировки и покажет их в виде таблицы в SSMS для удобства просмотра

SQL:

SELECT 
    TextData,
    HostName,
    ApplicationName,
    LoginName, 
    StartTime  
FROM 
[fn_trace_gettable]('C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\log_75.trc', DEFAULT) 
WHERE TextData LIKE '%SHRINKFILE%'; ----- Location of default trace will be different ,so kindly check that accordingly
0 голосов
/ 06 сентября 2018

Если вы щелкнете правой кнопкой мыши по своей базе данных, перейдите к отчетам и выберите «Использование диска» (из памяти, я не сижу за компьютером, чтобы проверить), он покажет события.

Однако информация получена из трассировки по умолчанию, поэтому будут отображаться только последние события. Я считаю, что по умолчанию трассировка составляет всего 5 файлов по 20 МБ.

Если это случается реже, вам придется настроить трассировку или использовать профилировщик (трассировка легче на ресурсах, чем профилировщик) и искать события автоматического сжатия файла журнала

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...