Скрипт SQL для включения SIMPLE модели восстановления и обрезания ldf файлов

Очень часто возникает ситуация, когда на диске заканчивается свободное место из-за неприлично разросшегося журнала транзакций. Подробно проблема описана в статье http://infostart.ru/public/168314/index.php?ID=168314, там же описано ручное исправление проблемы средствами MS SQL Managment Studio. Скрипт позволяет автоматически включить простую модель восстановления и обрезать ldf файлы для всех баз на сервере.

По умолчанию в SQL Server 2008 модель восстановления FULL. Из-за этого журнал транзакций разрастается до такой степени, что при входе в 1С может появляться ошибка о нехватке места.

Просто выполнив этот скрипт, Вы обрежете все логи операций на сервере и установите простую модель выполнения, без вреда для баз данных.

На выходе выводится количество освобожденного места на диске.

13 Comments

  1. CheBurator

    Зачем нужна фулл-модель, если симпл-модель «без вреда для баз данных»..? Симпл модель позволяет откатиться/восстаовиться на любой момент времени?

    Reply
  2. TravkinSV

    (1) CheBurator, вопрос не в том, что для чего нужно. Без вреда имеется ввиду, что mdf не урезаются, а только лог транзакций. Этот скрипт для тех, кто решил установить Simple модель, что бы не настраивать вручную во всех базах и не делать shrink вручную. Я не настаиваю на использовании простой модели, но лично я ни разу не сталкивался с требованием загрузки бэкапа с точностью до минуты

    Reply
  3. insurgut

    (2) шринкать не обязательно, просто бэкапы нужно настраивать средствами SQL… либо на симпл переходить и тоже бэкапы настраивать на случай чего 🙂

    Reply
  4. wbazil

    когда-то пользовался скриптом

    USE MSklad;

    GO

    ALTER DATABASE MSklad

    SET RECOVERY SIMPLE;

    GO

    DBCC SHRINKFILE(‘MSklad_log’,100);

    GO

    ALTER DATABASE MSklad

    SET RECOVERY FULL;

    Reply
  5. insurgut

    (4) wbazil, если перевести на русский народный, то называется этот скрипт — извращение 🙂

    Reply
  6. wbazil

    -когда-то ……..

    все были молодыми,можно конечно бекап лога настроить, но надо заметить задачу он выполнял

    это было ночное задание, делаем фул бекап, реиндексацию, обновление стат., очистка кэша, и шринк

    Reply
  7. PVG_73

    (1) CheBurator,

    Фулл-модель актуально если делать деференциальные бакапы, т.е. имеем возможность восстановить данные до определенного момента времени и он же подразумевает чистку лога от ненужной информации.

    Симпл-модель нужня для всех остальных, которые делают бакапы от случая к случаю или по расписанию…. 😉 В этом случае в логе хранится только текущая транзакция и после того как она завершится она автоматически оттуда удаляется. Проблемы могут возникнуть только в одном случае, если идет большая транзакция. Если мне память не изменяет, то групповое проведение как раз выполняется в неявной транзакции, поэтому лог может вырости до разных размеров.

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

    Reply
  8. insurgut

    (7) PVG_73, стандартное групповое перепроведение выполняется не в транзакции (ну и галочку конечно редко кто взводит) 🙂 Но многие любят писать сложные обработки документов и заключать их от начала до конца в транзакцию. Тут конечно может случится казус.

    Reply
  9. aspirator23

    …Автоматически 1С создает базу с моделью восстановления FULL…

    Такие голословные предположения не стоит делать.

    Модель восстановления SQL сервера для создаваемых новых баз определяется базой model.

    Правильная ее настройка позволяет правильно создавать любую новую базу на сервере.

    Reply
  10. insurgut

    🙂

    Reply
  11. TravkinSV

    (9) aspirator23, Извиняюсь, не знал, отредактировал….

    Reply
  12. aspirator23

    Кто у кого …?

    http://infostart.ru/public/453537

    Reply
  13. TravkinSV

    (12) aspirator23, Даты говорят, что не я. Но судя по скрипту на скриншоте — никто ни у кого.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *