Compartilhar via


Falha na instalação do SQL Server com erro de tamanho do setor em uma máquina virtual do Windows Server no Azure

Este artigo ajuda você a resolver um problema que ocorre quando você tenta instalar manualmente uma instância do SQL Server em uma VM (máquina virtual) do Microsoft Azure que executa o Windows.

Aplica-se a: SQL Server, SQL Server na VM do Azure – Windows

Sintomas

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.

Esse problema pode ocorrer com instalações locais, mas é mais provável que você o encontre ao instalar o SQL Server na VM (máquina virtual) do Microsoft Azure.

Motivo

Esse problema ocorre devido à configuração do tamanho do setor do disco em determinadas máquinas virtuais do Azure. Algumas das gerações mais recentes de VM do Azure (como Da, Ea e Fav6) têm uma interface de armazenamento somente NVMe e exigem uma imagem do sistema operacional que dê suporte a NVMe. No entanto, essas gerações mais recentes de VM do Azure são implantadas com um tamanho de setor padrão de 8 KB, que atualmente não é compatível com o SQL Server. Atualmente, o SQL Server oferece suporte a discos com tamanhos de setor nativos padrão de 512 bytes e 4 KB.

Observação

Non-Volatile Memory Express (NVMe) é um protocolo de comunicação que facilita a transferência de dados mais rápida e eficiente entre servidores e sistemas de armazenamento usando memória não volátil (NVM). Com o NVMe, os dados podem ser transferidos com a taxa de transferência mais alta e com o tempo de resposta mais rápido.

Se uma máquina virtual do Azure for implantada usando o tamanho de setor de 8 KB e você tentar instalar o SQL Server após a implantação, a instalação poderá falhar.

Observação

Esse cenário só ocorre quando você instala manualmente o SQL Server em uma VM do Azure, mas não quando você implanta uma VM do SQL Server do Azure Marketplace. As imagens do Azure Marketplace são pré-configuradas para usar o tamanho do setor de 4 KB.

Solução

Para resolver esse problema, reinstale o SQL Server depois de forçar a VM do Azure a usar o tamanho do setor de 4 KB.

Para instalar com êxito o SQL Server em sua VM do Azure, siga estas etapas:

  1. Se você já instalou o SQL Server, desinstale o SQL Server. Caso contrário, vá para a próxima etapa.

  2. Adicione a chave do Registro ForcedPhysicalSectorSizeInBytes .

  3. Verifique se o tamanho do setor é de 4 KB executando o seguinte comando em um prompt de comando com privilégios elevados:

    fsutil fsinfo sectorinfo <volume pathname>

  4. Reinicie a VM do Azure.

  5. Reinstale o SQL Server.

A captura de tela a seguir mostra a saída do fsutil fsinfo sectorinfo comando para a E: unidade, que tem um tamanho de setor de 8 KB:

Captura de tela da saída do prompt de comando do tamanho do setor de 8 KB.

A captura de tela a seguir mostra a fsutil fsinfo sectorinfo saída do comando para a E: unidade após a atualização da chave do Registro para usar o tamanho do setor de 4 KB:

Captura de tela da saída do prompt de comando do tamanho do setor de 4 KB.

A ForcedPhysicalSectorSizeInBytes chave do Registro é uma configuração no nível do sistema operacional, o que significa que todas as unidades atualmente anexadas e aquelas anexadas no futuro usam o tamanho do setor de 4 KB, a menos que essa chave do Registro seja removida.