Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server, SQL Server na VM do Azure – Windows
Resumo
Este artigo ajuda você a corrigir um problema que ocorre quando você instala manualmente uma instância de SQL Server em uma VM (máquina virtual) Microsoft Azure que executa Windows. Quando você instala SQL Server em uma VM Azure que usa um disco NVMe com um tamanho de setor nativo maior que 4 KB, a instalação falha porque SQL Server arquivos de dados como master.mdf não podem ser hospedados em um volume com um tamanho de setor de 8 KB. Este artigo explica por que a incompatibilidade no tamanho do setor ocorre em séries mais recentes de VMs do Azure e como forçar um tamanho de setor de 4 KB para que a instalação do SQL Server seja bem-sucedida nesse disco.
Sintomas
Quando você instala uma instância de SQL Server em uma VM Azure que executa Windows, a instalação falha e o log de erros SQL Server mostra a seguinte mensagem quando o mecanismo tenta iniciar:
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.
O arquivo de log Summary.txt na pasta de instalação do SQL Server também mostra entradas como a seguir:
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.
Esse problema pode ocorrer com instalações locais, mas é mais provável que você o veja quando instala SQL Server em uma VM Azure.
Motivo
Esse problema ocorre devido ao tamanho do setor do disco em alguns tamanhos de VM Azure. As séries de VM mais recentes Azure, como Dadsv6, Eadsv6 e Fasv6, usam uma interface de armazenamento somente NVMe e exigem uma imagem do sistema operacional compatível com NVMe. Essas séries de VMs expõem discos com tamanho de setor nativo padrão de 8 KB, que o SQL Server não oferece suporte para arquivos de banco de dados. SQL Server dá suporte a discos com tamanhos de setor nativo de 512 bytes e 4 KB. Se uma VM Azure for implantada com um tamanho de setor de 8 KB e você instalar SQL Server, a instalação poderá falhar. Para obter mais informações, consulte tipos de armazenamento para SQL Server.
Observação
Esse cenário se aplica somente quando você instala manualmente SQL Server em uma VM Azure. Ela não se aplica quando você implanta uma imagem de VM SQL Server de Azure Marketplace, pois essas imagens são pré-configuradas para usar um tamanho de setor de 4 KB.
Tipos de disco e VM afetados
Normalmente, você vê a incompatibilidade de tamanho do setor nestes cenários:
- Discos NVMe locais nas séries VM v6 (por exemplo, Dadsv6, Eadsv6, Easv6 e Fasv6), que expõem um tamanho de setor nativo de 8 KB.
- Premium SSD v2 e Ultra Disk quando você cria o disco com um tamanho de setor lógico de 4096 bytes, mas apresenta-o por meio de um host que relata um tamanho de setor físico de 8 KB.
Discos de dados HDD Standard, SSD Standard e SSD Premium (v1) que você anexa a séries de VM anteriores geralmente têm setor de 4 KB e não são afetados.
Solução
Para corrigir esse problema, force a VM Azure a usar um tamanho de setor de 4 KB e reinstale SQL Server.
Se SQL Server já estiver instalado, desinstale-o. Caso contrário, vá para a próxima etapa.
Adicione a chave do Registro ForcedPhysicalSectorSizeInBytes.
Verifique se o tamanho do setor é de 4 KB ao executar o seguinte comando em um prompt de comando com privilégios elevados:
fsutil fsinfo sectorinfo <volume pathname>Reinicie a VM do Azure.
Reinstale o SQL Server.
A captura de tela a seguir mostra a saída do comando fsutil fsinfo sectorinfo da unidade E:, que tem um setor de 8 KB:
A captura de tela a seguir mostra a saída do mesmo comando para a E: unidade depois que a chave do Registro é adicionada para usar um tamanho de setor de 4 KB:
A ForcedPhysicalSectorSizeInBytes chave do Registro é uma configuração no nível do sistema operacional. Todas as unidades conectadas atualmente e quaisquer unidades conectadas posteriormente usam um tamanho de setor de 4 KB até que você remova esta chave do Registro.