Как ускорить восстановление БД в 2 раза!

Каждый администратор знает, что восстановление БД из backup`а – это зачастую медленный процесс. В особенности, если у вас сравнительно большая БД(более 100гб).
А теперь представьте, что продолжительность восстановления базы данных можно сократиться, скажем, в 2 раза воспользовавшись всего 1 опцией.
Предлагаю провести эксперимент. Вот БД TestDB ее размер 100 ГБ, полностью заполненная всякой информацией.

Вся информация этой БД находится в одном файле.

Сделаем backup этой базы данных и после чего «поднимем» БД из backup. Для чистоты эксперимента резервное копирование и восстановление проводятся самым простым способом, без каких либо опций.
Обратим внимание на выдачу RESTORE DATABASE:

Судя по логу само восстановление прошло за 3331 секунду – это около 55 минут. Однако, пользователю, который запустил восстановление БД ждал заверешения больше 2 часов! Получается 55 минут производилось восстановление БД и ещё 1 час 20 минут сервер занимался непонятно чем.
На самом деле, сервер потратил это время на выделение места под восстанавливаемую базу данных. Сложно поверить, но эта операция заняла в 1.5 раза больше времени, чем основной процесс. Удивительно, но получается, что КПД дисковой подсистемы при восстановлении равен 40%, не слишком эффективный результат.
Давайте немного разберемся, для начала зайдём в локальную политику безопасности и откроем учётной записи, под которой работает SQL Server доступ на «выполнение задач по обслуживанию томов» (в английской версии — «perform volume maintenance tasks»).

Чтобы это «заработало» нужно перезапустить SQL Server. В итоге, сервер сможет значительно быстрее выделять место на диске под резервные копии, восстановление БД, а также при расширении файлов баз данных и их журналов.

Вернемся к нашему эксперименту и повторим восстановление 100-гигобайтной БД:

Вот теперь БД в самом деле восстанавление БД занимает 55 минут, что более чем в два раза быстрее, чем с настройками по умолчанию : )

UPD: Настоятельно рекомендую почитать про эту опцию на mdsn перед активацией.

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *