Як урізати транзакційні логи в sql server 2018, windows для системних адміністраторів

  • Simple (проста модель) - журнали урізаються після досягнення контрольної точки
  • Full (модель повного відновлення) - після виконання резервної копії логів, якщо після останнього бекапа було досягнуто контрольна точка

Однак є ситуації, коли автоматичне урізання логів відпрацьовується як треба, і лог-файли займають все місце на диску. Як правило, це відбувається несподівано, і адміністратору доводиться терміново вирішувати питання зі звільненням місця на диску.

В цьому випадку при підключенні до БД MS SQL з'являється така помилка:

Це означає, що транзакційні логи зайняли весь вільний місце і SQL більш не може писати файли журналів. У цій ситуації ви можете виконати урізання логів транзакцій вручну.

Як правило це ситуація може виникнути при використанні повної моделі відновлення (Full). У цій моделі файли журнали не скорочуються, поки все транзакційні логи не потраплять в бекап. Це потрібно для того, щоб гарантувати безперервну послідовність номерів записів (LSN) в журналі. Таким чином, щоб журнали урізалися, потрібно виконати повний бекап БД, або (швидше), на час змінити модель відновлення на Simple.

Отже, щоб урізати транзакційний лог, запустіть консоль SQL Server Management Studio (SSMS), виберіть потрібну БД, і відкрийте її властивості в контекстному меню. Потім перейдіть на вкладку Options і змініть модель відновлення БД (Recovery model) на Simple.

Як урізати транзакційні логи в sql server 2012 windows для системних адміністраторів

Потім в контекстному меню БД виберіть Tasks -> Shrink -> File s. В поле File type виберіть Log, а в поле File name - ім'я файлу логів. В поле Shrink action потрібно вказати Reorganize pages before releasing unused space. і вкажіть до якого розміру потрібно стиснути файл і натисніть OK.

Як урізати транзакційні логи в sql server 2012 windows для системних адміністраторів

Після урізання балки, знову перейдіть на повну (Full) модель відновлення БД.

Порада. Після урізання транзакційних логів в SQL Server настійно рекомендується створити повну резервну копію БД, тому що в разі пошкодження файлів журналу, ви не зможете відновити базу з використанням файлів транзакцій.