![]() |
![]() |
![]() |
|
Растущий дикими темпами лог 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), А так же этому волшебному форуму, БОЛЬШУШЕЕ СПАСИБО!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |