Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server auf Azure VM
Dieses Handbuch behandelt Optionen für die Verwendung von PowerShell zum Erstellen einer SQL Server auf Azure virtuellen Computer (VM). Für ein optimiertes Azure PowerShell-Beispiel, das auf Standardwerten basiert, siehe SQL Server auf Azure VM PowerShell-Schnellstart, oder für ein End-to-End-Skript siehe SQL Server-VM mit PowerShell-Skript erstellen.
Voraussetzungen
Für diese Anleitung benötigen Sie Folgendes:
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein free-Konto, bevor Sie beginnen.
- Die neueste Version von Azure PowerShell
Hinweis
In diesem Artikel wird das Azure Az PowerShell-Modul verwendet, das das empfohlene PowerShell-Modul für die Interaktion mit Azure ist. Informationen zu den ersten Schritten mit dem Az PowerShell-Modul finden Sie unter Install Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrate Azure PowerShell von AzureRM zu Az.
Definieren von Variablen
Beginnen Sie mit dem Definieren einer Reihe von Variablen, um Werte wiederzuverwenden und die Skripterstellung zu vereinfachen. Die Parameterwerte können nach Belieben geändert werden. Dabei müssen allerdings die Benennungskonventionen hinsichtlich Namenslänge und Sonderzeichen eingehalten werden.
Definieren Sie zunächst die Parameter, die im gesamten Skript verwendet werden sollen, z. B. den Speicherort, den Namen der Ressourcengruppe, das SQL Server Image und das Speicherkonto, das Sie verwenden möchten, sowie die Eigenschaften des Netzwerks und des virtuellen Computers.
Ort und Ressourcengruppe
Definieren Sie den Datenbereich, die Ressourcengruppe und das Abonnement, in dem Sie Ihre SQL Server VM und zugeordnete Ressourcen erstellen möchten.
Ändern Sie die Werte nach Bedarf, und führen Sie diese Cmdlets aus, um die Variablen zu initialisieren.
$SubscriptionId = "<Enter Subscription ID>"
$Location = "<Enter Location>"
$ResourceGroupName = "<Enter Resource Group Name>"
$userName = "<Enter User Name for the virtual machine"
Speichereigenschaften
Definieren Sie das Speicherkonto und die Art des Speichers für den virtuellen Computer.
Ändern Sie die Werte nach Bedarf, und führen Sie das folgende Cmdlet aus, um diese Variablen zu initialisieren. Es wird empfohlen , Premium-SSDs für Produktionsworkloads zu verwenden.
$StorageName = "sqlvm" + "storage"
$StorageSku = "Premium_LRS"
Hinweis
Der Name des Speicherkontos muss zwischen 3 und 24 Zeichen lang sein und nur Zahlen und Kleinbuchstaben verwenden.
Netzwerkeigenschaften
Definieren Sie die Eigenschaften, die vom Netzwerk auf dem virtuellen Computer verwendet werden sollen.
- Netzwerkschnittstelle
- TCP/IP-Zuordnungsmethode
- Name des virtuellen Netzwerks
- Name des virtuellen Subnetzes
- Bereich von IP-Adressen für das virtuelle Netzwerk
- Bereich von IP-Adressen für das Subnetz
- Öffentliche Bezeichnung für die Domäne
Ändern Sie die Werte nach Bedarf, und führen Sie dieses Cmdlet aus, um die Variablen zu initialisieren.
$InterfaceName = $ResourceGroupName + "ServerInterface"
$NsgName = $ResourceGroupName + "nsg"
$TCPIPAllocationMethod = "Dynamic"
$VNetName = $ResourceGroupName + "VNet"
$SubnetName = "Default"
$VNetAddressPrefix = "10.0.0.0/16"
$VNetSubnetAddressPrefix = "10.0.0.0/24"
$DomainName = $ResourceGroupName
Eigenschaften für virtuelle Computer
Definieren Sie die folgenden Eigenschaften:
- Name des virtuellen Computers
- Computername
- Größe des virtuellen Computers
- Name für den Betriebssystemdatenträger des virtuellen Computers
Ändern Sie die Werte nach Bedarf, und führen Sie dieses Cmdlet aus, um die Variablen zu initialisieren.
$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"
Auswählen eines SQL Server Bilds
Es ist möglich, mithilfe von PowerShell ein älteres Image von SQL Server bereitzustellen, das im Azure-Portal nicht verfügbar ist.
Verwenden Sie die folgenden Variablen, um das SQL Server Image zu definieren, das für den virtuellen Computer verwendet werden soll.
Listen Sie alle SQL Server Bildangebote mit dem Befehl Get-AzVMImageOffer auf, um die aktuellen verfügbaren Bilder im Azure-Portal sowie ältere Bilder auflisten, die Sie nur mit PowerShell bereitstellen können:
Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'Hinweis
SQL Server 2012 und SQL Server 2014 sind nicht mehr im Mainstream-Support und nicht mehr im Azure Marketplace verfügbar.
Geben Sie die verfügbaren Editionen für Ihr Angebot mit Get-AzVMImageSku an.
Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
Verwenden Sie für dieses Lernprogramm die SQL Server 2022 Developer Edition (SQLDEV-GEN2) auf Windows Server 2022. Die Developer Edition wird kostenlos für Test- und Entwicklungsumgebungen lizenziert – Sie bezahlen lediglich die Kosten der VM-Ausführung:
$OfferName = "SQL2022-WS2022"
$PublisherName = "MicrosoftSQLServer"
$Version = "latest"
$Sku = "SQLDEV-GEN2"
$License = 'PAYG'
# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
-AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)
Erstellen einer Ressourcengruppe
Öffnen Sie PowerShell und richten Sie den Zugriff auf Ihr Azure-Konto ein, indem Sie den Befehl Connect-AzAccount ausführen und Ihren Abonnementkontext mit Set-AzContext festlegen. Geben Sie bei Aufforderung Ihre Anmeldeinformationen ein. Verwenden Sie dieselbe E-Mail und dasselbe Kennwort, mit dem Sie sich beim Azure-Portal anmelden.
Nachdem Sie den Abonnementkontext eingerichtet haben, erstellen Sie als erstes Objekt die Ressourcengruppe. Verwenden Sie den Befehl Connect-AzAccount, um eine Verbindung mit Azure herzustellen, und legen Sie ihren Abonnementkontext mit Set-AzContext fest. Verwenden Sie das Cmdlet New-AzResourceGroup, um eine Azure Ressourcengruppe und deren Ressourcen zu erstellen. Geben Sie die zuvor initialisierten Variablen für den Namen der Ressourcengruppe und den Speicherort an.
Führen Sie dieses Cmdlet aus, um eine Verbindung mit Azure herzustellen, den Abonnementkontext einzurichten und die neue Ressourcengruppe zu erstellen:
# Set subscription context
Connect-AzAccount
$subscriptionContextParams = @{
SubscriptionId = $SubscriptionId
}
Set-AzContext @subscriptionContextParams
# Create a resource group
$resourceGroupParams = @{
Name = $resourceGroupName
Location = $Location
Tag = @{Owner="SQLDocs-Samples"}
}
$resourceGroup = New-AzResourceGroup @resourceGroupParams
Erstellen eines Speicherkontos
Der virtuelle Computer erfordert Speicherressourcen für den Betriebssystemdatenträger und für die SQL Server Daten- und Protokolldateien. Der Einfachheit halber erstellen Sie für beides einen einzelnen Datenträger. Sie können später zusätzliche Datenträger anfügen, indem Sie das Cmdlet New-AzDisk verwenden, um Ihre SQL Server Daten und Protokolldateien auf dedizierten Datenträgern zu platzieren. Erstellen Sie mit dem Cmdlet New-AzStorageAccount ein Standardspeicherkonto in der neuen Ressourcengruppe. Geben Sie die zuvor initialisierten Variablen für den Namen des Speicherkontos, den Namen der Speicher-SKU und den Speicherort an.
Führen Sie das folgende Cmdlet aus, um Ihr neues Speicherkonto zu erstellen:
# Create storage account
$StorageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName `
-Name $StorageName -SkuName $StorageSku `
-Kind "Storage" -Location $Location
Tipp
Das Erstellen des Speicherkontos kann einige Minuten dauern.
Erstellen von Netzwerkressourcen
Der virtuelle Computer benötigt für die Netzwerkkonnektivität eine Reihe von Netzwerkressourcen.
- Jeder virtuelle Computer benötigt ein virtuelles Netzwerk.
- Ein virtuelles Netzwerk muss über mindestens ein definiertes Subnetz verfügen.
- Eine Netzwerkschnittstelle muss mit einer öffentlichen oder privaten IP-Adresse definiert werden.
Erstellen einer Subnetzkonfiguration für ein virtuelles Netzwerk
Erstellen Sie zunächst eine Subnetzkonfiguration für das virtuelle Netzwerk. Erstellen Sie für dieses Tutorial mithilfe des Cmdlets New-AzVirtualNetworkSubnetConfig ein Standardsubnetz. Geben Sie die zuvor initialisierten Variablen für den Subnetznamen und das Adresspräfix an.
Hinweis
Mit dem Cmdlet können auch weitere Eigenschaften der Subnetzkonfiguration für das virtuelle Netzwerk definiert werden. Darauf wird in diesem Tutorial jedoch nicht weiter eingegangen.
Führen Sie dieses Cmdlet aus, um die Konfiguration des virtuellen Subnetzes zu erstellen.
# Create a subnet configuration
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix
Erstellen eines virtuellen Netzwerks
Erstellen Sie als Nächstes mithilfe des Cmdlets New-AzVirtualNetwork Ihr virtuelles Netzwerk in der neuen Ressourcengruppe. Geben Sie die zuvor initialisierten Variablen für Name, Speicherort und Adresspräfix an. Verwenden Sie die Sie im vorherigen Schritt definierten Subnetzkonfiguration.
Führen Sie das folgende Cmdlet aus, um Ihr virtuelles Netzwerk zu erstellen:
# Create a virtual network
$VNet = New-AzVirtualNetwork -Name $VNetName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig
Erstellen der öffentlichen IP-Adresse
Nachdem Ihr virtuelles Netzwerk jetzt definiert ist, müssen sie eine IP-Adresse für die Verbindung mit dem virtuellen Computer konfigurieren. Für dieses Tutorial erstellen Sie eine öffentliche IP-Adresse mit dynamischer IP-Adressierung, um Internetverbindungen zu unterstützen. Erstellen Sie mit dem Cmdlet New-AzPublicIpAddress die öffentliche IP-Adresse in der neuen Ressourcengruppe. Geben Sie die zuvor initialisierten Variablen für Name, Speicherort, Zuordnungsmethode und DNS-Domänennamensbezeichnung an.
Hinweis
Mit dem Cmdlet können auch weitere Eigenschaften der öffentlichen IP-Adresse definiert werden. Darauf wird in diesem Einstiegstutorial jedoch nicht weiter eingegangen. Sie können auch eine private Adresse oder eine Adresse mit einer statischen Adresse erstellen, aber auch das wird in diesem Tutorial nicht behandelt.
Führen Sie dieses Cmdlet aus, um Ihre öffentliche IP-Adresse zu erstellen.
# Create a public IP address
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName
Erstellen der Netzwerksicherheitsgruppe
Um den virtuellen Computer und SQL Server Datenverkehr zu sichern, erstellen Sie eine Netzwerksicherheitsgruppe.
Erstellen Sie mithilfe von New-AzNetworkSecurityRuleConfig zwei Netzwerksicherheitsgruppenregeln: eine Regel für Remotedesktop (RDP), um RDP-Verbindungen zuzulassen, und eine Regel, die Datenverkehr an TCP-Port 1433 zulässt. Dadurch können Verbindungen zu SQL Server über das Internet hergestellt werden.
# Create a network security group rule $NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp ` -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow $NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule" -Protocol Tcp ` -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 1433 -Access AllowErstellen Sie mittels New-AzNetworkSecurityGroup die Netzwerksicherheitsgruppe.
# Create a network security group $Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName ` -Location $Location -Name $NsgName ` -SecurityRules $NsgRuleRDP,$NsgRuleSQL
Erstellen der Netzwerkschnittstelle
Nun können Sie die Netzwerkschnittstelle für Ihren virtuellen Computer erstellen. Erstellen Sie mit dem Cmdlet New-AzNetworkInterface die Netzwerkschnittstelle in Ihrer neuen Ressourcengruppe. Geben Sie den Namen, den Speicherort, das Subnetz und die zuvor von Ihnen definierte öffentliche IP-Adresse an.
Führen Sie dieses Cmdlet aus, um Ihre Netzwerkschnittstelle zu erstellen.
# Create a network interface
$Interface = New-AzNetworkInterface -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id `
-NetworkSecurityGroupId $Nsg.Id
Konfigurieren eines VM-Objekts
Nachdem die Speicher- und Netzwerkressourcen jetzt definiert sind, können Sie Computeressourcen für den virtuellen Computer definieren.
- Geben Sie die Größe des virtuellen Computers und verschiedene Betriebssystemeigenschaften an.
- Geben Sie die zuvor erstellte Netzwerkschnittstelle an.
- Definieren Sie Blobspeicher.
- Legen Sie den Betriebssystem-Datenträger fest.
Erstellen des SQL Server virtuellen Computers
Um Ihren SQL Server virtuellen Computer zu erstellen, erstellen Sie zuerst ein Anmeldeinformationsobjekt, und erstellen Sie dann den virtuellen Computer.
Erstellen eines Anmeldeinformationsobjekts zum Speichern von Name und Kennwort für die lokalen Administratoranmeldeinformationen
Bevor Sie die Betriebssystemeigenschaften für den virtuellen Computer festlegen können, müssen Sie die Anmeldeinformationen für das lokale Administratorkonto als sichere Zeichenfolge angeben. Verwenden Sie hierzu das Cmdlet Get-Credential.
Führen Sie das folgende Cmdlet aus. Sie müssen den Namen und das Kennwort des lokalen Administrators der VM im PowerShell-Anforderungsfenster für Anmeldeinformationen eingeben.
# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
-AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)
Definieren von Eigenschaften und Erstellen der VM
Jetzt können Sie die Betriebssystemeigenschaften des virtuellen Computers mit New-AzVMConfig festlegen, die VM mit New-AzVM erstellen und das Cmdlet Add-AzVMNetworkInterface verwenden, um die Netzwerkschnittstelle mithilfe der zuvor definierten Variablen hinzuzufügen.
Das Beispielskript führt Folgendes aus:
- Legen Sie fest, dass der Agent für virtuelle Computer installiert werden muss.
- Gibt an, dass das Cmdlet automatische Aktualisierungen ermöglicht.
- Gibt die zuvor initialisierten Variablen für den Namen des virtuellen Computers, den Computernamen und die Anmeldeinformationen an.
Führen Sie dieses Cmdlet aus, um die Betriebssystemeigenschaften für Ihren virtuellen Computer festzulegen.
# Create a virtual machine configuration
$VMName = $ResourceGroupName + "VM"
$VMConfig = New-AzVMConfig -VMName $VMName -VMSize $VMSize |
Set-AzVMOperatingSystem -Windows -ComputerName $VMName -Credential $Cred -ProvisionVMAgent -EnableAutoUpdate |
Set-AzVMSourceImage -PublisherName $PublisherName -Offer $OfferName -Skus $Sku -Version $Version |
Add-AzVMNetworkInterface -Id $Interface.Id
# Create the VM
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VMConfig
Der virtuelle Computer wird erstellt.
Hinweis
Wenn Sie eine Fehlermeldung bezüglich der Startdiagnose erhalten haben, können Sie sie ignorieren. Für die Startdiagnose wird ein Standardspeicherkonto erstellt, da es sich bei dem angegebenen Speicherkonto für den Datenträger des virtuellen Computers um ein Premium-Speicherkonto handelt.
Installieren der SQL-Iaas-Agenterweiterung
SQL Server virtuellen Maschinen unterstützen automatisierte Verwaltungsfunktionen mit der SQL Server IaaS Agent Extension. Um Ihre SQL Server bei der Erweiterung zu registrieren, führen Sie den Befehl New-AzSqlVM aus, nachdem der virtuelle Computer erstellt wurde. Geben Sie den Lizenztyp für Ihre SQL Server VM an, wählen Sie zwischen Pay-as-you-go (PAYG), der Azure Hybrid Benefit (AHUB) oder der Notfallwiederherstellung (DR) aus, um die free DR-Replikatlizenz zu aktivieren. Weitere Informationen zur Lizenzierung finden Sie unter Lizenzierungsmodell.
Um Ihre SQL Server VM mit der SQL IaaS-Agent-Erweiterung zu registrieren, registrieren Sie zuerst Ihr Abonnement mit dem Ressourcenanbieter mithilfe von Register-AzResourceProvider, und registrieren Sie dann Ihre SQL Server VM mit der SQL IaaS Agent-Erweiterung mithilfe von New-AzSqlVM:
# Register the SQL IaaS Agent extension to your subscription
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine
# Register SQL Server VM with the extension
New-AzSqlVM -Name $VMName -ResourceGroupName $ResourceGroupName -Location $Location `
-LicenseType $License
Es gibt drei Möglichkeiten, sich bei der Erweiterung zu registrieren:
- Automatisch für alle aktuellen und zukünftigen VMs in einem Abonnement
- Manuell für eine einzelne VM
- Manuell für mehrere VMs in großer Anzahl
Beenden oder Entfernen eines virtuellen Computers
Wenn der virtuelle Computer nicht kontinuierlich ausgeführt werden muss, können Sie ihn beenden, wenn er nicht verwendet wird, um unnötige Kosten zu vermeiden. Mit dem folgenden Befehl wird der virtuelle Computer beendet, bleibt aber für eine spätere Verwendung verfügbar.
Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName
Mit dem Befehl Remove-AzResourceGroup können Sie alle Ressourcen, die der VM zugeordnet sind, endgültig entfernen. Dadurch wird auch der virtuelle Computer endgültig gelöscht. Seien Sie daher vorsichtig, wenn Sie diesen Befehl verwenden.
Vollständiges Skript
Ein vollständiges PowerShell-Skript, das eine End-to-End-Umgebung bietet, finden Sie unter Deploy SQL Server auf Azure VM mit PowerShell.
Zugehöriger Inhalt
Nach der Erstellung des virtuellen Computers haben Sie folgende Möglichkeiten:
- Herstellen einer Verbindung mit dem virtuellen Computer mithilfe von Bastion
- Konfigurieren Sie SQL Server Einstellungen im Portal für Ihren virtuellen Computer, einschließlich:
- Konfigurieren von Konnektivität
- Verbinden von Clients und Anwendungen mit der neuen SQL Server Instanz