Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите уменьшить время процесса "In Recovery"  [new]
PavluxaF
Member

Откуда: СПб
Сообщений: 126
Доброго времени суток.

Имеются 2 базы данных. Развернутые на двух абсолютно идентичных supermicro-вских высокопроизводительных серваках.
1-я база объемом 4 терабайт после перезагрузки находиться в состоянии "In Recovery" 3-4 минуты. 2-я база объемом 1 терабайт восстанавливается часов 5-6. В этом заключается огромная проблема. Recovery model для обоих БД стоит -FULL. Переход на более простую невозможен из-за необходимости обеспечения целостности данных. Количество таблиц обоих БД приблизительно одинаковое. Количество вносимых записей за сутки приблизительно 50 - 60 миллионов в каждую базу. Структуры БД сформированы по единому принципу. Единственное существенное различие - применение на всех таблицах 2-ой БД DataCompression = Page, однако мне кажется что такая разница во времени не из-за этого.

Прошу поделиться Вашими соображениями о причинах такой разницы во времени восстановления.
А также возможностях снижения времени процесса "Recovery".

За ранее спасибо.
15 июл 11, 17:08    [10981472]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Crimean
Member

Откуда:
Сообщений: 13147
ERRORLOG покажите. все, а не только последний.
15 июл 11, 17:22    [10981554]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
andsm
Member

Откуда: Москва
Сообщений: 1320
Блог
Наверняка во второй базе была большая незакрытая транзакция. Проверьте в следующий раз перед тем как останавливать сервер. Это также можно понять по errorlog-у.
Со стороны железа время восстановления обычно может быть ускорено переходом на более высокоскоростную дисковую систему, иногда также добавлением памяти.

Full или Simple на время восстановления не влияет.
Если вторая БД на другом сервере, возможно там кто-то поигрался с Recovery interval - проверьте что его значение стоит по умолчанию.
15 июл 11, 17:27    [10981565]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
PavluxaF,

Не игрался с DataCompression в 2008-м
Но точно помню, что сжатие файлов БД на уровне файловой системы - приводило к очень некислому проседанию.
15 июл 11, 18:09    [10981804]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
PavluxaF
Member

Откуда: СПб
Сообщений: 126
error log обязательно посмотрю и выложу в понедельник. А по поводу datacompression - к какому проседанию? опытным путем получено что select, insert и update работают также. Есть даже статья, описывающая что применение сжатия позволяет ускорить выполнение запросов (парадокс!!). Но для базы таких размеров сжатие это неизбежный фактор. Дисковое пространство дальше разгонять некуда. Применяется EVA архитектура HP. Recovery interval стоит по умолчанию. Я единственный админ.
15 июл 11, 18:57    [10982015]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
PavluxaF
Применяется EVA архитектура HP. Recovery interval стоит по умолчанию. Я единственный админ.
Обе базы с обоих серверов лежат на одной EVA?
15 июл 11, 19:01    [10982042]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Crimean
Member

Откуда:
Сообщений: 13147
PavluxaF
Есть даже статья, описывающая что применение сжатия позволяет ускорить выполнение запросов (парадокс!!)


никакого парадокса. дисковые операции самые медленные. а тут уменьшаем нагрузку на диск, немного подгружая проц
все логично и действительно работает
тот же FT работает только со сжатием
ну и к сжатию на уровне файловой системы это конечно же отношения не имеет
15 июл 11, 19:01    [10982048]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
PavluxaF
Member

Откуда: СПб
Сообщений: 126
На разных Eva
15 июл 11, 23:28    [10982971]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Crimean
никакого парадокса. дисковые операции самые медленные. а тут уменьшаем нагрузку на диск, немного подгружая проц
все логично и действительно работает
тот же FT работает только со сжатием
ну и к сжатию на уровне файловой системы это конечно же отношения не имеет
тогда остается парадокс с файловым сжатием... тоже дисковые транзакции как бы меньше, распаковываем в кэше. во времена Win NT, и MSSQL 6.5 этого заметно не было.
А начиная с SQL2000 - жОстко просело.
15 июл 11, 23:48    [10983014]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
PavluxaF
На разных Eva
может, есть смысл хотя бы поэкспериментировать со сжатием?
15 июл 11, 23:49    [10983018]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35376
Блог
http://msdn.microsoft.com/ru-ru/library/ms191154.aspx
16 июл 11, 00:14    [10983115]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
PavluxaF
Member

Откуда: СПб
Сообщений: 126
Errorlog пустой. Там только системная информация о запуске. Отличаются логи работы SQL server-ов. На том серваке который долго восстанавливается после перезапуска есть следующие строки.

0 transactions were rolled back.
18 transactions were rolled forward.

Как узнать что это за транзакции?

Сегодня сделал следующее:
DBCC OPENTRAN вернуло следующее
No active open transactions.

Для убедительности сделал CHECKPOINT и перезапустил сервак. Результата не дождался ушел домой, но за 20 минут recovery не закончилось.

Надо как-то отключить восстановление транзакций после перезапуска. Как это сделать? По идее переходом на recovery model - simple.
Однако возникает вопрос. При перезагрузке сервера на какой момент восстановиться база? По идее на момент последней удачной записи данных на жесткий диск. Хочу услышать ваше мнение
16 июл 11, 19:05    [10984492]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
PavluxaF
Member

Откуда: СПб
Сообщений: 126
Забыл добавить backup-ы на базу не делаются вообще
16 июл 11, 19:06    [10984495]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31950
PavluxaF
Надо как-то отключить восстановление транзакций после перезапуска. Как это сделать?
Никак
PavluxaF
По идее переходом на recovery model - simple
Не поможет, разницы в процедуре загрузки для любой модели нет.

Думаю, нужно для начала выложить лог, как обещали.
PavluxaF
Забыл добавить backup-ы на базу не делаются вообще
То есть готовы перенабирать данные руками? :-)
16 июл 11, 19:25    [10984541]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Recovery model
Guest
Recovery model: Full нужен только для бэкапа лога транзакций и возврата на любую точку во времени. Если этого не нужно, можно смело ставить simple.

In Recovery находится потому что накатываются на БД ранее завершенные транзакции, но которые ещё не попали в БД:
- читается лог
- сжимаются данные
- пишется в БД
Возможно долго накатывается из-за сжатия. По монитору нагрузки упирается в диски или в CPU во время In Recovery?
Перезагрузка серверов осуществлялась в штатном порядке или просто выключением питания не дожидаясь остановки сервиса MS SQL?

Вообще странно что БД в In Recovery после штатной перезагрузки.
16 июл 11, 19:41    [10984562]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
q
Guest
PavluxaF
Recovery model для обоих БД стоит -FULL. Переход на более простую невозможен из-за необходимости обеспечения целостности данных.

какая загадочная фраза ...
16 июл 11, 22:25    [10984859]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
q
PavluxaF
Recovery model для обоих БД стоит -FULL. Переход на более простую невозможен из-за необходимости обеспечения целостности данных.

какая загадочная фраза ...
вероятно, бэкапы логов идут по расписанию?
17 июл 11, 00:33    [10985321]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 851
PavluxaF
Забыл добавить backup-ы на базу не делаются вообще


Зря!
17 июл 11, 18:04    [10986329]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
бэкапы на журнал
Guest
PavluxaF
Забыл добавить backup-ы на базу не делаются вообще

А бэкапы на журнал транзакций делаются?
17 июл 11, 18:29    [10986387]     Ответить | Цитировать Сообщить модератору
 Re: Помогите уменьшить время процесса "In Recovery"  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Если SQL2008: Recovery takes longer than expected for a database in a SQL Server 2008 environment

Фикс входит в SP2 CU5
19 июл 11, 10:33    [10993128]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить