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