Compartilhar via


Solucionar problemas de erros do SQL Server 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.

Este artigo discute erros relacionados ao tamanho do setor de disco do sistema superior a 4 KB. Ao tentar instalar uma instância do SQL Server em um computador com tamanho do setor de disco do sistema maior que 4 KB, você poderá encontrar os seguintes cenários:

Aplica-se a: SQL Server todas as versões

Cenário 1: mover o arquivo para um volume com um tamanho de setor compatível

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.

Cenário 2: Não foi possível localizar o identificador de inicialização do Mecanismo de Banco de Dados

Quando você tenta instalar uma instância do SQL Server em uma VM (máquina virtual) do Azure que executa o Windows, a instalação falha e você recebe a seguinte mensagem de erro no log de erros do SQL Server quando o mecanismo tenta iniciar durante a instalação:

Não é possível usar o arquivo '...\master.mdf' porque ele foi originalmente formatado com tamanho de setor 4096 e agora está em um volume com tamanho de setor 8192. Mova o arquivo para um volume com um tamanho de setor que seja igual ou menor que o tamanho de setor original.

Além disso, você pode ver as seguintes informações no arquivo de log Summary.txt na pasta de instalação do SQL Server:

Detailed results:
  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:          0x851A0019
  Error description:             Could not find the Database Engine startup handle.

Para obter mais informações, consulte problemas na instalação do SQL Server devido ao erro de tamanho do setor em uma máquina virtual Azure no Windows Server 2022.

Cenário 3: Falha ao aguardar o processo de recuperação do Mecanismo de Banco de Dados

Ao instalar qualquer versão do SQL Server, 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ê verá os seguintes erros no Log de erros do SQL Server:

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 4: Houve 256 IOs de log desalinhados que exigiram a recaída para e/S síncrona

Instale qualquer versão do SQL Server em um dispositivo Windows 10. Em seguida, você atualiza o sistema operacional (SO) no 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 as seguintes entradas:

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 5: erro de aplicação do SQL Server causado por ntdll.dll

Instale 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 as seguintes entradas:

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 6: mover o arquivo para um volume com um tamanho de setor igual ou menor que o tamanho original do setor

Você instala o LocalDB em um dispositivo Windows 11 e a instalação falha. No log de erros do SQL Server, você observa as seguintes entradas:

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 do Windows 11, você observa as seguintes entradas:

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.

Causa de erros de tamanho do setor de disco no SQL Server

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 esse problema ocorre, o SQL Server não pode ser iniciado devido ao sistema de arquivos sem suporte, pois o SQL Server atualmente dá suporte a tamanhos de armazenamento do 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 .

Etapas de resolução para erros de tamanho do setor de disco no SQL Server

  • 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 ForcedPhysicalSectorSizeInBytes do Registro ou execute comandos conforme descrito na seção Prompt de Comando ou PowerShell. Não é necessário adicionar o Sinalizador de Rastreamento 1800 para este 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 .

    1. Execute o Editor do Registro como administrador.
    2. Navegue até Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device.
    3. Selecione Editar>novo>valor de várias cadeias de caracteres e nomeie-o como .ForcedPhysicalSectorSizeInBytes
    4. Clique com o botão direito do mouse no nome, selecione Modificar e digite * 4095 no campo Dados do valor.
    5. Selecione OK e feche o Editor do Registro.

    Você deve reinicializar o dispositivo depois de adicionar a chave do Registro para que essa alteração entre em vigor.

  • 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.

Cuidado

Se você já criou um pool de armazenamento com discos com um tamanho de setor maior que 4 KB para hospedar arquivos do SQL Server, primeiro remova o pool de armazenamento, aplique um dos métodos de solução de problemas mencionados neste artigo e recompile o pool de armazenamento antes de tentar instalar o SQL Server no pool de armazenamento ou pools.

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