Partilhar via


Lista de verificação: Práticas recomendadas para o SQL Server em VMs do Azure

Aplica-se a:SQL Server em VM do Azure

Este artigo fornece uma lista de verificação rápida como uma série de práticas recomendadas e diretrizes para otimizar o desempenho do seu SQL Server em Máquinas Virtuais (VMs) do Azure.

Para obter detalhes abrangentes, consulte os outros artigos desta série: Tamanho da VM, Armazenamento, Segurança, Configuração HADR, Estabelecer linha de base.

Habilite a Avaliação SQL para SQL Server em VMs do Azure e o seu SQL Server será avaliado em relação às práticas recomendadas conhecidas, com resultados na página de gestão de VM SQL do portal do Azure.

Para obter vídeos sobre os recursos mais recentes para otimizar o desempenho da VM do SQL Server e automatizar o gerenciamento, revise os seguintes vídeos sobre dados expostos:

Visão geral

Ao executar o SQL Server em Máquinas Virtuais do Azure, continue usando as mesmas opções de ajuste de desempenho de banco de dados aplicáveis ao SQL Server em ambientes de servidor locais. No entanto, o desempenho de um banco de dados relacional em uma nuvem pública depende de muitos fatores, como o tamanho de uma máquina virtual e a configuração dos discos de dados.

Normalmente, há um equilíbrio entre a otimização de custos e a otimização de desempenho. Esta série de práticas recomendadas de desempenho concentra-se em obter o melhor desempenho para o SQL Server em Máquinas Virtuais do Azure. Se sua carga de trabalho for menos exigente, talvez você não precise de todas as otimizações recomendadas. Considere suas necessidades de desempenho, custos e padrões de carga de trabalho ao avaliar essas recomendações.

Tamanho da VM

A lista de verificação nesta seção aborda as práticas recomendadas de tamanho de VM para SQL Server em VMs do Azure.

  • Identifique as características de desempenho da carga de trabalho para determinar o tamanho de VM apropriado para sua empresa.
  • Se estiveres a migrar para o Azure, utiliza ferramentas como o Assistente de Migração de Dados e a Recomendação de SKU para encontrar o tamanho de VM certo para a tua carga de trabalho existente do SQL Server e, em seguida, migra com o Azure Data Studio .
  • Use as imagens do Azure Marketplace para implantar suas VMs do SQL Server à medida que as configurações e as opções de armazenamento do SQL Server são definidas para um desempenho ideal.
  • Use tamanhos de VM com 4 ou mais vCPUs.
  • Use tamanhos de máquina virtual otimizados para memória para obter o melhor desempenho de cargas de trabalho do SQL Server.
    • O série Edsv5 e as séries Msv3 e Mdsv3 oferecem uma relação memória/vCore ideal recomendada para cargas de trabalho OLTP.
    • As VMs da série Mbdsv3 oferecem o melhor desempenho para cargas de trabalho do SQL Server em VMs do Azure. Considere, em primeiro lugar, esta série para trabalhos de OLTP e de data warehouse no SQL Server de missão crítica.
    • A série Ebdsv5 fornece alta relação de taxa de transferência de E/S para vCore, juntamente com uma relação memória/vCore de 8:1. Esta série oferece o melhor preço-desempenho para cargas de trabalho do SQL Server em VMs do Azure. Considere essas VMs primeiro para a maioria das cargas de trabalho do SQL Server.
    • A família série M oferece VMs com a maior alocação de memória no Azure.
    • As VMs das séries Mbsv3 e Mbdsv3 fornecem uma elevada alocação de memória e a mais alta relação de taxa de transferência de E/S para vCore dentro da família das séries M, juntamente com uma relação memória/vCore consistente de pelo menos 8:1.
  • Inicie ambientes de desenvolvimento com as séries D, B ou Av2 de nível inferior e aumente seu ambiente ao longo do tempo.

Armazenamento

A lista de verificação nesta seção aborda as práticas recomendadas de armazenamento para SQL Server em VMs do Azure.

  • Monitore a aplicação e determine os requisitos de largura de banda e latência de armazenamento para dados, registos e ficheiros tempdb do SQL Server antes de escolher o tipo de disco.
  • Se disponível, configure os dados e os ficheiros de registo tempdbno volume SSD local D:. A extensão do SQL IaaS Agent gere a pasta e as permissões necessárias durante o reaprovisionamento.
  • Para otimizar o desempenho do armazenamento, planeie para as IOPS máximas sem cache disponíveis e use o cache de dados como um recurso de desempenho para leituras de dados, evitando a limitação de máquinas virtuais e discos.
  • Ao usar as VMs do SQL Server série Ebdsv5 ou Ebsv5, use SSD Premium v2 para obter o melhor desempenho de preço. Você pode implantar sua VM do SQL Server com SSD Premium v2 usando o portal do Azure (atualmente em visualização).
  • Coloque dados, logs e arquivos tempdb em unidades separadas.
    • Para a unidade de dados, use P30 e P40 premium ou discos menores para garantir a disponibilidade do suporte de cache. Ao utilizar a série de VMs Ebdsv5, use o SSD Premium v2, que oferece uma melhor relação custo-benefício para workloads que exigem alta IOPS e taxa de transferência de E/S.
    • Para o plano de discos de log, para capacidade e desempenho em testes versus custo, ao avaliar SSD Premium v2 ou discos SSD Premium P30 - P80
    • Coloque tempdb no disco temporário (o disco temporário é efêmero e o padrão é D:\) para a maioria das cargas de trabalho do SQL Server que não fazem parte de uma FCI (instância de cluster de failover) depois de escolher o tamanho ideal da VM.
    • Para instâncias de cluster de failover (FCI), coloque tempdb no armazenamento compartilhado.
      • Se a carga de trabalho da FCI depender muito do desempenho do disco tempdb, então, como uma configuração avançada, coloque tempdb na unidade SSD temporário local (padrão D:\), que não faz parte do armazenamento da FCI. Essa configuração precisa de monitoramento e ação personalizados para garantir que a unidade SSD efêmera local (D:\padrão) esteja disponível o tempo todo, pois qualquer falha dessa unidade não acionará a ação da FCI.
  • Distribua vários discos de dados do Azure usando Espaços de Armazenamento para aumentar a largura de banda de I/O até os limites de IOPS e taxa de transferência da máquina virtual de destino.
  • Defina o cache do host para somente leitura nos discos de arquivos de dados.
  • Configure a cache do host para nenhum nos discos de ficheiro de log.
    • Não habilite o cache de leitura/gravação em discos que contenham dados ou arquivos de log do SQL Server.
    • Sempre pare o serviço SQL Server antes de alterar as configurações de cache do disco.
  • Ao migrar várias cargas de trabalho diferentes para a nuvem, do Azure Elastic SAN pode ser uma solução de armazenamento consolidado econômica. No entanto, ao usar o Azure Elastic SAN, alcançar IOPS/taxa de transferência desejada para cargas de trabalho do SQL Server geralmente requer capacidade de provisionamento excessivo. Embora normalmente não seja apropriado para cargas de trabalho únicas do SQL Server, você pode obter uma solução econômica ao combinar cargas de trabalho de baixo desempenho com o SQL Server.
  • Para cargas de trabalho de desenvolvimento e teste e arquivamento de backup de longo prazo, considere o uso de armazenamento padrão. Não é recomendado o uso de HDD/SSD padrão para cargas de trabalho de produção.
  • Disk Bursting baseado em crédito (P1-P20) só deve ser considerado para cargas de trabalho menores de desenvolvimento/teste e sistemas departamentais.
  • Para otimizar o desempenho do armazenamento, planeie para as IOPS sem cache mais altas disponíveis e use o cache de dados como um recurso de desempenho para leituras de dados, evitando limites e restrições em máquinas virtuais e discos.
  • Formate seu disco de dados para usar o tamanho da unidade de alocação de 64 KB para todos os arquivos de dados colocados em uma unidade diferente da unidade de D:\ temporária (que tem um padrão de 4 KB). As VMs do SQL Server implantadas por meio do Azure Marketplace vêm com discos de dados formatados com tamanho de unidade de alocação e intercalação para o pool de armazenamento definido como 64 KB.
  • Configure a conta de armazenamento na mesma região que a VM do SQL Server.
  • Desative o armazenamento com redundância geográfica do Azure (replicação geográfica) e use o LRS (armazenamento redundante local) na conta de armazenamento.
  • Habilite a Avaliação de Boas Práticas do SQL para identificar possíveis problemas de desempenho e avaliar se a sua VM do SQL Server está configurada para seguir as boas práticas.
  • Revise e monitore os limites de disco e VM usando métricas de utilização de E/S de armazenamento.
  • Exclua arquivos do SQL Server da verificação de software antivírus, incluindo arquivos de dados, arquivos de log e arquivos de backup.

Segurança

A lista de verificação nesta seção aborda as práticas recomendadas de segurança para o SQL Server em VMs do Azure.

Os recursos e capacidades do SQL Server fornecem métodos de proteção de dados no nível do banco de dados que podem ser combinados com recursos de segurança no nível da infraestrutura. Juntas, estas características fornecem defesa em profundidade ao nível de infraestrutura para soluções híbridas e baseadas em nuvem. Além disso, com as medidas de segurança do Azure, é possível criptografar seus dados confidenciais, proteger máquinas virtuais contra vírus e malware, proteger o tráfego de rede, identificar e detetar ameaças, atender aos requisitos de conformidade e fornecer um único método de administração e relatórios para qualquer necessidade de segurança na nuvem híbrida.

  • Use Microsoft Defender for Cloud para avaliar e tomar medidas para melhorar a postura de segurança do seu ambiente de dados. Recursos como de Proteção Avançada contra Ameaças (ATP) do Azure podem ser usados em suas cargas de trabalho híbridas para melhorar a avaliação de segurança e oferecer a capacidade de reagir a riscos. O registo da sua máquina virtual SQL Server com a extensão SQL IaaS Agent disponibiliza as avaliações do Microsoft Defender for Cloud no recurso de máquina virtual SQL no portal do Azure.
  • Use o Microsoft Defender para SQL para descobrir e mitigar possíveis vulnerabilidades do banco de dados, bem como detetar atividades anômalas que possam indicar uma ameaça à sua instância do SQL Server e à camada de banco de dados.
  • A Avaliação de Vulnerabilidades faz parte do Microsoft Defender para SQL, que pode descobrir e ajudar a remediar riscos potenciais para o seu ambiente SQL Server. Ele fornece visibilidade sobre seu estado de segurança e inclui etapas acionáveis para resolver problemas de segurança.
  • Use de VMs confidenciais do Azure para reforçar a proteção de seus dados em uso e dados em repouso contra o acesso do operador de host. As VMs confidenciais do Azure permitem que você armazene com confiança seus dados confidenciais na nuvem e atenda aos rigorosos requisitos de conformidade.
  • Se estiveres no SQL Server 2022, considera usar a autenticação do Microsoft Entra para te ligares à instância do SQL Server.
  • do Azure Advisor analisa a configuração de recursos e a telemetria de uso e, em seguida, recomenda soluções que podem ajudá-lo a melhorar a relação custo-benefício, o desempenho, a alta disponibilidade e a segurança dos recursos do Azure. Use o Consultor do Azure no nível de máquina virtual, grupo de recursos ou assinatura para ajudar a identificar e aplicar as práticas recomendadas para otimizar suas implantações do Azure.
  • Use Azure Disk Encryption quando suas necessidades de conformidade e segurança exigirem que você criptografe os dados de ponta a ponta usando suas chaves de criptografia, incluindo a criptografia do disco efêmero (temporário conectado localmente).
  • Managed Disks são encriptados em repouso por predefinição utilizando a Encriptação do Serviço de Armazenamento do Azure, em que as chaves de encriptação são chaves geridas pela Microsoft armazenadas no Azure.
  • Para obter uma comparação das opções de criptografia de disco gerenciado, revise o gráfico de comparação de criptografia de disco gerenciado
  • As portas de gerenciamento devem ser fechadas em suas máquinas virtuais - As portas de gerenciamento remoto abertas expõem sua VM a um alto nível de risco de ataques baseados na Internet. Esses ataques tentam obter credenciais de força bruta para obter acesso de administrador à máquina.
  • Ativar o acesso Just-in-time (JIT) para máquinas virtuais do Azure
  • Utilize o Azure Bastion em vez do Protocolo de Ambiente de Trabalho Remoto (RDP).
  • Bloqueie portas e permita apenas o tráfego necessário de aplicações usando o Azure Firewall, que é um Firewall como Serviço (FaaS) gerido que concede e nega acesso ao servidor com base no endereço IP de origem.
  • Usar NSGs (Grupos de Segurança de Rede) para filtrar o tráfego de rede para e de recursos do Azure em Redes Virtuais do Azure.
  • Use Application Security Groups para agrupar servidores com requisitos de filtragem de porta semelhantes, com funções semelhantes, como servidores Web e servidores de banco de dados.
  • Para servidores Web e de aplicativos, use proteção contra DDoS (Distributed Denial of Service) do Azure. Os ataques DDoS são projetados para sobrecarregar e esgotar os recursos da rede, tornando os aplicativos lentos ou sem resposta. É comum que ataques DDoS tenham como alvo interfaces de usuário. A proteção contra DDoS do Azure limpa o tráfego de rede indesejado, antes que afete a disponibilidade do serviço
  • Use extensões de VM para ajudar a lidar com antimalware, estado desejado, deteção de ameaças, prevenção e correção para lidar com ameaças nos níveis de sistema operacional, máquina e rede:
  • Use a Política do Azure para criar regras empresariais que podem ser aplicadas ao seu ambiente. As Políticas do Azure avaliam os recursos do Azure comparando as propriedades desses recursos com as regras definidas no formato JSON.
  • O Azure Blueprints permite que arquitetos de nuvem e grupos centrais de tecnologia da informação definam um conjunto repetível de recursos do Azure que implementa e adere aos padrões, padrões e requisitos de uma organização. Azure Blueprints são diferentes do Azure Policies.
  • Use o Windows Server 2019 ou o Windows Server 2022 para ser FIPS compatível com o SQL Server em VMs do Azure.

Recursos do SQL Server

A seguir está uma lista de verificação rápida de práticas recomendadas para definições de configuração do SQL Server ao executar suas instâncias do SQL Server em uma máquina virtual do Azure em produção:

Recursos do Azure

A seguir está uma lista de verificação rápida de práticas recomendadas para orientação específica do Azure ao executar seu SQL Server na VM do Azure:

Configuração HADR

A lista de verificação de controle nesta seção cobre as melhores práticas de HADR para SQL Server em VMs do Azure.

As funcionalidades de alta disponibilidade e recuperação de desastres (HADR), como o grupo de disponibilidade Always On e a instância de cluster de failover , dependem da tecnologia subjacente do Cluster de Failover do Windows Server . Analise as práticas recomendadas para modificar suas configurações de HADR para oferecer melhor suporte ao ambiente de nuvem.

Para o cluster do Windows, considere estas práticas recomendadas:

  • Implante suas VMs do SQL Server em várias sub-redes sempre que possível para evitar a dependência de um Balanceador de Carga do Azure ou de um DNN (nome de rede distribuído) para rotear o tráfego para sua solução HADR.
  • Altere o cluster para parâmetros menos agressivos para evitar interrupções inesperadas devido a falhas de rede transitórias ou manutenção da plataforma Azure. Para saber mais, consulte configurações de limite e batimento cardíaco. Para o Windows Server 2012 e versões posteriores, use os seguintes valores recomendados:
    • SameSubnetDelay: 1 segundo
    • SameSubnetThreshold: 40 pulsos
    • CrossSubnetDelay: 1 segundo
    • CrossSubnetThreshold: 40 batimentos cardíacos
  • Coloque suas VMs em um conjunto de disponibilidade ou em zonas de disponibilidade diferentes. Para saber mais, consulte configurações de disponibilidade de VM.
  • Utilize uma única NIC (Placa de Rede) por nó de cluster.
  • Configure a votação de quórum do cluster para usar 3 ou mais votos de número ímpar. Não atribua votos a regiões DR.
  • Monitore cuidadosamente limites de recursos para evitar reinicializações inesperadas ou failovers devido a restrições de recursos.
    • Verifique se seu sistema operacional, drivers e SQL Server estão nas compilações mais recentes.
    • Otimize o desempenho do SQL Server em VMs do Azure. Consulte as outras secções deste artigo para saber mais.
    • Reduza ou distribua a carga de trabalho para evitar limites de recursos.
    • Mude para uma VM ou disco com limites mais altos para evitar restrições.

Para seu grupo de disponibilidade do SQL Server ou instância de cluster de failover, considere estas práticas recomendadas:

  • Se você estiver enfrentando falhas inesperadas frequentes, siga as práticas recomendadas de desempenho descritas no restante deste artigo.
  • Se a otimização do desempenho da VM do SQL Server não resolver os failovers inesperados, considere afrouxar o monitoramento do grupo de disponibilidade ou da instância do cluster de failover. No entanto, isso pode não resolver a origem subjacente do problema e pode mascarar os sintomas, reduzindo a probabilidade de falha. Talvez ainda seja necessário investigar e abordar a causa raiz subjacente. Para Windows Server 2012 ou superior, use os seguintes valores recomendados:
    • Tempo limite de concessão: Use esta equação para calcular o valor máximo de tempo limite de locação:
      Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
      Comece com 40 segundos. Se você estiver usando os valores de SameSubnetThreshold e SameSubnetDelay relaxados recomendados anteriormente, não exceda 80 segundos para o valor de tempo limite de concessão.
    • Falhas máximas em um período especificado: Defina este valor como 6.
  • Ao usar o nome da rede virtual (VNN) e um Balanceador de Carga do Azure para se conectar à sua solução HADR, especifique MultiSubnetFailover = true na cadeia de conexão, mesmo que o cluster abranja apenas uma sub-rede.
    • Se o cliente não oferecer suporte a MultiSubnetFailover = True talvez seja necessário definir RegisterAllProvidersIP = 0 e HostRecordTTL = 300 para armazenar em cache as credenciais do cliente por períodos mais curtos. No entanto, isso pode causar consultas adicionais ao servidor DNS.
  • Para se conectar à sua solução HADR usando o nome de rede distribuída (DNN), considere o seguinte:
    • Você deve usar um driver de cliente que ofereça suporte a MultiSubnetFailover = Truee esse parâmetro deve estar na cadeia de conexão.
    • Utilize uma porta DNN exclusiva na cadeia de conexão ao conectar-se ao ouvinte DNN para um grupo de disponibilidade.
  • Use uma cadeia de conexão de espelhamento de banco de dados para um grupo de disponibilidade básica para evitar a necessidade de um balanceador de carga ou DNN.
  • Valide o tamanho do setor dos seus VHDs antes de desenvolver a sua solução de alta disponibilidade para evitar operações de entrada/saída desalinhadas. Consulte KB3009974 para saber mais.
  • Se o mecanismo de banco de dados do SQL Server, o ouvinte do grupo de disponibilidade Always On ou a investigação de integridade da instância de cluster de failover estiverem configurados para usar uma porta entre 49.152 e 65.536 (o intervalo de portas dinâmicas padrão para TCP/IP), adicione uma exclusão para cada porta. Isso evita que outros sistemas recebam dinamicamente a mesma porta. O exemplo a seguir cria uma exclusão para a porta 59999:
    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Solução de problemas de desempenho

A seguir está uma lista de recursos que ajudam você a solucionar problemas de desempenho do SQL Server.

Considere ativar Avaliação SQL para SQL Server nas VMs do Azure.

Consulte outros artigos sobre Máquinas Virtuais do SQL Server em Visão Geral do SQL Server em VMs do Azure. Se você tiver dúvidas sobre máquinas virtuais do SQL Server, consulte o Perguntas freqüentes.