Вход/Регистрация г. Москва Пн-Пт 09:00 - 18:00
Тех. поддержка (Круглосуточно): help@bit-geek.ru

Что делать, когда база заняла все свободное место диска

Когда это может пригодиться: при подключении к базе MS SQL появляются ошибки:

Ошибка СУБД :
Microsoft OLE DB Provider for SQL Server: Журнал транзакций для базы данных «ReportServer» заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы 
sys. databases HRESULT=80040E14, SQLStvr: Error state=2, Severity=11,native=9002, line=1

или
Ошибка СУБД: 
Microsoft OLE Provider for SQL Server: The transaction log for database “ReportServer” is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column is sys.database 
HRESULT=80040E14, SQLSTATE=4 2000, native=9002

Такое сообщение чаще всего связанно с переполнением диска, где расположен лог транзакций и теперь СУБД некуда записывать данные о новых транзакциях. Так часто происходит, когда не установлено никаких ограничений на размер лога и в MS SQL не создано соответствующих планов обслуживания.

Самое быстрое решение уменьшить размер самого файла транзакций (база.ldf), другими словами сделать Shrink (сжатие) лога. Для этого можно использовать как запрос, так и сжатие лога вручную.

Рассмотрим шринк лога транзакций вручную:

Шаг 1. Настроим базу для Shrink-а. Установим Recovery model в состояние Simple. 

Запустим приложение Microsoft SQL Server Management Studio — Подключаемся к базе — Правой кнопкой на базе — Properties (Свойства)

Options (Параметры) — Recovery model (Модель восстановления) — Simple (Простая) — OK.

Шаг 2.  Проведем операцию сжатия (Shrink) лога транзакций.

Правой кнопкой на базе — Tasks (Задачи) — Shrink (Сжать) — Files (Файлы) 

Установить File type (Тип файла) — Log (Журнал)

Установить в Shrink action (Операция сжатия) — Reorganize pages before releseasing unused space (Реорганизовать страницы, перед тем освоить неиспользуемое место) — Shrink file to (Сжать файл) —указать приемлемый размер лога, в моем случаи 0.

Шаг 3.  Вернем настройки базы в прежнее состояние. Установим Recovery model в состояние Full.

Правой кнопкой на базе — Properties (Свойства) — Options (Параметры) —  Recovery model (Модель восстановления) — Full (Полная) — OK.

Стоит заметить, что такое решение разово исправит ситуацию и через время лог опять заполнит свободное место диска. Предупреждать появление ошибки поможет система мониторинга.

Bit Geek. Все права защищены. © 2020 - 2021

Вся информация представленная на сайте, включая информацию о ценах, наличии услуг и их описание, носит ознакомительный характер и не является публичной офертой, определяемой положениями ст. 437 ГК РФ.

    Оставьте номер телефона и мы перезвоним Вам

    Пожалуйста, докажите, что вы человек, выбрав звезду.

      Заявка

      Пожалуйста, докажите, что вы человек, выбрав дерево.