Как освободить дисковое пространство на диске, который имеет файл BiztalkMsgBoxDB_log в нем

Меня попросили проанализировать проблему относительно одного из biztalk серверов. Меня попросили освободить пространство на конкретном диске, где я нашел единственный файл, BiztalkMsgBoxDB_log.bak поднимает близкие 90% диска. Выполнение следующего запроса, я позже узнал, что использованное пространство журнала составляет только 1,25%.

ДОЛЖНОСТНОЕ ЛИЦО ('DBCC sqlperf (LOGSPACE) С NO_INFOMSGS')

**Database Name**   **Log Size (MB)**   **Log Space Used (%)**  **Status**
  BizTalkMsgBoxDb     24930.49            1.257622                0

в настоящее время Режим Восстановления: ПОЛНЫЙ и журнал транзакций создают резервную копию, был взят час назад.

У меня нет подсказки относительно того, почему файл журнала был создан настолько большой. Как я могу освободить данные по этому диску.

1
задан 13 September 2015 в 00:17
2 ответа

Вам следует уменьшить журнал. Не удаляйте его!

В SQL Server MGMNT Studio, щелкните правой кнопкой мыши по вашей базе данных, Задачи > Уменьшить > Файлы. Выберите ваш лог как на картинке ниже (или уменьшите его до размера, который вам подходит) и нажмите OK.

enter image description here

После этого, возможно, вы захотите взглянуть на настройки вашего автобраузера и, возможно, установить лимит, чтобы убедиться, что этого не случится в будущем.

Что я в основном рекомендую, так это поместить лог-файлы на отдельный диск (или раздел, если вы не можете добавить лишние диски). Таким образом, лог-файлы смогут заполнить диск, не прерывая ничего другого. (Кстати, то же самое относится и к tempdb)

Если лог-файл остается таким большим после запуска, то возможно, что все еще есть транзакция, блокирующая это действие. Попробуйте найти его с помощью sp_who2 или sp_whoisactive и посмотрите, сможете ли вы его остановить. Бонусные очки за не просто убийство.

Убедитесь, что он не застрял где-нибудь на репликации. Вы можете попробовать перевести БД в простой режим и обратно в полный, но это должно быть последним средством. Не забудьте потом проверить свои резервные копии!

1
ответ дан 4 December 2019 в 00:00

Вы не сможете удалить файл в предположении, что SQL Server запущен, и этот файл на самом деле является файлом журнала для базы данных, используемой SQL Server. Вы определили, что имя заканчивается на .bak, который обычно зарезервирован для файлов SQL сервера Backup, а не на файлы журнала log. Обычно расширением лог-файла является .ldf. Если это действительно файл резервной копии, его можно удалить; однако если SQL Server регулярно производит резервное копирование в этот файл, то он, конечно, появится снова при следующем запуске резервного копирования. Скорее всего, вы не захотите удалять файл резервной копии, так как он может быть критичен для аварийного восстановления.

SQL Server Log Files содержат записи для каждого изменения, внесенного в саму базу данных. Резервное копирование журнала обычно помечает части файла для повторного использования, поэтому если вы посмотрите на DBCC LOGPERF после выполнения резервного копирования, вы можете поинтересоваться, почему файл журнала "такой большой", когда он используется только на 1%. Вероятно, вы захотите удостовериться в требуемом размере файла, прежде чем сокращать его, так как SQL Server может просто увеличить размер файла до этого размера при следующем обслуживании базы данных. Есть много причин, по которым лог-файл может вырасти, и когда он действительно растет, он будет временно замедлить время отклика много. См. этот вопрос и ответы на него на сайте dba.stackexchange.com.

.
0
ответ дан 4 December 2019 в 00:00

Теги

Похожие вопросы