Настройка автоматической обрезки лога на сервере MS SQL 2008 R2

1. Kutuzov 750 05.11.14 15:19 Сейчас в теме
Подскажите, плиз, как на MS SQL Server 2008 R2 настроить автоматическую обрезку лога?
Вознаграждение за ответ
Показать полностью
Найденные решения
12. h00k 51 06.11.14 17:57 Сейчас в теме
(1)
Подскажите, плиз, как на MS SQL Server 2008 R2 настроить автоматическую обрезку лога?

Я понимаю, поиск нынче не в моде, поэтому даю ссылку. Вот хорошая статья на тему, в ней есть не только примеры "как", но и объяснение "почему". Букв конечно много, но есть и картинки ;).

П.С.: Рекомендую к прочтению и всем тем, кто советует сменить режим восстановления на простой или предлагает шринковать.
SerSh_Perm; valkovsky; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. DJDUH 17 06.11.14 11:27 Сейчас в теме
(1) Kutuzov, Два варианта:
1) (2) - здесь написали!
2) Зачем тебе полное восстановление в SQL (измени на Простая и не будет у тебя пухнуть журнал лога)!?
5. AlexeyPapanov 468 06.11.14 11:38 Сейчас в теме
(1) Kutuzov, я в своем топике задавался таким вопросом, когда у меня логи до 300 Гб выросли :)
http://forum.infostart.ru/forum16/topic118695/message1242561/#message1242561

переведи базу в режим восстановления симпл и сделай шринк лога.

(2) MerlinVVV, ну это как бы не фонтан - гонять базу из фулл в симпл и обратно.
вообще, если вы не знаете чем отличается фулл от симпл, ставьте симпл и не будет проблем с ростом логов.
если бекап каждый день и в случае сбоя для вас подходит восстановление но момент бекапа (т.е. утеря данных с момента последнего бекапа до сбоя), то симпл ставьте.
6. Armando 1402 06.11.14 11:39 Сейчас в теме
(1) Kutuzov, зачем его обрезать?
9. AlexeyPapanov 468 06.11.14 15:33 Сейчас в теме
(6) Armando, места может много занимать. у меня распух до 300 Гб.
перевел базу в симпл, обрезал лог и теперь спокойнее.
не надо париться с обрезкой.
в ссылке, которую я приводил, написано как я решил свою проблему.
10. Armando 1402 06.11.14 16:06 Сейчас в теме
(9) El_Loco, понятно что босле бекап+шринк он обрежется. Если бекап делать регулярно, то ничего не распухнет.
11. valkovsky 06.11.14 16:19 Сейчас в теме
(1) Kutuzov, ответьте пожалуйста на следующие вопросы:
0) Знаете ли Вы, в каком режиме восстановления работает Ваша база?

На всякий случай, инструкция для ответа на этот вопрос:
В русскоязычной "Среда SQL Server Management Studio" правой кнопкой по нужной базе данных, Свойства, в вертикальной вкладке "Параметры", строка "Модель восстановления:" - что там указано?

Если не "Простая", то Вам следующие два вопроса:
1) Вас устроит делать резервную копию ВСЕЙ базы один раз в день (или чаще, или реже, зависит от размера базы и размера и скорости хранилища резервных копий)?
2) При этом, устроит ли Вас, что в случае сбоя, восстановить базу можно будет только до её состояния на момент начала резервного копирования?

Если ответ на оба вопроса - да, то можно перевести базу в "Модель восстановления: Простая" (в том-же месте SQL Server Management Studio, затем нажать Ок, конечно же), после чего уменьшить размер [каждого] файла лога (перейти в верт. вкладку "Файлы", и для файла "ИМЯБАЗЫ_log" уменьшить значение столбца "Начальный размер" до чего-нибудь, не меньшего мегабайт двухсот, и в столбце "Авторасширение" установить чего-нибудь, не меньшее мегабайт пятидесяти, на самом деле оба значения можно сделать сильно больше, если база соотв. сильно большая,,, к слову, можете выдать на обозрение текущий размер файлов данных и файлов лога).

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

Если же у базы модель восстановления - простая, и при этом лог вырос, значит, была такая транзакция, которой это понадобилось, и возможно, будет ещё, и уменьшать лог в этом случае может быть и нецелесообразно.
Но если Вы настаиваете :-) , то смотрите, как написал коллега в (2), но в поле команда оставьте только:
USE ИмяБазы
DBCC SHRINKFILE (ИмяФайлаЛога, ЖелаемыйРазмерВМегабайтах);
, и далее по тексту - создадите расписание, по кот. задание будет выполняться, и тупо обрезать лог. Повторюсь, что в случае с простой моделью это возможно лучше и не делать.
12. h00k 51 06.11.14 17:57 Сейчас в теме
(1)
Подскажите, плиз, как на MS SQL Server 2008 R2 настроить автоматическую обрезку лога?

Я понимаю, поиск нынче не в моде, поэтому даю ссылку. Вот хорошая статья на тему, в ней есть не только примеры "как", но и объяснение "почему". Букв конечно много, но есть и картинки ;).

П.С.: Рекомендую к прочтению и всем тем, кто советует сменить режим восстановления на простой или предлагает шринковать.
SerSh_Perm; valkovsky; +2 Ответить
2. MerlinVVV 05.11.14 17:12 Сейчас в теме
Тут собственно все просто.

Запускаем: SQL Server Management Studio
В дереве разворачиваем: Agent SQL Server\Задания

Добавляем новое задание:
На вкладке общие указываем имя задание (как вам нравится)
Далее переходим в шаги

Добавляем новый шаг (внизу кнопка создать)

Указываем имя шага (любое)

Тип: Скрипт Transact-SQL (T-SQL)

в поле команда вставляете следующий код:

USE ИмяБазы
ALT ER DATABASE ИмяБазы SET RECOVERY SIMPLE
DBCC SHRINKFILE (ИмяФайлаЛога, ЖелаемыйРазмерВМегабайтах);
ALT ER DATABASE ИмяБазы SET RECOVERY FULL


Далее на вкладке расписания создаем расписание когда должно выполнятся это задание

Жмем кнопку "ОК", все готово

После создания задания можно проверить как это работает:

На созданной задании кликнуть ПКМ и выбрать "Запустить задание на шаге ..."
Там же можно просмотреть журнал выполнения задания
3. Kutuzov 750 06.11.14 10:11 Сейчас в теме
(2) MerlinVVV, здесь пишут о каких-то проблемах, связанных с этим скриптом
http://www.sql.ru/forum/829237/sql-2008r2-i-server-1s-8-1-urezanie-loga
7. ivsher 06.11.14 11:51 Сейчас в теме
Вам нужно внимательно изучить тему резервного копирования баз SQL. Бездумное обрезание лога может привести к плачевным результатам.
8. MerlinVVV 06.11.14 14:50 Сейчас в теме
ну собственно как был поставлен вопрос так я на него и ответил :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот