Переповнення диска або як зменшувати ldf (log) файлів в ms sql server - «ask sql», «АСКЛ»

Існує ситуація, коли LDF файл займає багато гігабайт місця (файл з постфіксом _log), і його необхідно зменшити.

Це відбувається коли база в SQL знаходиться в режимі Full, тобто з фіксацією всіх вироблених транзакцій. Модель Full дозволяє відновити стан бази SQL на будь-який час, в той час, як модель Simple не дозволяє цього зробити, а тільки відновити базу з резервної копії. Сенс моделі Full в тому, що в журнал транзакцій LDF записуються ВСЕ транзакції і там залишаються, ну до певного часу, наприклад, до операції shrink. Таким чином SQL послідовним відкотом транзакцій тому може відновити стан бази на будь-який момент часу періоду записаних в LDF транзакцій.

Перехід в режим Simple призведе до того, що в файлі LDF будуть знаходитися тільки незавершені транзакції, що зменшить розмір цього файлу.

Перше що потрібно зробити, перевести базу в модель відновлення Simple (при цьому налаштувати механізм створення беекапов бази, якщо цього досі не зроблено). Цю операцію можна робити "на ходу".
Однак, переклад в simple автоматично не применшує розмір файлу транзакцій. Можна, провести операцію shrink (стиснення бази) відразу, але краще спочатку зробити повний бекап бази засобами SQL (є там в SQL-е з цього приводу одна маленька хитрість), а потім зробити shrink як файлу бази MDF, так і файлу журналу транзакцій LDF . Розмір бази теж повинен зменшитися, але не на багато, а, ось, розмір файлу транзакцій LDF, якщо було зроблено все правильно, повинен стати практично нульовим (в разі, коли в цьому момент в базі немає активної роботи користувачів).
Операції бекапа засобами SQL, і shrink-а, можна робити не виганяючи користувачів, ці операції можуть, хіба що, позначитися на продуктивності. Наполеглива рекомендація зробити резервні копії перед початком цієї операції.

Для виконання операції по очищенню логів необхідно запустити відновлення:

Якщо не охота мучитися з запитами можна зробити через GUI: правою кнопкою на базі -> завдання -> шрінк -> файли -> вибираємо лог (там буде видно на скільки відсотків можна зменшити).
Іноді, якщо лог великий - наприклад 50 Гб, то зменшувати (шрінкать) його треба 2 рази - з першого разу зменшується, але не повністю.

Android App Reader