Итак, на подходе третий миф, встречайте!
Миф №3 – Мгновенная инициализация файлов может быть a) включена и b) выключена из SQL Server
a) FALSE b) TRUE соответственно
Мгновенная инициализация – не очень известная возможность SQL Server (2005/2008), которая позволяет избежать инициализации файла данных (неприменимо к файлам лога транзакций) нулями при операциях с ним (создание БД, увеличение размера БД, и т.д.). Это потрясающий способ уменьшить время простоя при восстановлении после сбоя, когда нужно восстанавливать базу с нуля – так как создание файлов не будет занимать часы (возможно) для инициалиции нулями до того, как начнётся сама операция восстановления.
Вы *не можете* включить мновенную инициализацию файлов из SQL Server, т.к. SQL Server проверяет только один раз (при старте) то, что у пользователя под которым запущена служба SQL Server есть необходимые права на уровне операционной системы (Perform Volume Maintenance Tasks a.k.a. SE_MANAGE_VOLUME_NAME) и что мгновенная инициация файлов включена для экземпляра. На эту тему есть отличный пост Kimberly Tripp - Instant Initialization - What, Why, and How, в котором подробно рассказывается об этой возможности и о том как её включить.
Вы *можете* проверить включена ли мновенная инициализация файлов из SQL Server. Для этого нужно включить флаг трассировки 3004 (и 3605 для того, чтобы output писался в errorlog), после чего создать новую базу данных. В errorlog вы увидите сообщения о том, что файл лога инициализирован нулями. Если мгновенная инициализация файлов НЕ включена, в логе также будут видны сообщения о том, что файл данных инициализирован нулями.
Вы *можете* выключить мновенную инициализацию файлов из SQL Server (но только временно). Включение флага трассировки 1806 отключит мгновенную инициализацию файлов, пока флаг будет включён. Для полного отключения необходимо отключить необходимые права на уровне операционной системы.
Если у вас есть возможность включить эту функциональность – включите её!
Об авторе:
Пол С. Рэндал (Paul S. Randal) — генеральный директор SQLskills.com является MVP по SQL Server. Он работал в группе подсистемы хранилища SQL Server в корпорации Майкрософт с 1999 по 2007 г. Пол является автором DBCC CHECKDB/восстановления SQL Server 2005 и в ходе разработки SQL Server 2008 отвечал за программу базовой подсистемы хранилища. Пол является специалистом по аварийному восстановлению, высокой доступности и обслуживанию базы данных и часто дает презентации на различных конференциях по всему миру. Он ведет блог по адресу SQLskills.com/blogs/paul.
Ссылки по теме:
- Оригинал статьи
- Мгновенная инициализация - Что, Почему и Как
- Инициализация файлов базы данных
- Misconceptions around instant file initialization
Денис Резник
.Net Team Lead at LPP Soft
Trainer at Microsoft Innovation Center
Харьков, Украина