Как освободить дисковое пространство на диске, на котором находится файл BiztalkMsgBoxDB_log
Меня попросили проанализировать проблему, касающуюся одного из серверов biztalk. Меня попросили освободить место на определенном диске, где я обнаружил, что единственный файл BiztalkMsgBoxDB_log.bak занимает почти 90% диска. Запустив следующий запрос, я позже обнаружил, что используемое пространство журнала составляет всего 1,25%.
EXEC ('DBCC sqlperf (LOGSPACE) С NO_INFOMSGS')
**Database Name** **Log Size (MB)** **Log Space Used (%)** **Status**
BizTalkMsgBoxDb 24930.49 1.257622 0
в настоящее время режим восстановления: FULL и резервное копирование журнала транзакций было выполнено час назад.
Я понятия не имею, почему файл журнала был создан таким большим. Как я могу освободить данные на этом диске.
2 ответа
Вы должны сжать свой журнал. Не удаляйте это!
В SQL Server MGMNT Studio щелкните правой кнопкой мыши свою базу данных, Задачи> Сжать> Файлы. Выберите ваш журнал, как показано на рисунке ниже (или уменьшите его до размера, который вам подходит) и нажмите OK.
Возможно, вы захотите взглянуть на свои настройки автострада позже и, возможно, установить предел, чтобы убедиться, что этого не произойдет в будущем.
В основном я рекомендую размещать файлы журналов на отдельном диске (или в разделе, если вы не можете добавить дополнительные диски). Таким образом, файлы журнала могут заполнить диск, не прерывая что-либо еще. (То же самое относится и к базе данных tempdb).
Если файл журнала остается таким большим после выполнения этого, возможно, все еще есть транзакция, блокирующая действие. Попробуйте найти его с sp_who2
или же sp_whoisactive
и посмотрим, сможешь ли ты это остановить. Бонусные баллы за то, что не просто убили его.
Убедитесь, что он не застрял на репликации где-то. Вы можете попробовать перевести БД в простой режим и вернуться к полному, но это должно быть последним средством. Не забудьте проверить свои резервные копии впоследствии!
Вы не сможете фактически удалить файл, если SQL Server работает, и этот файл фактически является файлом журнала для базы данных, используемой SQL Server. Вы определили имя как заканчивающееся на .bak
который обычно резервируется для файлов резервного копирования SQL Server, а не файлов журналов. Как правило, расширение файла журнала .ldf
, Если это действительно файл резервной копии, вы можете удалить его; однако, если SQL Server регулярно создает резервные копии этого файла, он, разумеется, появится снова при следующем резервном копировании. Вы, вероятно, не хотите удалять файл резервной копии, так как это может иметь решающее значение для аварийного восстановления.
Файлы журнала SQL Server содержат записи для каждой модификации, внесенной в саму базу данных. Резервное копирование журнала обычно помечает части файла для повторного использования, поэтому, если вы посмотрите на DBCC LOGPERF
после создания резервной копии вы можете задаться вопросом, почему файл журнала "такой большой", когда используется только 1%. Возможно, вы захотите убедиться в необходимом размере файла, прежде чем уменьшать его, поскольку SQL Server может просто увеличить размер файла до этого размера при следующем запуске обслуживания для базы данных. Есть много причин, по которым файл журнала может увеличиваться, и когда он действительно увеличивается, он временно сильно замедляет время отклика. Смотрите этот вопрос и ответы для более подробной информации на сайте http://dba.stackexchange.com/.