Inicialización de archivos de base de datosDatabase File Initialization

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Los archivos de datos y registro se inicializan para sobrescribir los datos existentes que los archivos eliminados anteriormente hayan dejado en el disco.Data and log files are initialized to overwrite any existing data left on the disk from previously deleted files. Los archivos de datos y registro se inicializan por primera vez llenando los archivos con ceros al realizar una de estas operaciones:Data and log files are first initialized by zeroing the files (filling with zeros) when you perform one of the following operations:

  • Crear una base de datos.Create a database.
  • Agregue archivos de registro o datos a una base de datos existente.Add data or log files, to an existing database.
  • Aumentar el tamaño de un archivo existente (incluidas las operaciones de crecimiento automático).Increase the size of an existing file (including autogrow operations).
  • Restaurar una base de datos o un grupo de archivos.Restore a database or filegroup.

Inicializar los archivos hace que estas operaciones tarden más.File initialization causes these operations to take longer. Sin embargo, cuando los datos se escriben en los archivos por primera vez, el sistema operativo no tiene que rellenar los archivos con ceros.However, when data is written to the files for the first time, the operating system does not have to fill the files with zeros.

Inicialización instantánea de archivos (IFI)Instant File Initialization (IFI)

En SQL ServerSQL Server, los archivos de datos se pueden inicializar de forma instantánea para evitar que se llenen con ceros las operaciones.In SQL ServerSQL Server, data files can be initialized instantaneously to avoid zeroing operations. La inicialización instantánea de archivos le permite ejecutar rápidamente las operaciones con archivos mencionadas anteriormente.Instant file initialization allows for fast execution of the previously mentioned file operations. La inicialización instantánea de archivos recupera espacio en disco utilizado sin rellenarlo con ceros.Instant file initialization reclaims used disk space without filling that space with zeros. En lugar de eso, el contenido del disco se sobrescribe al escribir nuevos datos en los archivos.Instead, disk content is overwritten as new data is written to the files. Los archivos de registro no se pueden inicializar de forma instantánea.Log files cannot be initialized instantaneously.

Nota

La inicialización instantánea de archivos solo está disponible en MicrosoftMicrosoftWindows XP ProfessionalWindows XP Professional , Windows Server 2003Windows Server 2003 o en versiones posteriores.Instant file initialization is available only on MicrosoftMicrosoftWindows XP ProfessionalWindows XP Professional or Windows Server 2003Windows Server 2003 or later versions.

Importante

La inicialización instantánea de archivos solo está disponible en archivos de datos.Instant file initialization is available only for data files. Los archivos de registro siempre se llenan con ceros al crearlos o cuando aumenta su tamaño.Log files will always be zeroed when being created, or growing in size.

La inicialización instantánea de archivos solo está disponible si se ha concedido SE_MANAGE_VOLUME_NAME a la cuenta de inicio del servicio SQL ServerSQL Server.Instant file initialization is only available if the SQL ServerSQL Server service startup account has been granted SE_MANAGE_VOLUME_NAME. Los miembros del grupo de administradores de Windows tienen este derecho y pueden concederlo a otros usuarios añadiéndolos a la directiva de seguridad Realizar tareas de mantenimiento del volumen .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.

Importante

Ciertos usos de la característica, como el Cifrado de datos transparente (TDE), pueden evitar la inicialización instantánea de archivos.Some feature usage, such as Transparent Data Encryption (TDE), can prevent Instant File Initialization.

Para conceder a una cuenta el permiso Perform volume maintenance tasks :To grant an account the Perform volume maintenance tasks permission:

  1. En el equipo en el que se creará el archivo de datos, abra la aplicación Directiva de seguridad local (secpol.msc).On the computer where the data file will be created, open the Local Security Policy application (secpol.msc).

  2. En el panel izquierdo, expanda Directivas localesy, a continuación, haga clic en Asignación de derechos de usuario.In the left pane, expand Local Policies, and then click User Rights Assignment.

  3. En el panel derecho, haga doble clic en Realizar tareas de mantenimiento del volumen.In the right pane, double-click Perform volume maintenance tasks.

  4. Haga clic en Agregar usuario o grupo y agregue la cuenta que ejecuta el servicio SQL Server.Click Add User or Group and add the account that runs the SQL Server service.

  5. Haga clic en Aplicary, a continuación, cierre todos los cuadros de diálogo de Directiva de seguridad local .Click Apply, and then close all Local Security Policy dialog boxes.

  6. Reinicie el servicio SQL Server.Restart the SQL Server service.

Nota

A partir de SQL Server 2016 (13.x)SQL Server 2016 (13.x), este permiso se puede conceder a la cuenta de servicio durante la instalación.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. Si usa la instalación de línea de comandos, agregue el argumento /SQLSVCINSTANTFILEINIT o active la casilla Conceder el privilegio de realización de tareas de mantenimiento de volumen al servicio del motor de la base de datos de SQL Server en el asistente para la instalación.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.

Nota

A partir de SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4 y desde SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 hasta SQL Server 2017SQL Server 2017, se puede usar la columna instant_file_initialization_enabled en el DMV sys.dm_server_services para identificar si la inicialización instantánea de archivos está habilitada.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.

NotasRemarks

Si la cuenta de inicio de servicio SQL ServerSQL Server tiene concedido SE_MANAGE_VOLUME_NAME, se registra un mensaje informativo que es similar al siguiente en el registro de errores SQL ServerSQL Server en el inicio: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.

Si la cuenta de inicio de servicio SQL ServerSQL Serverno tiene concedido SE_MANAGE_VOLUME_NAME, se registra un mensaje informativo que es similar al siguiente en el registro de errores SQL ServerSQL Server en el inicio: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.

Se aplica a: SQL ServerSQL Server (A partir de SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 y SQL Server 2016 (13.x)SQL Server 2016 (13.x) hasta 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)

Consideraciones de seguridadSecurity Considerations

Al usar la inicialización instantánea de archivos (IFI), como el contenido del disco eliminado solo se sobrescribe cuando se escriben nuevos datos en los archivos, una entidad de seguridad no autorizada puede acceder al contenido eliminado hasta que algún otro dato se escriba en una área específica del archivo de datos.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. Mientras el archivo de la base de datos se adjunte a la instancia de SQL ServerSQL Server, este riesgo de divulgación de la información se reduce mediante la lista de control de acceso discrecional (DACL) del archivo.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. Esta DACL permite acceder al archivo solo a la cuenta de servicio SQL ServerSQL Server y al administrador local.This DACL allows file access only to the SQL ServerSQL Server service account and the local administrator. Sin embargo, cuando el archivo está separado, un usuario o servicio que no tenga SE_MANAGE_VOLUME_NAME puede acceder a él.However, when the file is detached, it may be accessed by a user or service that does not have SE_MANAGE_VOLUME_NAME. Existe una consideración similar al crear una copia de seguridad de la base de datos: si el archivo de copia de seguridad no está protegido con una DACL adecuada, el contenido eliminado puede estar disponible para un usuario o servicio no autorizado.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.

Otra cosa que hay que tener en cuenta es que, cuando un archivo crece usando IFI, un administrador de SQL Server podría acceder a los contenidos de la página sin procesar y ver el contenido que se ha eliminado anteriormente.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.

Si los archivos de base de datos están hospedados en una red de área de almacenamiento, también es posible que esta presente siempre nuevas páginas inicializadas previamente y puede ser que configurar el sistema operativo para que vuelva a inicializar las páginas cree una sobrecarga innecesaria.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.

Nota

Si SQL ServerSQL Server se instala en un entorno físico seguro, las ventajas de rendimiento que se consiguen al habilitar la inicialización instantánea de archivos pueden superar el riesgo de seguridad que supone, y por eso se recomienda.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.

Si le preocupa la posibilidad de que se divulgue contenido eliminado, realice una de las acciones siguientes o ambas:If the potential for disclosing deleted content is a concern, you should take one or both of the following actions:

  • Asegúrese siempre de que los archivos separados y los archivos de copia de seguridad tienen DACL restrictivas.Always make sure that any detached data files and backup files have restrictive DACLs.
  • Deshabilite la inicialización instantánea de archivos para la instancia de SQL ServerSQL Server revocando SE_MANAGE_VOLUME_NAME de la cuenta de inicio del servicio 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.

Importante

Si deshabilita la iniciación instantánea de archivos, aumentarán los tiempos de asignación de los archivos de datos.Disabling instant file initialization will increase allocation times for data files.

Nota

Deshabilitar la inicialización instantánea de archivos solo afecta a los archivos que se han creado o se ha aumentado su tamaño después de que el derecho del usuario se revocara.Disabling instant file initialization only affects files that are created or increased in size after the user right is revoked.

Consulte tambiénSee Also

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