Registrar várias VMs do SQL no Azure com a extensão do agente IaaS do SQL
Aplica-se a: SQL Server na VM do Azure
Este artigo descreve como registrar suas VMs (máquinas virtuais) do SQL Server em massa no Azure com a extensão do agente IaaS do SQL usando o Register-SqlVMs
cmdlet do Azure PowerShell.
Como alternativa, você pode registrar todas as VMs de SQL Server automaticamenteouas VMs do SQL Server individuais manualmente.
Observação
As VMs do SQL Server implantadas por meio do mercado do Azure após outubro de 2022 têm o modelo menos privilegiado habilitado por padrão. Os modos de gerenciamento da extensão do Agente IaaS do SQL foram removidos em março de 2023.
Visão geral
O cmdlet Register-SqlVMs
pode ser usado para registrar todas as máquinas virtuais em uma determinada lista de assinaturas, em grupos de recursos ou em uma lista de máquinas virtuais específica. O cmdlet registrará as máquinas virtuais e gerará um relatório e um arquivo de log.
O processo de registro não tem riscos, não tem nenhum tempo de inatividade e não reinicia o SQL Server ou a máquina virtual.
Por padrão, as VMs do Azure com SQL Server 2016 ou posterior são registradas automaticamente com a extensão do Agente de IaaS do SQL quando detectadas pelo serviço do Programa de Aperfeiçoamento da Experiência do Usuário. Você pode usar o registro em massa para registrar todas as VMs do SQL Server que não são detectadas pelo serviço CEIP.
Para obter informações sobre privacidade, confira as declarações de privacidade da extensão do Agente de IaaS do SQL.
Pré-requisitos
Para registrar a sua VM do SQL Server na extensão, você precisará de:
- Uma assinatura do Azure que foi registrada no provedor de recursos Microsoft.SqlVirtualMachine e que contenha máquinas virtuais não registradas do SQL Server.
- Certifique-se de que a VM do Azure esteja sendo executada.
- As credenciais de cliente usadas para registrar as máquinas virtuais existentes em qualquer uma das seguintes funções do Azure: Colaborador de máquina virtual, Colaborador ou Proprietário.
- Az PowerShell 5.0 – versões superiores à 5.0 atualmente só dão suporte à MFA e não são compatíveis com o script para registrar várias VMs.
Introdução
Antes de continuar, primeiro você deve criar uma cópia local do script, importá-la como um módulo do PowerShell e conectá-la ao Azure.
Criar o script
Para criar o script, copie o script completo no fim deste artigo e salve-o localmente como RegisterSqlVMs.psm1
.
Importar o script
Depois de criar o script, você poderá importá-lo como um módulo no terminal do PowerShell.
Abra um terminal administrativo do PowerShell e acesse o local em que o arquivo RegisterSqlVMs.psm1
foi salvo. Execute o seguinte cmdlet do PowerShell para importar o script como um módulo:
Import-Module .\RegisterSqlVMs.psm1
Conectar-se ao Azure
Use o seguinte cmdlet do PowerShell para se conectar ao Azure:
Connect-AzAccount
Todas as VMs em uma lista de assinaturas
Use o seguinte cmdlet para registrar todas as máquinas virtuais do SQL Server em uma lista de assinaturas:
Register-SqlVMs -SubscriptionList SubscriptionId1,SubscriptionId2
Saída de exemplo:
Number of subscriptions registration failed for
because you do not have access or credentials are wrong: 1
Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 4
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 3
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Todas as VMs em uma assinatura única
Use o seguinte cmdlet para registrar todas as máquinas virtuais do SQL Server em uma assinatura única:
Register-SqlVMs -Subscription SubscriptionId1
Saída de exemplo:
Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 5
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 2
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Todas as VMs em vários grupos de recursos
Use o seguinte cmdlet para registrar todas as máquinas virtuais do SQL Server em vários grupos de recursos em uma assinatura única:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupList ResourceGroup1,ResourceGroup2
Saída de exemplo:
Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Todas as VMs em um grupo de recursos
Use o seguinte cmdlet para registrar todas as máquinas virtuais do SQL Server em um grupo de recursos único:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1
Saída de exemplo:
Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
VMs específicas em um grupo de recursos único
Use o seguinte cmdlet para registrar máquinas virtuais do SQL Server específicas em um grupo de recursos único:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -VmList VM1,VM2,VM3
Saída de exemplo:
Total VMs Found: 3
VMs Already registered: 0
Number of VMs registered successfully: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Uma VM específica
Use o seguinte cmdlet para registrar uma máquina virtual do SQL Server específica:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -Name VM1
Saída de exemplo:
Total VMs Found: 1
VMs Already registered: 0
Number of VMs registered successfully: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Descrição da saída
Um relatório e um arquivo de log são gerados sempre que o cmdlet Register-SqlVMs
é usado.
Relatório
O relatório é gerado como um arquivo .txt
chamado RegisterSqlVMScriptReport<Timestamp>.txt
, em que o carimbo de data/hora é o horário em que o cmdlet foi iniciado. O relatório lista os seguintes detalhes:
Valor de saída | Descrição |
---|---|
Ocorreu falha no registro do número de assinaturas porque você não tem acesso ou as credenciais estão incorretas | Isso fornece o número e a lista de assinaturas que tiveram problemas com a autenticação fornecida. O erro detalhado pode ser encontrado no log ao pesquisar pela ID da assinatura. |
Número de assinaturas que não puderam ser testadas, pois não estavam registradas no provedor de recursos | Esta seção aborda a contagem e a lista de assinaturas que não foram registradas na extensão do agente IaaS do SQL. |
Total de VMs encontradas | A contagem de máquinas virtuais encontradas no escopo dos parâmetros passados para o cmdlet. |
VMs já registradas | A contagem de máquinas virtuais que foram ignoradas porque já estavam registradas na extensão. |
Número de VMs registradas com êxito | A contagem de máquinas virtuais que foram registradas com êxito após a execução do cmdlet. Lista as máquinas virtuais registradas no formato SubscriptionID, Resource Group, Virtual Machine . |
Número de VMs com falha ao registrar devido a um erro | Contagem de máquinas virtuais com falha ao registrar devido a algum erro. Os detalhes do erro podem ser encontrados no arquivo de log. |
Número de VMs ignoradas porque a VM ou o agente convidado na VM não estava em execução | A contagem e a lista de máquinas virtuais que não puderam ser registradas porque a máquina virtual ou o agente convidado na máquina virtual não estava em execução. Será possível tentar novamente depois de iniciar a máquina virtual ou o agente convidado. Os detalhes podem ser encontrados no arquivo de log. |
Número de VMs ignoradas porque não estavam executando o SQL Server no Windows | Contagem de máquinas virtuais que foram ignoradas porque não estavam executando o SQL Server ou não eram máquinas virtuais do Windows. As máquinas virtuais são listadas no formato SubscriptionID, Resource Group, Virtual Machine . |
Log
Os erros são registrados no arquivo de log chamado VMsNotRegisteredDueToError<Timestamp>.log
, em que o carimbo de data/hora é a hora em que o script foi iniciado. Se o erro ocorrer em nível de assinatura, o log conterá a ID da assinatura e a mensagem de erro separadas por vírgulas. Se o erro ocorrer no registro da máquina virtual, o log conterá a ID da assinatura, o nome do grupo de recursos, o nome da máquina virtual, o código de erro e a mensagem separados por vírgulas.
Comentários
Ao registrar as VMs do SQL Server na extensão usando o script fornecido, considere o seguinte:
- O registro com o provedor de recursos requer um agente convidado em execução na VM do SQL Server. As imagens do Windows Server 2008 não têm um agente convidado, portanto, essas máquinas virtuais falharão e deverão ser registradas manualmente com funcionalidade limitada.
- Há uma lógica de repetição interna para solucionar erros transparentes. Se a máquina virtual for registrada com êxito, a operação será rápida. No entanto, em caso de falha do registro, cada máquina virtual será testada novamente. Portanto, o processo de registro requer um tempo significativo para ser concluído, embora o requisito de tempo real dependa do tipo e da quantidade de erros.
Script completo
Para ver o script completo no GitHub, confira Registrar VMs do SQL em massa com o Az PowerShell.
Copie o script completo e salve-o como RegisterSqLVMs.psm1
.
Próximas etapas
- Examine os benefícios fornecidos pela extensão do Agente IaaS do SQL.
- Registrar manualmente uma única VM
- Registre automaticamente todas as VMs em uma assinatura.
- Solucione problemas conhecidos com a extensão.
- Examine as declarações de privacidade da extensão do Agente de IaaS do SQL.
- Examine a lista de verificação de melhores práticas para otimizar o desempenho e a segurança.
Para saber mais, leia os seguintes artigos: