Guida introduttiva: Creare SQL Server in una macchina virtuale di Azure con PowerShell

Si applica a: SQL Server su VM di Azure

Questa guida introduttiva illustra la creazione di una macchina virtuale (VM) di Windows SQL Server con Azure PowerShell.

Suggerimento

Prerequisiti

Per completare questa guida introduttiva, è necessario disporre degli elementi seguenti:

  • Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • La versione più recente di Azure PowerShell

Nota

Questo articolo usa il modulo di PowerShell Azure Az consigliato per l'interazione con Azure. Per iniziare a usare il modulo Az PowerShell, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Connect to Azure

  1. Aprire PowerShell e stabilire l'accesso all'account Azure eseguendo il comando Connect-AzAccount e impostare il contesto della sottoscrizione con Set-AzContext.

    Connect-AzAccount
    Set-AzContext -subscription <Subscription ID>
    
  2. Quando viene visualizzata la finestra di accesso, immettere le credenziali. Utilizzare lo stesso indirizzo email e password utilizzati per accedere al portale di Azure.

Creare un gruppo di risorse

Definire le variabili per un nome univoco del gruppo di risorse e fornire una posizione di un'area di Azure di destinazione per tutte le risorse della macchina virtuale. Usare quindi New-AzResourceGroup per creare il gruppo di risorse. Per semplificare il resto della guida introduttiva, gli altri comandi usano questo nome come base per i nomi delle altre risorse.

$ResourceGroupName = "sqlvm1"
$Location = "East US"
$ResourceGroupParams = @{
   Name = $ResourceGroupName
   Location = $Location
   Tag = @{Owner="SQLDocs-Samples"}
}
New-AzResourceGroup @ResourceGroupParams

Configurare le impostazioni di rete

  1. Usare New-AzVirtualNetworkSubnetConfig, New-AzVirtualNetwork e New-AzPublicIpAddress per creare una rete virtuale, una subnet e un indirizzo IP pubblico. Queste risorse vengono usate per fornire la connettività di rete alla macchina virtuale e connetterla a Internet.

    $SubnetName = $ResourceGroupName + "subnet"
    $VnetName = $ResourceGroupName + "vnet"
    $PipName = $ResourceGroupName + $(Get-Random)
    
    # Create a subnet configuration
    $SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix 192.168.1.0/24
    
    # Create a virtual network
    $Vnet = New-AzVirtualNetwork -ResourceGroupName $ResourceGroupName -Location $Location `
       -Name $VnetName -AddressPrefix 192.168.0.0/16 -Subnet $SubnetConfig
    
    # Create a public IP address and specify a DNS name
    $Pip = New-AzPublicIpAddress -ResourceGroupName $ResourceGroupName -Location $Location `
       -AllocationMethod Static -IdleTimeoutInMinutes 4 -Name $PipName
    
  2. Usare New-AzNetworkSecurityGroup per creare un gruppo di sicurezza di rete dopo aver configurato le regole per consentire le connessioni Desktop remoto (RDP) e SQL Server con New-AzNetworkSecurityRuleConfig.

    # Rule to allow remote desktop (RDP)
    $NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp `
       -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
    
    #Rule to allow SQL Server connections on port 1433
    $NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule"  -Protocol Tcp `
       -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 1433 -Access Allow
    
    # Create the network security group
    $NsgName = $ResourceGroupName + "nsg"
    $Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName `
       -Location $Location -Name $NsgName `
       -SecurityRules $NsgRuleRDP,$NsgRuleSQL
    
  3. Creare l'interfaccia di rete con New-AzNetworkInterface.

    $InterfaceName = $ResourceGroupName + "int"
    $Interface = New-AzNetworkInterface -Name $InterfaceName `
       -ResourceGroupName $ResourceGroupName -Location $Location `
       -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $Pip.Id `
       -NetworkSecurityGroupId $Nsg.Id
    

Creare la macchina virtuale SQL

  1. Definire le credenziali per l'accesso alla macchina virtuale. Il nome utente è "azureadmin". Assicurarsi di modificare la <password> prima di eseguire il comando.

    # Define a credential object
     $userName = "azureadmin"
     $SecurePassword = ConvertTo-SecureString '<strong password>' `
        -AsPlainText -Force
     $Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)
    
  2. Creare un oggetto di configurazione della macchina virtuale con New-AzVMConfig e quindi creare la macchina virtuale con New-AzVM. Il comando seguente crea una macchina virtuale SQL Server 2022 Developer Edition in Windows Server 2022.

    # Create a virtual machine configuration
    $VMName = $ResourceGroupName + "VM"
    $VMConfig = New-AzVMConfig -VMName $VMName -VMSize Standard_DS13_V2 |
       Set-AzVMOperatingSystem -Windows -ComputerName $VMName -Credential $Cred -ProvisionVMAgent -EnableAutoUpdate |
       Set-AzVMSourceImage -PublisherName "MicrosoftSQLServer" -Offer "sql2022-ws2022" -Skus "sqldev-gen2" -Version "latest" |
       Add-AzVMNetworkInterface -Id $Interface.Id
    
    # Create the VM
    New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VMConfig
    

    Suggerimento

    La creazione della macchina virtuale richiede alcuni minuti.

Eseguire la registrazione con il provider di risorse delle macchine virtuali SQL

Per ottenere l'integrazione del portale e le funzionalità delle VM SQL, è necessario registrarsi con l'estensione dell'operatore Iaas di SQL.

A tale scopo, registrare prima di tutto la sottoscrizione con il provider di risorse usando Register-AzResourceProvider:

# Register the SQL IaaS Agent extension to your subscription
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine

Registrare quindi la macchina virtuale di SQL Server con l'estensione SQL IaaS Agent usando New-AzSqlVM:

$License = 'PAYG'

# Register SQL Server VM with the extension
New-AzSqlVM -Name $VMName -ResourceGroupName $ResourceGroupName -Location $Location `
-LicenseType $License

Desktop remoto nella macchina virtuale

  1. Usare Get-AzPublicIpAddress per recuperare l'indirizzo IP pubblico per la nuova macchina virtuale.

    Get-AzPublicIpAddress -ResourceGroupName $ResourceGroupName | Select IpAddress
    
  2. Passare l'indirizzo IP restituito come parametro della riga di comando a mstsc per avviare una sessione di Desktop remoto nella nuova VM.

    mstsc /v:<publicIpAddress>
    
  3. Quando vengono richieste le credenziali, scegliere di immettere le credenziali per un account diverso. Immettere il nome utente preceduto da una barra rovesciata, ad esempio \azureadmin, e la password impostata in precedenza in questa guida introduttiva.

Connessione a SQL Server

  1. Dopo aver eseguito l'accesso a una sessione di Desktop remoto, avviare SQL Server Management Studio 2017 dal menu Start.

  2. Nella finestra di dialogo Connetti al server mantenere i valori predefiniti. Il nome del server è il nome della VM. L'autenticazione è impostata su Autenticazione di Windows. Selezionare Connetti.

Si è ora connessi localmente a SQL Server. Se ci si vuole connettere in remoto, è necessario configurare la connettività dal portale di Azure o manualmente.

Pulire le risorse

Se non è necessario che la macchina virtuale sia continuamente in esecuzione, è possibile evitare addebiti superflui arrestandola quando non è in uso. Il comando seguente arresta la VM ma la lascia disponibile per un uso futuro.

Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName

È anche possibile eliminare definitivamente tutte le risorse associate alla macchina virtuale con il comando Remove-AzResourceGroup. In questo modo viene eliminata definitivamente anche la macchina virtuale, quindi usare questo comando con cautela.

Passaggi successivi

In questa guida introduttiva è stata creata una macchina virtuale di SQL Server 2022 con Azure PowerShell. Per altre informazioni su come eseguire la migrazione dei dati nella nuova VM di SQL Server, vedere l'articolo seguente.