Инициализация файлов базы данныхDatabase File Initialization

Этот раздел применим к: ДаSQL Server НетБаза данных SQL AzureНетХранилище данных SQL AzureНетParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Файлы данных и журналов инициализируются, чтобы перезаписать все существующие данные на диске, оставшиеся после удаленных файлов.Data and log files are initialized to overwrite any existing data left on the disk from previously deleted files. Файлы данных и журналов сначала инициализируются путем обнуления (заполнения нулями) при выполнении одной из следующих операций:Data and log files are first initialized by zeroing the files (filling with zeros) when you perform one of the following operations:

  • Создание базы данных.Create a database.
  • Добавление файлов данных и журналов к существующей базе данных.Add data or log files, to an existing database.
  • Увеличение размера существующего файла (включая операции автоувеличения).Increase the size of an existing file (including autogrow operations).
  • Восстановление базы данных или файловой группы.Restore a database or filegroup.

Вследствие инициализации файлов эти операции занимают больше времени.File initialization causes these operations to take longer. Однако, если данные записываются в файлы первый раз, операционной системе не требуется заполнять файлы нулями.However, when data is written to the files for the first time, the operating system does not have to fill the files with zeros.

Мгновенная инициализация файлов (IFI)Instant File Initialization (IFI)

В SQL ServerSQL Server файлы данных могут инициализироваться мгновенно во избежание операций обнуления.In SQL ServerSQL Server, data files can be initialized instantaneously to avoid zeroing operations. Мгновенная инициализация файлов позволяет быстро выполнять упомянутые ранее файловые операции.Instant file initialization allows for fast execution of the previously mentioned file operations. Мгновенная инициализация файлов освобождает место на диске, не заполняя пространство нулями.Instant file initialization reclaims used disk space without filling that space with zeros. Вместо этого содержимое диска перезаписывается, поскольку в файлы записываются новые данные.Instead, disk content is overwritten as new data is written to the files. Файлы журналов не могут быть инициализированы мгновенно.Log files cannot be initialized instantaneously.

Примечание

Мгновенная инициализация файлов доступна только в MicrosoftMicrosoft Windows XP ProfessionalWindows XP Professional , Windows Server 2003Windows Server 2003 или более поздних версиях.Instant file initialization is available only on MicrosoftMicrosoft Windows XP ProfessionalWindows XP Professional or Windows Server 2003Windows Server 2003 or later versions.

Важно!

Мгновенная инициализация файлов доступна только для файлов данных.Instant file initialization is available only for data files. Файлы журналов всегда будут обнуляться при создании или увеличении размера.Log files will always be zeroed when being created, or growing in size.

Мгновенная инициализация файлов доступна, только если стартовой учетной записи службы SQL ServerSQL Server предоставлено разрешение SE_MANAGE_VOLUME_NAME.Instant file initialization is only available if the SQL ServerSQL Server service startup account has been granted SE_MANAGE_VOLUME_NAME. Участники группы администраторов Windows обладают этим правом и могут предоставить его другим пользователям, добавив их в политику безопасности Выполнение задач обслуживания томов .Members of the Windows Administrator group have this right and can grant it to other users by adding them to the Perform Volume Maintenance Tasks security policy.

Важно!

Некоторые условия, например прозрачное шифрование данных, могут не допускать мгновенную инициализацию файлов.Some feature usage, such as Transparent Data Encryption (TDE), can prevent Instant File Initialization.

Предоставление учетной записи разрешения Perform volume maintenance tasks .To grant an account the Perform volume maintenance tasks permission:

  1. На компьютере, где будет создан файл резервной копии, откройте приложение Local Security Policy (secpol.msc).On the computer where the backup file will be created, open the Local Security Policy application (secpol.msc).

  2. Разверните на левой панели узел Локальные политики, а затем щелкните пункт Назначение прав пользователей.In the left pane, expand Local Policies, and then click User Rights Assignment.

  3. На правой панели дважды щелкните Выполнение задач по обслуживанию томов.In the right pane, double-click Perform volume maintenance tasks.

  4. Щелкните кнопку Добавить пользователя или группу и добавьте любые учетные записи пользователя, которые использовались для резервного копирования.Click Add User or Group and add any user accounts that are used for backups.

  5. Нажмите кнопку Применитьи закройте все диалоговые окна Локальная политика безопасности .Click Apply, and then close all Local Security Policy dialog boxes.

Примечание

Начиная с SQL Server 2016 (13.x)SQL Server 2016 (13.x), это разрешение можно предоставлять учетной записи службы во время установки.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), this permission can be granted to the service account at install time, during setup. При использовании установки из командной строки добавьте аргумент /SQLSVCINSTANTFILEINIT либо установите флажок Предоставить право на выполнение задач обслуживания тома службе ядра СУБД SQL Server в мастере установки.If using the command prompt install, add the /SQLSVCINSTANTFILEINIT argument, or check the box Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine Service in the installation wizard.

Примечание

Начиная с версий SQL Server 2012 (11.x)SQL Server 2012 (11.x) с пакетом обновления 4 (SP4) и SQL Server 2016 (13.x)SQL Server 2016 (13.x) с пакетом обновления 1 (SP1), вплоть до SQL Server 2017SQL Server 2017, вы можете использовать столбец instant_file_initialization_enabled в динамическом административном представлении sys.dm_server_services для определения, включена ли мгновенная инициализация файлов.Starting with SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, and SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 through SQL Server 2017SQL Server 2017, the column instant_file_initialization_enabled in the sys.dm_server_services DMV can be used to identify if instant file initialization is enabled.

RemarksRemarks

Если учетной записи запуска службы SQL ServerSQL Server предоставлено разрешение SE_MANAGE_VOLUME_NAME, во время запуска в журнале ошибок SQL ServerSQL Server регистрируется подобное информационное сообщение.If the SQL ServerSQL Server service startup account is granted SE_MANAGE_VOLUME_NAME, an informational message that resembles the following is logged in the SQL ServerSQL Server error log at startup:

Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.

Если учетной записи запуска службы SQL ServerSQL Server не предоставлено разрешение SE_MANAGE_VOLUME_NAME, во время запуска в журнале ошибок SQL ServerSQL Server регистрируется подобное информационное сообщение.If the SQL ServerSQL Server service startup account has not been granted SE_MANAGE_VOLUME_NAME, an informational message that resembles the following is logged in the SQL ServerSQL Server error log at startup:

Database Instant File Initialization: disabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.

Применимо к: SQL ServerSQL Server (начиная с версии SQL Server 2012 (11.x)SQL Server 2012 (11.x) с пакетом обновления 4 (SP4), SQL Server 2014 (12.x)SQL Server 2014 (12.x) с пакетом обновления 2 (SP2) и версий с SQL Server 2016 (13.x)SQL Server 2016 (13.x) до SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (Starting with SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 and SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

Соображения безопасностиSecurity Considerations

При использовании мгновенной инициализации файлов (IFI), так как удаленное содержимое диска перезаписывается только по мере записи в файлы новых данных, пока в помеченную удаленной область файла данных не будут записаны другие данные, неавторизованный субъект может получить доступ к удаленному содержимому.When using Instant File Initialization (IFI), because the deleted disk content is overwritten only as new data is written to the files, the deleted content might be accessed by an unauthorized principal, until some other data writes on that specific area of the data file. По мере подключения файла базы данных к экземпляру SQL ServerSQL Server риск раскрытия информации уменьшается благодаря списку управления доступом на уровне пользователей (DACL) в файле.While the database file is attached to the instance of SQL ServerSQL Server, this information disclosure risk is reduced by the discretionary access control list (DACL) on the file. DACL разрешает доступ к файлу только учетной записи службы SQL ServerSQL Server и локальному администратору.This DACL allows file access only to the SQL ServerSQL Server service account and the local administrator. Но при отсоединении файла доступ к нему может получить пользователь или служба, которым не предоставлено разрешение SE_MANAGE_VOLUME_NAME.However, when the file is detached, it may be accessed by a user or service that does not have SE_MANAGE_VOLUME_NAME. Аналогичная проблема существует при резервном копировании базы данных. Если файл резервной копии не защищен с помощью соответствующего DACL, удаленное содержимое может стать доступным неавторизованному пользователю или службе.A similar consideration exists when the database is backed up: if the backup file is not protected with an appropriate DACL, the deleted content can become available to an unauthorized user or service.

Следует учитывать и то, что при увеличении файла с помощью IFI администратор SQL Server потенциально может получить доступ к содержимому необработанных страниц и просматривать ранее удаленное содержимое.Another consideration is that when a file is grown using IFI, a SQL Server administrator could potentially access the raw page contents and see the previously deleted content.

Если файлы базы данных размещаются в сети хранения данных, она может всегда представлять новые страницы в виде предварительно инициализированных, что может создавать излишнюю нагрузку, так как операционной системе требуется инициализировать эти страницы повторно.If the database files are hosted on a storage area network, it is also possible that the storage area network always presents new pages as pre-initialized, and having the operating system re-initialize the pages might be unnecessary overhead.

Примечание

Если сервер SQL ServerSQL Server установлен в защищенной физической среде, выигрыш в производительности от мгновенной инициализации файлов может перевесить риск нарушения безопасности. Именно поэтому мы приводим здесь эту рекомендацию.If SQL ServerSQL Server is installed in a secure physical environment, the performance benefits of enabling instant file initialization can outweigh the security risk and hence the reason for this recommendation.

Если вероятность раскрытия удаленного содержимого является серьезной проблемой, необходимо выполнить одно следующее действие или оба.If the potential for disclosing deleted content is a concern, you should take one or both of the following actions:

  • Всегда проверяйте, что все отсоединенные файлы данных и резервные копии имеют ограничивающие DACL.Always make sure that any detached data files and backup files have restrictive DACLs.
  • Отключите мгновенную инициализацию файлов для экземпляра SQL ServerSQL Server, отменив разрешение SE_MANAGE_VOLUME_NAME стартовой учетной записи службы SQL ServerSQL Server.Disable instant file initialization for the instance of SQL ServerSQL Server by revoking SE_MANAGE_VOLUME_NAME from the SQL ServerSQL Server service startup account.

Важно!

Отключение мгновенной инициализации файлов приведет к увеличению времени распределения файлов данных.Disabling instant file initialization will increase allocation times for data files.

Примечание

Отключение мгновенной инициализации файлов влияет только на создаваемые или увеличивающиеся в размере файлы после отзыва прав пользователя.Disabling instant file initialization only affects files that are created or increased in size after the user right is revoked.

См. также:See Also

CREATE DATABASE (SQL Server Transact-SQL)CREATE DATABASE (SQL Server Transact-SQL)