Имя: Пароль:
IT
 
Растущий дикими темпами лог MS-SQL 2008
0 markers
 
22.12.09
13:58
Здраствуйте!
Тут такая ситуация... перешли мы на 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'
Всё это шаги одного задания. Но это задание только ещё больше кушает лога... Когда шаг "обрезание лога" запускался на кончевшейся квоте журнала, в сообщениях написано следующее:
"Выполняется от имени пользователя: xxxx\xxxx.Журнал транзакций для базы данных "TradeBase" заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы sys.databases [SQLSTATE 42000] (Ошибка 9002)  BACKUP DATABASE прервано с ошибкой. [SQLSTATE 42000] (Ошибка 3013).  Шаг завершился с ошибкой."
Подумал что виной автоматическое обновление статистики и ассинхронное обновление статистики, выключил - не помогло.
Подскажите плиз, в чём может быть проблема?
Заранее спасибо!
1 markers
 
22.12.09
13:59
ЗЫ: 1С 8.1 Торговля переписанная работает с этой базой (TradeBase)
2 detec
 
22.12.09
14:02
В параметрах SQL-базы попробуйте установить "Методика восстановления" - "Простая".
3 markers
 
22.12.09
14:05
(2) Спасибо! Поставил, стояла "Полная". Кстати один раз столкнулся с такой сутацией что журнал сильно переполнился и MS-SQL делал восстановление базы, чем это могло быть вызвано? Спасибо!
4 Slon747
 
22.12.09
14:10
(2)(3) Попробовать то можно. Но потом не будут создаваться бекапы транзакций.
Надо копать в другом месте.
5 markers
 
22.12.09
14:11
(0) Сейчас сделал запрос (Select log_reuse_wait_desc FROM sys.databases WHERE database_id = '5'), как предлагает сообщение об ошибке, выполнил и получил "NOTHING".
6 markers
 
22.12.09
14:14
(3), есть варианты?
7 Slon747
 
22.12.09
14:16
Кстати, если я не ошибаюсь, то нет смысла от реиндексации, если после нее идет SHRINKDATABASE.
Надо бы сжимать не всю базу, а только лог. Типа этого:
DBCC SHRINKFILE(_base_Log, 10)
8 Slon747
 
22.12.09
14:21
Попробуй так:
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 markers
 
22.12.09
14:21
(7) А остальное убрать? Счас написал так:
;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 markers
 
22.12.09
14:22
(8) ок! Счас сделаю!
11 markers
 
22.12.09
14:25
(8) всё сделал, сейчас в рабочее время можно это запустить задание?
12 Slon747
 
22.12.09
14:26
(11) Индексацию не стоит запускать в раб. время.
Хотя, всё зависит от базу и железа.
У меня база 70 ГБ 30 мин. индексируется ночью
13 Slon747
 
22.12.09
14:28
+(12) Тормоза будут конктреные
14 Мохнатое рыло
 
22.12.09
14:29
За RAID5 Автору никто в лоб не дал?
15 Slon747
 
22.12.09
14:30
(14) Я бы RAID10 поставил.
16 markers
 
22.12.09
14:36
У меня база 7 гигов, из-за большого лога и так тормозов хватает... Ладно счас посмотрим! Спасибо! Если есть ещё какие-нибудь идеи и пр, говорите! Кстати "Методика восстановления" - "Простая" оставить или вернуть на "Полная"?
(14), (15) Да знаю что счас его не ценят, хотя когда покупал, ставил рейд был ещё под впечатлением его якобы полезности для БД.... на 10-ку тоже думаю надо бы, но надо сначала тогда ещё один винт купить (я из-за малых винансов собрал 5 рэйд без резерва).
17 Slon747
 
22.12.09
14:44
(16) Обязательно вернуть в Full. Иначе не восстановить всё, что после full backup. Ночью full, каждый час - бекап транзакций (это частный случай).
Ну или тогда вместо бекапов транзакций делать разностные копии (different). Хотя я точно не помню, будут ли они создаваться с простой моделью.
18 markers
 
22.12.09
15:05
(17) Лучше вернуть, вернул! Спасибо! Насчёт бэкапа вопрос... у меня ночью много соплежевательных рег.заданий, если при этом будет делатся полный бэкап, не будет мешать друг-другу? И вообще сможет ли оно работать без перевода в режим offline? Сейчас у меня стоит полный бэкап в выходные.
Спасибо!
19 Slon747
 
22.12.09
15:12
(18) Не должно сильно мешать.
Будет работать без перевода в offline.
Пожалуйста.
20 markers
 
22.12.09
15:16
(19) Ок, ещё раз вам, (14) и (2), А так же этому волшебному форуму, БОЛЬШУШЕЕ СПАСИБО!!