Meerdere SQL-VM's registreren in Azure met de SQL IaaS Agent-extensie

Van toepassing op: SQL Server op Azure VM

In dit artikel wordt beschreven hoe u uw virtuele SQL Server-machines (VM's) bulksgewijs registreert in Azure met de SQL IaaS Agent-extensie met behulp van de Register-SqlVMsAzure PowerShell-cmdlet.

U kunt ook alle SQL Server-VM's automatisch of afzonderlijke SQL Server-VM's handmatig registreren.

Notitie

VOOR SQL Server-VM's die zijn geïmplementeerd via Azure Marketplace na oktober 2022, is standaard het model met minimale bevoegdheden ingeschakeld. Beheermodi voor de SQL IaaS Agent-extensie zijn in maart 2023 verwijderd.

Overzicht

De Register-SqlVMs cmdlet kan worden gebruikt om alle virtuele machines in een bepaalde lijst met abonnementen, resourcegroepen of een lijst met specifieke virtuele machines te registreren. De cmdlet registreert de virtuele machines en genereert vervolgens zowel een rapport als een logboekbestand.

Het registratieproces loopt geen risico, heeft geen downtime en start de SQL Server-service of de virtuele machine niet opnieuw op.

Azure-VM's met SQL Server 2016 of hoger worden standaard automatisch geregistreerd bij de SQL IaaS Agent-extensie wanneer deze worden gedetecteerd door de CEIP-service. U kunt bulkregistratie gebruiken om virtuele SQL Server-machines te registreren die niet door de CEIP-service worden gedetecteerd.

Zie de privacyverklaringen van de SQL IaaS Agent-extensie voor meer informatie over privacy.

Vereisten

Als u uw SQL Server-VM wilt registreren bij de extensie, hebt u het volgende nodig:

  • Een Azure-abonnement dat is geregistreerd bij de resourceprovider Microsoft.SqlVirtualMachine en die niet-geregistreerde virtuele SQL Server-machines bevat.
  • Zorg ervoor dat de Virtuele Azure-machine wordt uitgevoerd.
  • De clientreferenties die worden gebruikt om de virtuele machines te registreren, bestaan in een van de volgende Azure-rollen: Inzender voor virtuele machines, Inzender of Eigenaar.
  • Az PowerShell 5.0 - versies hoger dan 5.0 ondersteunen momenteel alleen MFA en zijn niet compatibel met het script om meerdere VM's te registreren.

Aan de slag

Voordat u doorgaat, moet u eerst een lokale kopie van het script maken, dit importeren als een PowerShell-module en verbinding maken met Azure.

Het script maken

Als u het script wilt maken, kopieert u het volledige script vanaf het einde van dit artikel en slaat u het lokaal op als RegisterSqlVMs.psm1.

Het script importeren

Nadat het script is gemaakt, kunt u het importeren als een module in de PowerShell-terminal.

Open een PowerShell-terminal met beheerdersrechten en navigeer naar de locatie waar u het RegisterSqlVMs.psm1 bestand hebt opgeslagen. Voer vervolgens de volgende PowerShell-cmdlet uit om het script als module te importeren:

Import-Module .\RegisterSqlVMs.psm1

Verbinding maken met Azure

Gebruik de volgende PowerShell-cmdlet om verbinding te maken met Azure:

Connect-AzAccount

Alle VM's in een lijst met abonnementen

Gebruik de volgende cmdlet om alle virtuele SQL Server-machines te registreren in een lijst met abonnementen:

Register-SqlVMs -SubscriptionList SubscriptionId1,SubscriptionId2

Voorbeelduitvoer:

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

Alle VM's in één abonnement

Gebruik de volgende cmdlet om alle virtuele SQL Server-machines in één abonnement te registreren:

Register-SqlVMs -Subscription SubscriptionId1

Voorbeelduitvoer:

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

Alle VM's in meerdere resourcegroepen

Gebruik de volgende cmdlet om alle virtuele SQL Server-machines in meerdere resourcegroepen binnen één abonnement te registreren:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupList ResourceGroup1,ResourceGroup2

Voorbeelduitvoer:

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

Alle VM's in een resourcegroep

Gebruik de volgende cmdlet om alle virtuele SQL Server-machines in één resourcegroep te registreren:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1

Voorbeelduitvoer:

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

Specifieke VM's in één resourcegroep

Gebruik de volgende cmdlet om specifieke virtuele SQL Server-machines binnen één resourcegroep te registreren:

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

Voorbeelduitvoer:

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

Een specifieke VM

Gebruik de volgende cmdlet om een specifieke virtuele SQL Server-machine te registreren:

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

Voorbeelduitvoer:

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

Please find the detailed report in  file RegisterSqlVMScriptReport1571314821.txt

Beschrijving van uitvoer

Zowel een rapport als een logboekbestand worden gegenereerd wanneer de Register-SqlVMs cmdlet wordt gebruikt.

Rapport

Het rapport wordt gegenereerd als een .txt bestand met de naam RegisterSqlVMScriptReport<Timestamp>.txt waar de tijdstempel het tijdstip is waarop de cmdlet is gestart. Het rapport bevat de volgende details:

Uitvoerwaarde Beschrijving
Aantal abonnementen waarvoor registratie is mislukt omdat u geen toegang hebt of referenties onjuist zijn Dit biedt het aantal en de lijst met abonnementen met problemen met de opgegeven verificatie. De gedetailleerde fout vindt u in het logboek door te zoeken naar de abonnements-id.
Aantal abonnementen dat niet kan worden geprobeerd omdat ze niet zijn geregistreerd bij de resourceprovider Deze sectie bevat het aantal en de lijst met abonnementen die niet zijn geregistreerd bij de SQL IaaS Agent-extensie.
Totaal aantal gevonden VM's Het aantal virtuele machines dat is gevonden in het bereik van de parameters die aan de cmdlet zijn doorgegeven.
VM's die al zijn geregistreerd Het aantal virtuele machines dat is overgeslagen omdat ze al zijn geregistreerd bij de extensie.
Aantal vm's dat is geregistreerd Het aantal virtuele machines dat is geregistreerd na het uitvoeren van de cmdlet. Geeft een lijst weer van de geregistreerde virtuele machines in de indeling SubscriptionID, Resource Group, Virtual Machine.
Aantal VM's kan niet worden geregistreerd vanwege een fout Het aantal virtuele machines dat niet kon worden geregistreerd vanwege een fout. De details van de fout vindt u in het logboekbestand.
Aantal VM's overgeslagen omdat de VM of de gustagent op de VM niet wordt uitgevoerd Het aantal en de lijst met virtuele machines die niet kunnen worden geregistreerd als de virtuele machine of de gastagent op de virtuele machine, zijn niet uitgevoerd. Deze kunnen opnieuw worden geprobeerd zodra de virtuele machine of gastagent is gestart. Details vindt u in het logboekbestand.
Aantal VM's overgeslagen omdat sql Server niet wordt uitgevoerd in Windows Het aantal virtuele machines dat is overgeslagen omdat sql Server niet wordt uitgevoerd of geen virtuele Windows-machine is. De virtuele machines worden weergegeven in de indeling SubscriptionID, Resource Group, Virtual Machine.

Logboek

Fouten worden vastgelegd in het logboekbestand met de naam VMsNotRegisteredDueToError<Timestamp>.log, waarbij de tijdstempel het tijdstip is waarop het script is gestart. Als de fout zich op abonnementsniveau bevindt, bevat het logboek de door komma's gescheiden abonnements-id en het foutbericht. Als de fout betrekking heeft op de registratie van de virtuele machine, bevat het logboek de abonnements-id, de naam van de resourcegroep, de naam van de virtuele machine, de foutcode en het bericht gescheiden door komma's.

Opmerkingen

Wanneer u SQL Server-VM's registreert bij de extensie met behulp van het opgegeven script, moet u rekening houden met het volgende:

  • Voor registratie bij de extensie is een gastagent vereist die wordt uitgevoerd op de SQL Server-VM. Windows Server 2008-installatiekopieën hebben geen gastagent, dus deze virtuele machines mislukken en moeten handmatig worden geregistreerd met beperkte functionaliteit.
  • Er is ingebouwde logica voor opnieuw proberen om transparante fouten op te lossen. Als de virtuele machine is geregistreerd, is het een snelle bewerking. Als de registratie mislukt, wordt elke virtuele machine echter opnieuw geprobeerd. Daarom moet u aanzienlijke tijd toestaan om het registratieproces te voltooien, hoewel de werkelijke tijdsvereiste afhankelijk is van het type en het aantal fouten.

Volledige script

Zie Sql Server-VM's bulksgewijs registreren bij Az PowerShell voor het volledige script op GitHub.

Kopieer het volledige script en sla het op als RegisterSqLVMs.psm1.

Volgende stappen

Raadpleeg de volgende artikelen voor meer informatie: