Solucionar erros relacionados ao tamanho do setor de disco do sistema maior que 4 KB
Este artigo fornece soluções para solucionar erros durante a instalação ou inicialização de uma instância do SQL Server no Windows. Este artigo é válido para todas as versões lançadas do SQL Server.
Os erros discutidos neste artigo estão relacionados ao tamanho do setor do disco do sistema maior que 4 KB.
Aplica-se a: SQL Server todas as versões
Sintomas
Cenário #1: Você instala qualquer versão do SQL Server. Em seguida, você verá erros semelhantes à seguinte mensagem para o componente Serviços do Mecanismo de Banco de Dados do SQL Server:
Feature: Database Engine Services
Status: Failed
Reason for failure: An error occurred during the setup process of the feature.
Next Step: Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
Component name: SQL Server Database Engine Services Instance Features
Component error code: 0x851A001A
Error description: Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
Ou você vê erros no Log de Erros do SQL Server semelhantes a:
2025-02-26 20:01:16.79 spid14s Starting up database 'master'.
2025-02-26 20:01:16.80 spid14s Error: 5178, Severity: 16, State: 1.
2025-02-26 20:01:16.80 spid14s Cannot use file 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\master.mdf' because it was originally formatted with sector size 4096 and is now on a volume with sector size 8192. Move the file to a volume with a sector size that is the same as or smaller than the original sector size.
Cenário #2: você instala qualquer versão do SQL Server em um dispositivo Windows 10. Em seguida, você atualiza o sistema operacional do dispositivo para o Windows 11. Quando você tenta iniciar o SQL Server em um dispositivo Windows 11, o serviço falha ao iniciar e, no log de erros do SQL Server, você observa entradas semelhantes a:
2021-11-05 23:42:47.14 spid9s There have been 256 misaligned log IOs which required falling back to synchronous IO. The current IO is on file C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\master.mdf.
Cenário #3: Você instala qualquer versão do SQL Server em um dispositivo Windows 10. Em seguida, você atualiza o sistema operacional do dispositivo para o Windows 11. Quando você tenta iniciar o SQL Server em um dispositivo Windows 11, o serviço não é iniciado. No log de erros do SQL Server, você observa entradas semelhantes a:
Faulting application name: sqlservr.exe, version: 2019.150.2000.5, time stamp: 0x5d8a9215
Faulting module name: ntdll.dll, version: 10.0.22000.120, time stamp: 0x50702a8c
Exception code: 0xc0000005
Fault offset: 0x00000000000357ae
Faulting process id: 0x1124
Faulting application start time: 0x01d7bf67449d262c
Faulting application path: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Cenário #4: você instala o LocalDB em um dispositivo Windows 11. A instalação falha e, no log de erros do SQL Server, você observa entradas semelhantes a:
2021-12-15 23:25:04.28 spid5s Cannot use file 'C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\TestInstance\master.mdf' because it was originally formatted with sector size 4096 and is now on a volume with sector size 16384. Move the file to a volume with a sector size that is the same as or smaller than the original sector size.
No Log de Eventos do Aplicativo Windows 11, você observa entradas semelhantes a:
Message : Windows API call WaitForMultipleObjects returned error code: 575. Windows system error message is: {Application Error}
The application was unable to start correctly (0x%lx). Click OK to close the application.
Reported at line: 3621.
Source : SQLLocalDB 11.0
Observação
Você pode encontrar as falhas mencionadas nos cenários anteriores para uma instância do SQL Server instalada manualmente ou em uma instância do LocalDB instalada por aplicativos.
Cenário #5: Se você tentar usar o tamanho do setor maior que 4 KB, verá a seguinte mensagem de erro:
Error: 5179, Severity: 16, State: 1.
Cannot use file 'data file path', because it is on a volume with sector size 8192. SQL Server supports a maximum sector size of 4096 bytes. Move the file to a volume with a compatible sector size.
Motivo
Durante a inicialização do serviço, o SQL Server inicia o processo de recuperação do banco de dados para garantir a consistência do banco de dados. Parte desse processo de recuperação de banco de dados envolve verificações de consistência no sistema de arquivos subjacente antes de tentar abrir arquivos de banco de dados do sistema e do usuário.
Alguns novos dispositivos de armazenamento e drivers de dispositivo expõem um tamanho de setor de disco maior que o tamanho do setor de 4 KB com suporte.
Quando isso ocorrer, o SQL Server não poderá ser iniciado devido ao sistema de arquivos sem suporte, pois o SQL Server atualmente oferece suporte a tamanhos de armazenamento de setor de 512 bytes e 4 KB.
Você pode confirmar que encontrou esse problema específico executando o comando:
fsutil fsinfo sectorinfo <volume pathname>
Por exemplo, para analisar o volume E:, execute o seguinte comando:
fsutil fsinfo sectorinfo E:
Procure os valores PhysicalBytesPerSectorForAtomicity
e PhysicalBytesPerSectorForPerformance
, retornados em bytes e, se forem diferentes, mantenha o maior para verificar o tamanho do setor do disco. Um valor de 4096 indica um tamanho de armazenamento de setor de 4 KB.
Além disso, lembre-se da política de suporte do Windows para suporte ao sistema de arquivos e ao tamanho do setor de armazenamento. Para obter mais informações, consulte o artigo Política de suporte da Microsoft para discos rígidos de setor de 4 KB no Windows .
Observação
Não há nenhuma versão lançada do SQL Server compatível com tamanhos de setor maiores que 4 KB. Para obter mais informações, consulte o artigo Limites de suporte ao tamanho do setor da unidade de disco rígido no SQL Server .
Resoluções
Atualmente, a chave do Registro é necessária para instalar com êxito o
ForcedPhysicalSectorSizeInBytes
SQL Server ao usar plataformas de armazenamento modernas, como NVMe, que fornecem um tamanho de setor maior que 4 KB. Essa chave do Registro do sistema operacional Windows força o tamanho do setor a ser emulado como 4 KB. Para adicionar a chave do Registro, use o Editor doForcedPhysicalSectorSizeInBytes
Registro ou execute comandos conforme descrito na seção Prompt de Comando ou PowerShell. Você deve reinicializar o dispositivo depois de adicionar a chave do Registro para que essa alteração entre em vigor. Não há necessidade de adicionar o sinalizador de rastreamento 1800 para esse cenário.Importante
Esta seção contém etapas que informam como modificar o registro do Windows. Entretanto, sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Portanto, certifique-se de seguir essas etapas com atenção. Para proteção acrescida, faça backup do Registro antes de modificá-lo. Em seguida, você poderá restaurar o registro se ocorrer um problema. Para obter mais informações sobre como fazer backup e restaurar o Registro, consulte o artigo Como fazer backup e restaurar o Registro no Windows .
- Execute o Editor do Registro como administrador.
- Navegue até
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
. - Selecione Editar>novo>valor de várias cadeias de caracteres e nomeie-o como .
ForcedPhysicalSectorSizeInBytes
- Clique com o botão direito do mouse no nome, selecione Modificar e digite
* 4095
no campo Dados do valor. - Selecione OK e feche o Editor do Registro.
Se você não adicionar a chave do Registro e tiver várias unidades nesse sistema, poderá especificar um local diferente para os arquivos de banco de dados após a conclusão da instalação do SQL Server. Certifique-se de que a unidade reflita um tamanho de setor com suporte ao consultar os
fsutil
comandos. Atualmente, o SQL Server oferece suporte a tamanhos de armazenamento de setor de 512 bytes e 4.096 bytes.
Mais informações
Os drivers NVMe nativos do Windows 11 foram atualizados para incluir o tamanho real do setor relatado diretamente pelos dispositivos de armazenamento NVMe. Isso foi feito em vez de depender das informações emuladas dos drivers do sistema de arquivos.
Os drivers do Windows 10 não relatam o tamanho do setor de origem do armazenamento físico.
Os drivers aprimorados do Windows 11 desconsideram a emulação que os dispositivos de armazenamento NVMe comuns estão usando. Por exemplo, fsutil
exibe um tamanho de setor de 8 KB ou 16 KB, em vez de emular o tamanho de setor de 4 KB necessário exigido pelo Windows.
A tabela a seguir fornece uma comparação dos tamanhos de setor relatados pelos sistemas operacionais. Este exemplo ilustra as diferenças entre Windows 10 e Windows 11 usando o mesmo dispositivo de armazenamento. Para os valores de PhysicalBytesPerSectorForAtomicity
e PhysicalBytesPerSectorForPerformance
, Windows 10 exibe 4 KB e Windows 11 exibe 16 KB.
Exemplo de saída de fsutil fsinfo sectorinfo <volume pathname>
Windows 10 | Windows 11 |
---|---|
LogicalBytesPerSector : 512 |
LogicalBytesPerSector : 512 |
PhysicalBytesPerSectorForAtomicity : 4096 |
PhysicalBytesPerSectorForAtomicity : 16384 |
PhysicalBytesPerSectorForPerformance : 4096 |
PhysicalBytesPerSectorForPerformance : 16384 |
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 |
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 |
Device Alignment : Aligned (0x000) |
Device Alignment : Aligned (0x000) |
Partition alignment on device : Aligned (0x000) |
Partition alignment on device : Aligned (0x000) |
No Seek Penalty |
No Seek Penalty |
Trim Supported |
Trim Supported |
Not DAX capable |
Not DAX capable |
Not Thinly-Provisioned |
Not Thinly-Provisioned |