Растущий дикими темпами лог MS-SQL 2008 #451579


#0 by markers
Здраствуйте! Тут такая ситуация... перешли мы на RAID 5 + SAS винты... базу перенесли на новые винты (особых настроек не менялось)... Но начались проблемы с тем что лог MS-SQL стал расти зверскими темпами (После пересоздания базы т.к. занял лог всё место на винте и постоянных разрешений на расширения лога, он уже занимает 54,3 гб, против 7 гб самой базы). Раньше такой проблемы небыло.... Сделал задание в MS-SQL 2008: 1) "Очистка процедурного кэша" - DBCC FREEPROCCACHE 2) "Реиндексация" - sp_msforeachtable N'DBCC DBREINDEX (''?'')' 3) "Обрезание лога" - BACKUP DATABASE [TradeBase] TO  [Бэкап] WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 10 DBCC SHRINKDATABASE(TradeBase, NOTRUNCATE) DBCC SHRINKDATABASE(TradeBase, 15, TRUNCATEONLY) 4) "Обновление статистики" - exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN' Всё это шаги одного задания. Но это задание только ещё больше кушает лога... Когда шаг "обрезание лога" запускался на кончевшейся квоте журнала, в сообщениях написано следующее: "Выполняется от имени пользователя: xxxxxxxx.Журнал транзакций для базы данных "TradeBase" заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы sys.databases [SQLSTATE 42000] (Ошибка 9002)  BACKUP DATABASE прервано с ошибкой. [SQLSTATE 42000] (Ошибка 3013).  Шаг завершился с ошибкой." Подумал что виной автоматическое обновление статистики и ассинхронное обновление статистики, выключил - не помогло. Подскажите плиз, в чём может быть проблема? Заранее спасибо!
#1 by markers
ЗЫ: 1С 8.1 Торговля переписанная работает с этой базой (TradeBase)
#2 by detec
В параметрах SQL-базы попробуйте установить "Методика восстановления" - "Простая".
#3 by markers
Спасибо! Поставил, стояла "Полная". Кстати один раз столкнулся с такой сутацией что журнал сильно переполнился и MS-SQL делал восстановление базы, чем это могло быть вызвано? Спасибо!
#4 by Slon747
Попробовать то можно. Но потом не будут создаваться бекапы транзакций. Надо копать в другом месте.
#5 by markers
Сейчас сделал запрос (Select log_reuse_wait_desc FROM sys.databases WHERE database_id = '5'), как предлагает сообщение об ошибке, выполнил и получил "NOTHING".
#6 by markers
, есть варианты?
#7 by Slon747
Кстати, если я не ошибаюсь, то нет смысла от реиндексации, если после нее идет SHRINKDATABASE. Надо бы сжимать не всю базу, а только лог. Типа этого: DBCC SHRINKFILE(_base_Log, 10)
#8 by Slon747
Попробуй так: 1. BACKUP LOG basename WITH TRUNCATE_ONLY 2. DBCC SHRINKFILE(basename_Log, 10) 3. EXEC sp_MSforeachtable N'DBCC DBREINDEX(''?'')' P.S. В пункте 2 "basename_Log" - то, что Logical_Name у базы
#9 by markers
А остальное убрать? Счас написал так: ;BACKUP DATABASE [TradeBase] TO  [Бэкап] WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 10 ;DBCC SHRINKDATABASE(TradeBase, NOTRUNCATE) ;DBCC SHRINKDATABASE(TradeBase, 15, TRUNCATEONLY) DBCC SHRINKFILE(TradeBase_log, 10)
#10 by markers
ок! Счас сделаю!
#11 by markers
всё сделал, сейчас в рабочее время можно это запустить задание?
#12 by Slon747
Индексацию не стоит запускать в раб. время. Хотя, всё зависит от базу и железа. У меня база 70 ГБ 30 мин. индексируется ночью
#13 by Slon747
+ Тормоза будут конктреные
#14 by Мохнатое рыло
За RAID5 Автору никто в лоб не дал?
#15 by Slon747
Я бы RAID10 поставил.
#16 by markers
У меня база 7 гигов, из-за большого лога и так тормозов хватает... Ладно счас посмотрим! Спасибо! Если есть ещё какие-нибудь идеи и пр, говорите! Кстати "Методика восстановления" - "Простая" оставить или вернуть на "Полная"? , Да знаю что счас его не ценят, хотя когда покупал, ставил рейд был ещё под впечатлением его якобы полезности для БД.... на 10-ку тоже думаю надо бы, но надо сначала тогда ещё один винт купить (я из-за малых винансов собрал 5 рэйд без резерва).
#17 by Slon747
Обязательно вернуть в Full. Иначе не восстановить всё, что после full backup. Ночью full, каждый час - бекап транзакций (это частный случай). Ну или тогда вместо бекапов транзакций делать разностные копии (different). Хотя я точно не помню, будут ли они создаваться с простой моделью.
#18 by markers
Лучше вернуть, вернул! Спасибо! Насчёт бэкапа вопрос... у меня ночью много соплежевательных рег.заданий, если при этом будет делатся полный бэкап, не будет мешать друг-другу? И вообще сможет ли оно работать без перевода в режим offline? Сейчас у меня стоит полный бэкап в выходные. Спасибо!
#19 by Slon747
Не должно сильно мешать. Будет работать без перевода в offline. Пожалуйста.
#20 by markers
Ок, ещё раз вам, и , А так же этому волшебному форуму, БОЛЬШУШЕЕ СПАСИБО!!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С