Aracılığıyla paylaş


PowerShell ile SQL Server VM oluşturma kılavuzu

Şunlar için geçerlidir: Azure VM'de SQL Server

Bu kılavuz, PowerShell kullanarak Azure Sanal Makinesinde (VM) SQL Server oluşturma seçeneklerini kapsar. Varsayılan değerlere dayalı kolaylaştırılmış bir Azure PowerShell örneği için bkz . Azure VM PowerShell'de SQL Server hızlı başlangıcı veya uçtan uca betik için bkz . PowerShell betiği ile SQL Server VM oluşturma.

Önkoşullar

Bu kılavuzu tamamlamak için aşağıdakilere sahip olmanız gerekir:

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Azure PowerShell'in en son sürümü

Not

Bu makalede, Azure ile etkileşim için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Değişkenleri tanımlama

Değerleri yeniden kullanmak ve betik oluşturmayı basitleştirmek için bir dizi değişken tanımlayarak işe başlayın. Parametre değerlerini istediğiniz gibi değiştirin, ancak sağlanan değerleri değiştirirken ad uzunluklarıyla ve özel karakterlerle ilgili adlandırma kısıtlamalarına dikkat edin.

Kaynak grubunun konumu, adı, kullanmak istediğiniz SQL Server görüntüsü ve depolama hesabının yanı sıra ağ ve sanal makine özellikleri gibi betik boyunca kullanılacak parametreleri tanımlayarak başlayın.

Konum ve kaynak grubu

SQL Server VM'nizi ve ilişkili kaynakları oluşturmak istediğiniz veri bölgesini, kaynak grubunu ve aboneliği tanımlayın.

İstediğiniz gibi değiştirin ve ardından bu değişkenleri başlatmak için bu cmdlet'leri çalıştırın.

$SubscriptionId = "<Enter Subscription ID>"
$Location = "<Enter Location>"
$ResourceGroupName = "<Enter Resource Group Name>"
$userName = "<Enter User Name for the virtual machine"

Depolama özellikleri

Depolama hesabını ve sanal makine tarafından kullanılacak depolama türünü tanımlayın.

İstediğiniz gibi değiştirin ve bu değişkenleri başlatmak için aşağıdaki cmdlet'i çalıştırın. Üretim iş yükleri için premium SSD'ler kullanmanızı öneririz.

$StorageName = "sqlvm" + "storage"
$StorageSku = "Premium_LRS"

Not

Depolama hesabı adının uzunluğu 3 ile 24 karakter arasında olmalı ve yalnızca sayıları ve küçük harfleri kullanmalıdır; bu nedenle kaynak grubu adınızın özel karakter içermediğinden emin olun veya depolama hesabının adını $ResourceGroupName farklı bir ad kullanacak şekilde değiştirin.

Ağ özellikleri

Sanal makinedeki ağ tarafından kullanılacak özellikleri tanımlayın.

  • Ağ arabirimi
  • TCP/IP ayırma yöntemi
  • Sanal ağın adı
  • Sanal alt ağ adı
  • Sanal ağ için IP adresi aralığı
  • Alt ağ için IP adresleri aralığı
  • Genel etki alanı adı etiketi

İstediğiniz gibi değiştirin ve ardından bu değişkenleri başlatmak için bu cmdlet'i çalıştırın.

$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

Sanal makine özellikleri

Aşağıdaki özellikleri tanımlayın:

  • Virtual machine name
  • Bilgisayar adı
  • Sanal makine boyutu
  • Sanal makine için işletim sistemi disk adı

İstediğiniz gibi değiştirin ve ardından bu değişkenleri başlatmak için bu cmdlet'i çalıştırın.

$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"

SQL Server görüntüsü seçme

PowerShell kullanarak Azure portalında bulunmayan sql server'ın eski bir görüntüsünü dağıtmak mümkündür.

Sanal makine için kullanılacak SQL Server görüntüsünü tanımlamak için aşağıdaki değişkenleri kullanın.

  1. Azure portalında kullanılabilen geçerli görüntüleri ve yalnızca PowerShell ile dağıtabileceğiniz eski görüntüleri listelemek için Get-AzVMImageOffer komutuyla tüm SQL Server görüntü tekliflerini listeleyin:

    Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
    

    Not

    SQL Server 2008 ve SQL Server 2008 R2 genişletilmiş desteğin dışındadır ve artık Azure Market kullanılamaz.

  2. Get-AzVMImageSku ile teklifinizin kullanılabilir sürümlerini listeleyin.

    Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
    

Bu öğretici için Windows Server 2022'de SQL Server 2022 Developer sürümünü (SQLDEV-GEN2) kullanın. Developer sürümü, test ve geliştirme için serbestçe lisanslanır ve yalnızca VM'yi çalıştırma maliyeti için ödeme yapılır:

$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)

Kaynak grubu oluşturma

PowerShell'i açın ve Connect-AzAccount komutunu çalıştırarak Azure hesabınıza erişim sağlayın ve Set-AzContext ile abonelik bağlamınızı ayarlayın. İstendiğinde, kimlik bilgilerinizi girin. Azure portala giriş yapmak için aynı e-posta adresini ve parolayı kullanın.

Abonelik bağlamını oluşturduktan sonra, oluşturduğunuz ilk nesne kaynak grubudur. Azure'a bağlanmak için Connect-AzAccount komutunu kullanın ve Set-AzContext ile abonelik bağlamınızı ayarlayın. Bir Azure kaynak grubu ve kaynaklarını oluşturmak için New-AzResourceGroup cmdlet'ini kullanın. Kaynak grubu adı ve konumu için daha önce başlatmış olduğunuz değişkenleri belirtin.

Azure'a bağlanmak, abonelik bağlamı oluşturmak ve yeni kaynak grubunuzu oluşturmak için bu cmdlet'i çalıştırın:


# 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

Depolama hesabı oluşturma

Sanal makine, işletim sistemi diski ve SQL Server verileri ve günlük dosyaları için depolama kaynakları gerektirir. Kolaylık olması için her ikisi için de tek bir disk oluşturacaksınız. Sql Server verilerinizi ve günlük dosyalarınızı ayrılmış disklere yerleştirmek için Daha sonra Add-Azure Disk cmdlet'ini kullanarak ek diskler ekleyebilirsiniz. Yeni kaynak grubunuzda standart bir depolama hesabı oluşturmak için New-AzStorageAccount cmdlet'ini kullanın. Depolama hesabı adı, depolama SKU'su adı ve konumu için daha önce başlatmış olduğunuz değişkenleri belirtin.

Yeni depolama hesabınızı oluşturmak için şu cmdlet'i çalıştırın:

# Create storage account
$StorageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName `
   -Name $StorageName -SkuName $StorageSku `
   -Kind "Storage" -Location $Location

İpucu

Depolama hesabının oluşturulması birkaç dakika sürebilir.

Ağ kaynakları oluşturma

Sanal makine, ağ bağlantısı için bir dizi ağ kaynağı gerektirir.

  • Her sanal makine bir sanal ağ gerektirir.
  • Sanal ağda en az bir alt ağ tanımlanmış olmalıdır.
  • Ağ arabirimi genel veya özel IP adresiyle tanımlanmalıdır.

Sanal ağ alt ağı yapılandırması oluşturma

Sanal ağınız için bir alt ağ yapılandırması oluşturarak başlayın. Bu öğretici için New-AzVirtualNetworkSubnetConfig cmdlet'ini kullanarak varsayılan bir alt ağ oluşturun. Alt ağ adı ve adres ön eki için önceden başlatmış olduğunuz değişkenleri belirtin.

Not

Bu cmdlet'i kullanarak sanal ağ alt ağ yapılandırmasının ek özelliklerini tanımlayabilirsiniz, ancak bu, bu öğreticinin kapsamı dışındadır.

Sanal alt ağ yapılandırmanızı oluşturmak için bu cmdlet'i çalıştırın.

# Create a subnet configuration
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix

Sanal ağ oluşturma

Ardından New-AzVirtualNetwork cmdlet'ini kullanarak yeni kaynak grubunuzda sanal ağınızı oluşturun. Ad, konum ve adres ön eki için daha önce başlatmış olduğunuz değişkenleri belirtin. Önceki adımda tanımladığınız alt ağ yapılandırmasını kullanın.

Sanal ağınızı oluşturmak için şu cmdlet'i çalıştırın:

# Create a virtual network
$VNet = New-AzVirtualNetwork -Name $VNetName `
   -ResourceGroupName $ResourceGroupName -Location $Location `
   -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig

Genel IP adresini oluşturma

Sanal ağınız tanımlandığına göre, sanal makineye bağlanmak için bir IP adresi yapılandırmanız gerekir. Bu öğreticide, İnternet bağlantısını desteklemek için dinamik IP adresi kullanarak bir genel IP adresi oluşturun. Yeni kaynak grubunuzda genel IP adresini oluşturmak için New-AzPublicIpAddress cmdlet'ini kullanın. Ad, konum, ayırma yöntemi ve DNS etki alanı adı etiketi için daha önce başlatmış olduğunuz değişkenleri belirtin.

Not

Bu cmdlet'i kullanarak genel IP adresinin ek özelliklerini tanımlayabilirsiniz, ancak bu, bu ilk öğreticinin kapsamı dışındadır. Ayrıca, statik adrese sahip bir özel adres veya adres de oluşturabilirsiniz, ancak bu da bu öğreticinin kapsamının dışındadır.

Genel IP adresinizi oluşturmak için bu cmdlet'i çalıştırın.

# Create a public IP address
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName

Ağ güvenlik grubunu oluşturma

VM ve SQL Server trafiğinin güvenliğini sağlamak için bir ağ güvenlik grubu oluşturun.

  1. New-AzNetworkSecurityRuleConfig, RDP bağlantılarına izin veren uzak masaüstü (RDP) kuralı ve 1433 numaralı TCP bağlantı noktasında trafiğe izin veren bir kural kullanarak iki ağ güvenlik grubu kuralı oluşturun. Bunun yapılması, SQL Server'a İnternet üzerinden bağlantı yapılmasına olanak tanır.

    # 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 Allow
    
  2. New-AzNetworkSecurityGroup komutunu kullanarak ağ güvenlik grubunu oluşturun.

    # Create a network security group
    $Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName `
    -Location $Location -Name $NsgName `
    -SecurityRules $NsgRuleRDP,$NsgRuleSQL
    

Ağ arabirimini oluşturma

Artık sanal makineniz için ağ arabirimi oluşturmaya hazırsınız. Yeni kaynak grubunuzda ağ arabirimi oluşturmak için New-AzNetworkInterface cmdlet'ini kullanın. Önceden tanımlanmış olan adı, konumu, alt ağı ve genel IP adresini belirtin.

Ağ arabiriminizi oluşturmak için bu cmdlet'i çalıştırın.

# Create a network interface
$Interface = New-AzNetworkInterface -Name $InterfaceName `
   -ResourceGroupName $ResourceGroupName -Location $Location `
   -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id `
   -NetworkSecurityGroupId $Nsg.Id

VM nesnesi yapılandırma

Artık depolama ve ağ kaynakları tanımlandığına göre, sanal makine için işlem kaynaklarını tanımlamaya hazırsınız.

  • Sanal makine boyutunu ve çeşitli işletim sistemi özelliklerini belirtin.
  • Daha önce oluşturduğunuz ağ arabirimini belirtin.
  • Blob depolamayı tanımlayın.
  • İşletim sistemi diskini belirtin.

SQL Server VM’sini oluşturma

SQL Server VM'nizi oluşturmak için önce bir kimlik bilgisi nesnesi oluşturun ve ardından VM'yi oluşturun.

Yerel yönetici kimlik bilgilerinin adını ve parolasını tutmak için bir kimlik bilgisi nesnesi oluşturma

Sanal makinenin işletim sistemi özelliklerini ayarlayabilmeniz için önce yerel yönetici hesabının kimlik bilgilerini güvenli bir dize olarak sağlamanız gerekir. Bunu yapmak için Get-Credential cmdlet'ini kullanın.

Aşağıdaki cmdlet'i çalıştırın. Vm'nin yerel yönetici adını ve parolasını PowerShell kimlik bilgisi isteği penceresine yazmanız gerekir.

# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
   -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)

Özellikleri tanımlama ve VM oluşturma

Artık New-AzVMConfig ile sanal makinenin işletim sistemi özelliklerini ayarlamaya, New-AzVM ile VM oluşturmaya ve daha önce tanımladığınız değişkeni kullanarak ağ arabirimini eklemek için Add-AzVMNetworkInterface cmdlet'ini kullanmaya hazırsınız.

Örnek betik aşağıdakileri yapar:

  • Sanal makine aracısının yüklenmesini gerektir.
  • cmdlet'in otomatik güncelleştirmeyi etkinleştirdiğini belirtir.
  • Sanal makine adı, bilgisayar adı ve kimlik bilgisi için daha önce başlatmış olduğunuz değişkenleri belirtir.

Sanal makinenizin işletim sistemi özelliklerini ayarlamak için bu cmdlet'i çalıştırın.

# 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

Sanal makine oluşturulur.

Not

Önyükleme tanılaması hakkında bir hata alırsanız, bunu yoksayabilirsiniz. Sanal makinenin diski için belirtilen depolama hesabı bir premium depolama hesabı olduğundan önyükleme tanılaması için standart bir depolama hesabı oluşturulur.

SQL Server IaaS Aracısı uzantısını yükleyin

SQL Server sanal makineleri, SQL Server IaaS Aracısı Uzantısı ile otomatik yönetim özelliklerini destekler. SQL Server'ınızı uzantıya kaydetmek için, sanal makine oluşturulduktan sonra New-AzSqlVM komutunu çalıştırın. Ücretsiz DR çoğaltma lisansını etkinleştirmek için Azure Hibrit Avantajı (AHUB), olağanüstü durum kurtarma (DR) aracılığıyla kullandıkça öde (PAYG), kendi lisansını getir seçeneğini belirleyerek SQL Server VM'nizin lisans türünü belirtin. Lisanslama hakkında daha fazla bilgi için bkz . lisanslama modeli.

SQL Server VM'nizi SQL IaaS Aracısı uzantısına kaydetmek için önce Register-AzResourceProvider kullanarak aboneliğinizi kaynak sağlayıcısına kaydedin ve ardından New-AzSqlVM kullanarak SQL Server VM'nizi SQL IaaS Aracısı uzantısına kaydedin:


# 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

Uzantıya kaydolmanın üç yolu vardır:

VM'yi durdurma veya kaldırma

VM'nin sürekli çalışması gerekmiyorsa, kullanılmadığında durdurarak gereksiz ücretlerden kaçınabilirsiniz. Aşağıdaki komut VM'yi durdurur ancak özelliği daha sonra kullanılmak üzere muhafaza eder.

Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName

Ayrıca Remove-AzResourceGroup komutuyla sanal makineyle ilişkili tüm kaynakları kalıcı olarak silebilirsiniz. Bunu yaptığınızda sanal makine de kalıcı olarak silinir, bu nedenle bu komutu dikkatli kullanın.

Tam betik

Uçtan uca deneyim sağlayan tam bir PowerShell betiği için bkz . PowerShell ile Azure VM'de SQL Server dağıtma.

Sanal makine oluşturulduktan sonra şunları yapabilirsiniz: