Registrare più macchine virtuali SQL in Azure con l'estensione SQL IaaS Agent

Si applica a: SQL Server nella macchina virtuale di Azure

Questo articolo descrive come registrare le macchine virtuali di SQL Server in blocco in Azure con l'estensione SQL IaaS Agent usando il Register-SqlVMscmdlet Azure PowerShell.

Questo articolo illustra come registrare manualmente SQL Server macchine virtuali in blocco. In alternativa, è possibile registrare tutte le macchine virtuali SQL Server automaticamente o singole macchine virtuali SQL Server manualmente.

Nota

A partire da settembre 2021, la registrazione con l'estensione SQL IaaS in modalità completa non richiede più il riavvio del servizio SQL Server.

Panoramica

Il cmdlet Register-SqlVMs può essere usato per registrare tutte le macchine virtuali in un elenco specifico di sottoscrizioni, gruppi di risorse o un elenco di macchine virtuali specifiche. Il cmdlet registra le macchine virtuali in modalità di gestione leggera e quindi genera un report e un file di log.

Il processo di registrazione non comporta alcun rischio, non ha tempi di inattività e non riavvia il servizio SQL Server o la macchina virtuale.

Per impostazione predefinita, le macchine virtuali di Azure con SQL Server 2016 o versioni successive installate verranno registrate automaticamente con l'estensione SQL IaaS Agent quando viene rilevato dal servizio CEIP. Per altre informazioni, vedere il supplemento SQL Server privacy.

Prerequisiti

Per registrare la macchina virtuale SQL Server con l'estensione, è necessario quanto segue:

Introduzione

Prima di procedere, è necessario creare una copia locale dello script, importarla come modulo di PowerShell e connettersi ad Azure.

Creare lo script

Per creare lo script, copiare lo script completo alla fine di questo articolo e salvarlo localmente come RegisterSqlVMs.psm1.

Importare lo script

Dopo aver creato lo script, è possibile importarlo come modulo nel terminale di PowerShell.

Aprire un terminale amministrativo di PowerShell e passare al percorso in cui è stato salvato il file RegisterSqlVMs.psm1. Eseguire quindi il seguente cmdlet di PowerShell per importare lo script come modulo:

Import-Module .\RegisterSqlVMs.psm1

Connettersi ad Azure

Usare il seguente cmdlet di PowerShell per connettersi ad Azure:

Connect-AzAccount

Tutte le macchine virtuali in un elenco di sottoscrizioni

Usare il cmdlet seguente per registrare tutte le macchine virtuali di SQL Server in un elenco di sottoscrizioni:

Register-SqlVMs -SubscriptionList SubscriptionId1,SubscriptionId2

Output di esempio:

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

Tutte le macchine virtuali in una singola sottoscrizione

Usare il cmdlet seguente per registrare tutte le macchine virtuali di SQL Server in una singola sottoscrizione:

Register-SqlVMs -Subscription SubscriptionId1

Output di esempio:

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

Tutte le macchine virtuali in più gruppi di risorse

Usare il cmdlet seguente per registrare tutte le macchine virtuali di SQL Server in più gruppi di risorse all'interno di una singola sottoscrizione:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupList ResourceGroup1,ResourceGroup2

Output di esempio:

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

Tutte le macchine virtuali in un gruppo di risorse

Usare il cmdlet seguente per registrare tutte le macchine virtuali di SQL Server in un singolo gruppo di risorse:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1

Output di esempio:

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

Macchine virtuali specifiche in un singolo gruppo di risorse

Usare il cmdlet seguente per registrare macchine virtuali di SQL Server specifiche in un singolo gruppo di risorse:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -VmList VM1,VM2,VM3

Output di esempio:

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

Una macchina virtuale specifica

Usare il cmdlet seguente per registrare una macchina virtuale di SQL Server specifica:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -Name VM1

Output di esempio:

Total VMs Found: 1
VMs Already registered: 0
Number of VMs registered successfully: 1

Please find the detailed report in  file RegisterSqlVMScriptReport1571314821.txt

Descrizione output

Ogni volta che viene usato il cmdlet Register-SqlVMs vengono generati un report e un file di log.

Report

Il report viene generato come file .txt denominato RegisterSqlVMScriptReport<Timestamp>.txt dove il timestamp è l'ora in cui è stato avviato il cmdlet. Il report contiene i dettagli seguenti:

Valore di output Descrizione
La registrazione del numero di sottoscrizioni non è riuscita perché l'utente non può accedere o le credenziali non sono corrette Vengono indicati il numero e l'elenco delle sottoscrizioni che presentano problemi relativi all'autenticazione. L'errore dettagliato si può reperire nel log cercando l'ID sottoscrizione.
Numero di sottoscrizioni che non è stato possibile provare perché non sono registrate nel provider di risorse Questa sezione contiene il conteggio e l'elenco delle sottoscrizioni che non sono state registrate nell'estensione SQL IaaS Agent.
Numero totale di macchine virtuali trovate Numero di macchine virtuali trovate nell'ambito dei parametri passati al cmdlet.
Macchine virtuali già registrate Numero di macchine virtuali ignorate mentre erano già registrate con l'estensione.
Numero di macchine virtuali registrate correttamente Numero di macchine virtuali registrate correttamente dopo l'esecuzione del cmdlet. Le macchine virtuali registrate sono riportate nel formato SubscriptionID, Resource Group, Virtual Machine.
Numero di VM che non è stato possibile registrare a causa di un errore Numero di macchine virtuali che non sono state registrate a causa di un errore. I dettagli dell'errore si trovano nel file di log.
Numero di VM ignorate perché la VM o l'agente guest nella VM non è in esecuzione Numero ed elenco delle macchine virtuali che non è stato possibile registrare perché la macchina virtuale o l'agente guest nella macchina virtuale non era in esecuzione. Queste operazioni possono essere ritentate dopo l'avvio della macchina virtuale o dell'agente guest. I dettagli sono disponibili nel file di log.
Numero di VM ignorate poiché non eseguono SQL Server in Windows Numero di macchine virtuali ignorate perché non eseguono SQL Server o non sono macchine virtuali Windows. Le macchine virtuali sono elencate nel formato SubscriptionID, Resource Group, Virtual Machine.

File di log

Gli errori vengono registrati nel file di log denominato VMsNotRegisteredDueToError<Timestamp>.log, dove timestamp è l'ora di inizio dello script. Se l'errore è a livello di sottoscrizione, il log contiene l'ID sottoscrizione delimitato da virgole e il messaggio di errore. Se l'errore riguarda la registrazione della macchina virtuale, il log contiene l'ID sottoscrizione, il nome del gruppo di risorse, il nome della macchina virtuale, il codice di errore e il messaggio separati da virgole.

Osservazioni

Quando si registrano SQL Server macchine virtuali con l'estensione usando lo script specificato, prendere in considerazione quanto segue:

  • La registrazione con l'estensione richiede un agente guest in esecuzione nella macchina virtuale SQL Server. Le immagini di Windows Server 2008 non hanno un agente guest, pertanto queste macchine virtuali avranno esito negativo e dovranno essere registrate manualmente usando la modalità di gestione NoAgent.
  • Per superare gli errori trasparenti, è incorporata una logica di ripetizione dei tentativi. Se la macchina virtuale è stata registrata correttamente, si tratta di un'operazione rapida. Tuttavia, se la registrazione ha esito negativo, viene eseguito un nuovo tentativo per ogni macchina virtuale. Di conseguenza, è necessario consentire un tempo significativo per completare il processo di registrazione, anche se il requisito di tempo effettivo dipende dal tipo e dal numero di errori.

Script completo

Per lo script completo in GitHub, vedere Registrare in blocco SQL Server macchine virtuali con Az PowerShell.

Copiare lo script completo e salvarlo come RegisterSqLVMs.psm1.

Passaggi successivi

Per altre informazioni, vedere gli articoli seguenti: