gifts2017

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

Опубликовал Сергей Травкин (TravkinSV) в раздел Администрирование - Сервисные утилиты

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

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

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

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ShrinkFiles
.sql 1,62Kb
13.01.16
7
.sql 1.0 1,62Kb 7 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей (Che) Коцюра (CheBurator) 14.01.16 00:28
Зачем нужна фулл-модель, если симпл-модель "без вреда для баз данных"..? Симпл модель позволяет откатиться/восстаовиться на любой момент времени?
2. Сергей Травкин (TravkinSV) 14.01.16 00:43
(1) CheBurator, вопрос не в том, что для чего нужно. Без вреда имеется ввиду, что mdf не урезаются, а только лог транзакций. Этот скрипт для тех, кто решил установить Simple модель, что бы не настраивать вручную во всех базах и не делать shrink вручную. Я не настаиваю на использовании простой модели, но лично я ни разу не сталкивался с требованием загрузки бэкапа с точностью до минуты
3. Анянов Михаил (insurgut) 14.01.16 08:14
(2) TravkinSV, шринкать не обязательно, просто бэкапы нужно настраивать средствами SQL... либо на симпл переходить и тоже бэкапы настраивать на случай чего :)
4. BAZIL BAZIL (wbazil) 14.01.16 08:51
когда-то пользовался скриптом

USE MSklad;
GO
ALTER DATABASE MSklad
SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE('MSklad_log',100);
GO
ALTER DATABASE MSklad
SET RECOVERY FULL;
5. Анянов Михаил (insurgut) 14.01.16 09:30
(4) wbazil, если перевести на русский народный, то называется этот скрипт - извращение :)
6. BAZIL BAZIL (wbazil) 15.01.16 18:01
-когда-то ........

все были молодыми,можно конечно бекап лога настроить, но надо заметить задачу он выполнял
это было ночное задание, делаем фул бекап, реиндексацию, обновление стат., очистка кэша, и шринк
7. Виталий (PVG_73) 20.01.16 13:28
(1) CheBurator,
Фулл-модель актуально если делать деференциальные бакапы, т.е. имеем возможность восстановить данные до определенного момента времени и он же подразумевает чистку лога от ненужной информации.
Симпл-модель нужня для всех остальных, которые делают бакапы от случая к случаю или по расписанию.... ;-) В этом случае в логе хранится только текущая транзакция и после того как она завершится она автоматически оттуда удаляется. Проблемы могут возникнуть только в одном случае, если идет большая транзакция. Если мне память не изменяет, то групповое проведение как раз выполняется в неявной транзакции, поэтому лог может вырости до разных размеров.

Ну и всегда нужно помнить, что при любом восстановлении базы размер файла лога всегда соответствует размеру файла лога при совершении бакапа, и это не смотря на то что он просто создается пустой. Поэтому идеальной схемой бакапирования при симп модели : сначала шринк лога, потом бакап.
8. Анянов Михаил (insurgut) 20.01.16 20:04
(7) PVG_73, стандартное групповое перепроведение выполняется не в транзакции (ну и галочку конечно редко кто взводит) :) Но многие любят писать сложные обработки документов и заключать их от начала до конца в транзакцию. Тут конечно может случится казус.
9. aspirator 23 (aspirator23) 23.01.16 16:40
...Автоматически 1С создает базу с моделью восстановления FULL...
Такие голословные предположения не стоит делать.
Модель восстановления SQL сервера для создаваемых новых баз определяется базой model.
Правильная ее настройка позволяет правильно создавать любую новую базу на сервере.
10. Анянов Михаил (insurgut) 23.01.16 20:29
11. Сергей Травкин (TravkinSV) 25.01.16 18:44
(9) aspirator23, Извиняюсь, не знал, отредактировал....
13. Сергей Травкин (TravkinSV) 17.03.16 17:12
(12) aspirator23, Даты говорят, что не я. Но судя по скрипту на скриншоте - никто ни у кого.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа