Inicialização de arquivos de bancos de dadosDatabase File Initialization

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Arquivos de dados e de log são inicializados para substituir todos os dados existentes que foram deixados no disco por arquivos excluídos anteriormente.Data and log files are initialized to overwrite any existing data left on the disk from previously deleted files. Os arquivos de dados e de log são inicializados pela primeira vez ao anular os arquivos (preenchimento com zeros) quando você executa uma das seguintes operações:Data and log files are first initialized by zeroing the files (filling with zeros) when you perform one of the following operations:

  • Criar um banco de dados.Create a database.
  • Adicionar dados ou arquivos de log a um banco de dados existente.Add data or log files, to an existing database.
  • Aumentar o tamanho de um arquivo existente (inclusive operações de aumento automático).Increase the size of an existing file (including autogrow operations).
  • Restaurar um banco de dados ou grupo de arquivos.Restore a database or filegroup.

A inicialização dos arquivos faz com que essas operações demorem mais.File initialization causes these operations to take longer. Porém, quando os dados são gravados nos arquivos pela primeira vez, o sistema operacional não precisa completar os arquivos com zeros.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 (Inicialização Instantânea de Arquivo)Instant File Initialization (IFI)

Em SQL ServerSQL Server, os arquivos de dados podem ser inicializados de imediato para evitar as operações de anulação.In SQL ServerSQL Server, data files can be initialized instantaneously to avoid zeroing operations. A inicialização instantânea de arquivo permite execução rápida das operações de arquivo mencionadas anteriormente.Instant file initialization allows for fast execution of the previously mentioned file operations. A inicialização imediata de um arquivo recupera espaço em disco sem encher esse espaço com zeros.Instant file initialization reclaims used disk space without filling that space with zeros. Em vez disso, o conteúdo do disco é substituído à medida que novos dados são gravados nos arquivos.Instead, disk content is overwritten as new data is written to the files. Arquivos de log não podem ser inicializados de imediato.Log files cannot be initialized instantaneously.

Observação

A Inicialização Instantânea de Arquivo está disponível apenas no MicrosoftMicrosoftWindows XP ProfessionalWindows XP Professional ou Windows Server 2003Windows Server 2003 ou em versões posteriores.Instant file initialization is available only on MicrosoftMicrosoftWindows XP ProfessionalWindows XP Professional or Windows Server 2003Windows Server 2003 or later versions.

Importante

A inicialização instantânea de arquivo está disponível apenas para os arquivos de dados.Instant file initialization is available only for data files. Os arquivos de log sempre serão anulados quando forem criados ou tiverem aumento de tamanho.Log files will always be zeroed when being created, or growing in size.

A inicialização instantânea de arquivo estará disponível somente se a SQL ServerSQL Server conta de inicialização do serviço tiver recebido 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. Os membros do grupo administrador do Windows têm esse direito e podem atribuí-lo a outros usuários adicionando-os à política de segurança Executar tarefas de manutenção de volume .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

O uso de alguns recursos, como o TDE (Transparent Data Encryption), pode impedir a Inicialização Instantânea de Arquivo.Some feature usage, such as Transparent Data Encryption (TDE), can prevent Instant File Initialization.

Para conceder a permissão Perform volume maintenance tasks a uma conta:To grant an account the Perform volume maintenance tasks permission:

  1. No computador em que o arquivo de dados será criado, abra o aplicativo Política de Segurança Local (secpol.msc).On the computer where the data file will be created, open the Local Security Policy application (secpol.msc).

  2. No painel esquerdo, expanda Políticas Locaise, em seguida, clique em Atribuição de Direitos de Usuário.In the left pane, expand Local Policies, and then click User Rights Assignment.

  3. No painel direito, clique duas vezes em Executar tarefas de manutenção de volume.In the right pane, double-click Perform volume maintenance tasks.

  4. Clique em Adicionar usuário ou grupo e adicione a conta que executa o serviço SQL Server.Click Add User or Group and add the account that runs the SQL Server service.

  5. Clique em Aplicare feche todas as caixas de diálogo Política de Segurança Local .Click Apply, and then close all Local Security Policy dialog boxes.

  6. Reinicie o serviço SQL Server.Restart the SQL Server service.

Somos todos ouvidos: Se você encontrar algo desatualizado ou incorreto neste artigo, como uma etapa ou um exemplo de código, informe-nos.We are listening: If you find something outdated or incorrect in this article, such as a step or a code example, please tell us. Você pode clicar no botão Esta página na seção Comentários na parte inferior desta página.You can click the This page button in the Feedback section at the bottom of this page. Lemos todos os itens de comentários sobre o SQL, normalmente no dia seguinte.We read every item of feedback about SQL, typically the next day. Obrigado.Thanks.

Observação

A partir do SQL Server 2016 (13.x)SQL Server 2016 (13.x), essa permissão pode ser concedida à conta de serviço no momento da instalação.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. Se estiver usando a instalação do prompt de comando, adicione o argumento /SQLSVCINSTANTFILEINIT ou marque a caixa Conceder privilégio Realizar Tarefa de Manutenção de Volume para o Serviço de Mecanismo de Banco de Dados do SQL Server no assistente de instalação.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.

Observação

A partir do SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4 e do SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 ao SQL Server 2017SQL Server 2017, a coluna instant_file_initialization_enabled na DMV sys.dm_server_services pode ser usada para identificar se a inicialização instantânea de arquivo 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.

RemarksRemarks

Se a conta de inicialização de serviço do SQL ServerSQL Server receber SE_MANAGE_VOLUME_NAME, uma mensagem informativa semelhante à seguinte será registrada no log de erros do SQL ServerSQL Server durante a inicialização: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.

Se a conta de inicialização de serviço do SQL ServerSQL Server não receber SE_MANAGE_VOLUME_NAME, uma mensagem informativa semelhante à seguinte será registrada no log de erros do SQL ServerSQL Server durante a inicialização: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.

Aplica-se a: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 e SQL Server 2016 (13.x)SQL Server 2016 (13.x) ao 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)

Considerações sobre segurançaSecurity Considerations

Ao usar a IFI (Inicialização Instantânea de Arquivo), como o conteúdo excluído do disco é substituído somente à medida que novos dados são gravados nos arquivos, o conteúdo excluído poderá ser acessado por uma entidade de segurança não autorizada, até que outros dados sejam gravados nessa área específica do arquivo de dados.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. Embora o arquivo de banco de dados esteja associado à instância do SQL ServerSQL Server, esse risco de divulgação de informações é reduzido pela DACL (lista de controle de acesso discricionário) no arquivo.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. Essa DACL permite acesso de arquivo somente à conta de serviço do SQL ServerSQL Server e ao administrador local.This DACL allows file access only to the SQL ServerSQL Server service account and the local administrator. Porém, quando o arquivo é desassociado, ele pode ser acessado por um usuário ou serviço que não tenha 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. Existe uma consideração similar quando é feito o backup do banco de dados: se o arquivo de backup não estiver protegido com uma DACL adequada, o conteúdo excluído poderá ficar disponível para um usuário ou um serviço não 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.

Outra consideração é que, quando um arquivo é aumentado usando IFI, um administrador do SQL Server pode, potencialmente, acessar o conteúdo da página bruta e ver o conteúdo excluído 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.

Se os arquivos de banco de dados estão hospedados em uma rede de área de armazenamento, também é possível que a rede de área de armazenamento apresente sempre novas páginas como pré-inicializadas e, fazer com que o sistema operacional reinicialize as páginas, poderá gerar uma sobrecarga desnecessária.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.

Observação

Se SQL ServerSQL Server estiver instalado em um ambiente físico seguro, os benefícios de desempenho da habilitação da inicialização instantânea de arquivo poderão compensar o risco de segurança. Daí, o motivo dessa recomendação.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.

Se houver preocupação com a possível divulgação do conteúdo excluído, você deverá executar uma das seguintes ações ou ambas:If the potential for disclosing deleted content is a concern, you should take one or both of the following actions:

  • Sempre se certifique de que todos os arquivos de dados desassociados e arquivos de backup tenham DACL restritivas.Always make sure that any detached data files and backup files have restrictive DACLs.
  • Desabilite a inicialização instantânea de arquivo para a instância do SQL ServerSQL Server revogando SE_MANAGE_VOLUME_NAME da conta de inicialização do serviço 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

A desabilitação da inicialização instantânea de arquivo aumentará os tempos de alocação para arquivos de dados.Disabling instant file initialization will increase allocation times for data files.

Observação

Desabilitar a inicialização de arquivos imediata afeta somente os arquivos que forem criados ou tiverem seu tamanho aumentado após ser revogado o direito do usuário.Disabling instant file initialization only affects files that are created or increased in size after the user right is revoked.

Consulte TambémSee Also

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