Azure Sanal Azure PowerShell'da SQL Server sağlamayı kullanma
AŞAĞıDAKILER IÇIN GEÇERLIDIR:
SQL Server VM'de sanal makine
Bu kılavuz, Azure Sanal Makineler'de (VM) SQL Server PowerShell kullanma seçeneklerini kapsar. Varsayılan değerlere dayanan Azure PowerShell kolaylaştırılmış bir örnek için vm SQL hızlı Azure PowerShell bakın.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Not
Bu makalede, Azure ile etkileşim kurmak 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.
Aboneliğinizi yapılandırma
PowerShell'i açın ve Bağlan-AzAccount komutunu çalıştırarak Azure hesabınıza erişim açın.
Connect-AzAccountİstendiğinde kimlik bilgilerinizi girin. Azure portala giriş yapmak için aynı e-posta adresini ve parolayı kullanın.
Görüntü değişkenlerini tanımlama
Değerleri yeniden kullanmak ve betik oluşturma sürecini basitleştirmek için bir dizi değişken tanımlayarak başlayabilirsiniz. Parametre değerlerini istediğiniz gibi değiştirebilirsiniz, ancak sağlanan değerleri değiştirirken ad uzunlukları ve özel karakterlerle ilgili adlandırma kısıtlamalarına dikkat edin.
Konum ve kaynak grubu
Diğer VM kaynaklarını oluşturmak istediğiniz veri bölgelerini ve kaynak grubunu tanımlayın.
Bu değişkenleri başlatmak için istediğiniz şekilde değişiklik ve ardından bu cmdlet'leri çalıştırın.
$Location = "SouthCentralUS"
$ResourceGroupName = "sqlvm2"
Depolama özellikleri
Sanal makine tarafından kullanılacak depolama hesabını ve depolama türünü tanımlayın.
Istediğiniz şekilde değişiklik yapın ve ardından 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 kullanılması önerilir.
$StorageName = $ResourceGroupName + "storage"
$StorageSku = "Premium_LRS"
Ağ özellikleri
Sanal makinede 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 adresleri aralığı
- Alt ağ için IP adresi aralığı
- Genel etki alanı adı etiketi
Bu değişkenleri başlatmak için istediğiniz şekilde değiştirmeyin ve ardından 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:
- Sanal makine adı
- Bilgisayar adı
- Sanal makine boyutu
- Sanal makine için işletim sistemi disk adı
Bu değişkenleri başlatmak için istediğiniz şekilde değiştirmeyin ve ardından bu cmdlet'i çalıştırın.
$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"
Bir SQL Server seçin
Sanal makine için kullanmak üzere SQL Server görüntüsünü tanımlamak için aşağıdaki değişkenleri kullanın.
İlk olarak, komutuyla SQL Server tüm görüntü tekliflerini
Get-AzVMImageOfferlistele. Bu komut, yalnızca PowerShell ile yüklen Azure portal eski görüntülerin yanı sıra, Azure portal geçerli görüntüleri listeler:Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'Bu öğreticide, 2017'de SQL Server belirtmek için aşağıdaki değişkenleri Windows Server 2016.
$OfferName = "SQL2017-WS2016" $PublisherName = "MicrosoftSQLServer" $Version = "latest"Ardından teklifiniz için kullanılabilir sürümleri listele.
Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select SkusBu öğreticide, SQL Server 2017 Developer edition ( SQLDEV )kullanın. Developer sürümü test ve geliştirme için ücretsiz olarak lisanslanır ve yalnızca VM'yi çalıştırmanın maliyeti için ücret ödersiniz.
$Sku = "SQLDEV"
Kaynak grubu oluşturma
Yeni Resource Manager modeliyle, ilk oluşturmalısınız nesnesi kaynak grubu olur. 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ğunu değişkenleri belirtin.
Yeni kaynak grubularınızı oluşturmak için bu cmdlet'i çalıştırın.
New-AzResourceGroup -Name $ResourceGroupName -Location $Location
Depolama hesabı oluşturma
Sanal makine, işletim sistemi diski ve veri ve günlük dosyaları için SQL Server kaynakları gerektirir. Kolaylık olması için her ikisi için de tek bir disk oluşturabilirsiniz. Daha sonra Add-Azure Disk cmdlet'ini kullanarak ek diskler ekleyebilir ve SQL Server günlük dosyalarını ayrılmış disklere ebilirsiniz. Yeni kaynak grubu içinde 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ğunu değişkenleri belirtin.
Yeni depolama hesabınız oluşturmak için bu cmdlet'i çalıştırın.
$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.
- Bir sanal ağın tanımlanmış en az bir alt ağı olmalıdır.
- Bir ağ arabirimi, genel veya özel bir IP adresiyle tanımlanmalıdır.
Sanal ağ alt ağ yapılandırması oluşturma
Başlangıç olarak sanal ağınız için bir alt ağ yapılandırması oluşturma. Bu öğreticide, New-AzVirtualNetworkSubnetConfig cmdlet'ini kullanarak varsayılan bir alt ağ oluşturun. Alt ağ adı ve adres ön eki için daha önce başlatmış olduğunu 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ının dışındadır.
Sanal alt ağ yapılandırmanızı oluşturmak için bu cmdlet'i çalıştırın.
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix
Sanal ağ oluşturma
Ardından, New-AzVirtualNetwork cmdlet'ini kullanarak sanal ağın yeni kaynak grubu içinde oluşturun. Ad, konum ve adres ön eki için daha önce başlatmış olduğunu değişkenleri belirtin. Önceki adımda tanımlandığı alt ağ yapılandırmasını kullanın.
Sanal ağımız oluşturmak için bu cmdlet'i çalıştırın.
$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ğlantı 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 grubu içinde 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ğunu değişkenleri belirtin.
Not
Bu cmdlet'i kullanarak genel IP adresinin ek özelliklerini tanımlayabilirsiniz, ancak bu, bu ilk öğreticinin kapsamının dışındadır. Ayrıca özel adres veya statik adrese sahip bir 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.
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName
Ağ güvenlik grubunu oluşturma
VM'yi güvenli hale SQL Server için bir ağ güvenlik grubu oluşturun.
İlk olarak, RDP bağlantılarına izin vermek için uzak masaüstü (RDP) için bir ağ güvenlik grubu kuralı oluşturun.
$NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp ` -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 3389 -Access AllowTCP bağlantı noktası 1433'te trafiğe izin veren bir ağ güvenlik grubu kuralı yapılandırma. Bunu yapmak, bağlantıların SQL Server üzerinden bağlantı kurmalarını sağlar.
$NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule" -Protocol Tcp ` -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 1433 -Access AllowAğ güvenlik grubunu oluşturun.
$Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName ` -Location $Location -Name $NsgName ` -SecurityRules $NsgRuleRDP,$NsgRuleSQL
Ağ arabirimini oluşturma
Artık sanal makineniz için ağ arabirimini oluşturmak için hazır olursanız. Yeni kaynak grubu içinde 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.
$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ımlama.
- İşletim sistemi diskini belirtin.
VM nesnesini oluşturma
Başlangıç olarak sanal makine boyutunu belirtin. Bu öğretici için bir DS13 belirtin. Yapılandırılabilir bir sanal makine nesnesi oluşturmak için New-AzVMConfig cmdlet'ini kullanın. Ad ve boyut için daha önce başlatmış olduğunu değişkenleri belirtin.
Sanal makine nesnesini oluşturmak için bu cmdlet'i çalıştırın.
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
Yerel yönetici kimlik bilgileri için ad ve parolayı tutmak için bir kimlik bilgisi nesnesi oluşturun
Sanal makinenin işletim sistemi özelliklerini ayarlaymadan ö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. PowerShell kimlik bilgisi isteği penceresine VM'nin yerel yönetici adını ve parolasını yazmanız gerekir.
$Credential = Get-Credential -Message "Type the name and password of the local administrator account."
Sanal makinenin işletim sistemi özelliklerini ayarlama
Artık Set-AzVMOperatingSystem cmdlet'iyle sanal makinenin işletim sistemi özelliklerini ayarlamaya hazır oluruz.
- İşletim sisteminin türünü yeni bir Windows.
- Sanal makine aracının yüklü olması gerekir.
- cmdlet'inin otomatik güncelleştirmeyi olanaklı olduğunu belirtin.
- Daha önce sanal makine adı, bilgisayar adı ve kimlik bilgisi için başlatmış olduğunu değişkenleri belirtin.
Sanal makinenizin işletim sistemi özelliklerini ayarlamak için bu cmdlet'i çalıştırın.
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine `
-Windows -ComputerName $ComputerName -Credential $Credential `
-ProvisionVMAgent -EnableAutoUpdate
Ağ arabirimini sanal makineye ekleme
Ardından Add-AzVMNetworkInterface cmdlet'ini kullanarak daha önce tanımlandığı değişkeni kullanarak ağ arabirimini ekleyin.
Sanal makinenizin ağ arabirimini ayarlamak için bu cmdlet'i çalıştırın.
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id
Sanal makine tarafından kullanılacak disk için blob depolama konumunu ayarlama
Ardından, VM'nin diski için blob depolama konumunu daha önce tanımlandığı değişkenlerle ayarlayın.
Blob depolama konumunu ayarlamak için bu cmdlet'i çalıştırın.
$OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $OSDiskName + ".vhd"
Sanal makine için işletim sistemi disk özelliklerini ayarlama
Ardından Set-AzVMOSDisk cmdlet'ini kullanarak sanal makinenin işletim sistemi disk özelliklerini ayarlayın.
- Sanal makine için işletim sisteminin bir görüntüden gelecek olduğunu belirtin.
- Önbelleğe almayı salt okunur olarak ayarlayın (SQL Server diske yüklü olduğundan).
- VM adı ve işletim sistemi diski için daha önce başlatmış olduğunu değişkenleri belirtin.
Sanal makinenizin işletim sistemi disk özelliklerini ayarlamak için bu cmdlet'i çalıştırın.
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name `
$OSDiskName -VhdUri $OSDiskUri -Caching ReadOnly -CreateOption FromImage
Sanal makine için platform görüntüsünü belirtme
Son yapılandırma adımı, sanal makineniz için platform görüntüsünü belirtmektir. Bu öğreticide, en son SQL Server 2016 CTP görüntüsünü kullanın. Bu görüntüyü daha önce tanımlandığı değişkenlerle kullanmak için Set-AzVMSourceImage cmdlet'ini kullanın.
Sanal makinenizin platform görüntüsünü belirtmek için bu cmdlet'i çalıştırın.
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine `
-PublisherName $PublisherName -Offer $OfferName `
-Skus $Sku -Version $Version
SQL VM'sini oluşturma
Yapılandırma adımlarını tamamlayana kadar sanal makineyi oluşturabilirsiniz. Tanımlandığı değişkenleri kullanarak sanal makineyi oluşturmak için New-AzVM cmdlet'ini kullanın.
İpucu
Sanal makine oluşturulması birkaç dakika sürebilir.
Sanal makinenizi oluşturmak için bu cmdlet'i çalıştırın.
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine
Sanal makine oluşturulur.
Not
Önyükleme tanılaması hakkında bir hata alırsanız 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 Iaas Aracısı'nı yükleme
SQL Server sanal makineler, IaaSAracı Uzantısı ile SQL Server yönetim özelliklerini destekler. Sanal makinenizi SQL Server makine oluşturulduktan sonra New-AzSqlVM komutunu çalıştırın. SQL Server VM'niz için lisans türünü belirterek, Azure Hibrit Avantajı aracılığıyla -you-go-pay-you-go veya kendi lisansını getir arasında seçimAzure Hibrit Avantajı. Lisanslama hakkında daha fazla bilgi için bkz. lisanslama modeli.
New-AzSqlVM -ResourceGroupName $ResourceGroupName -Name $VMName -Location $Location -LicenseType <PAYG/AHUB>
Uzantıyla kaydolmanın üç yolu vardır:
- Bir abonelikte mevcut ve gelecekteki tüm VM'ler için otomatik olarak
- Tek bir VM için el ile
- Toplu olarak birden çok VM için el ile
VM'yi durdurma veya kaldırma
VM'nin sürekli olarak çalışmasına ihtiyacınız yoksa, kullanımda olmayan vm'yi durdurarak gereksiz ücretlerden kaçınılması gerekir. 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 yapmak sanal makineyi de kalıcı olarak siler, bu nedenle bu komutu özenli bir şekilde kullanın.
Örnek betik
Aşağıdaki betik, bu öğretici için tam PowerShell betiği içerir. Bağlan-AzAccount ve Select-AzSubscription komutlarıyla kullanmak için Azure aboneliğini ayarlamış olduğunu varsayın.
# Variables
## Global
$Location = "SouthCentralUS"
$ResourceGroupName = "sqlvm2"
## Storage
$StorageName = $ResourceGroupName + "storage"
$StorageSku = "Premium_LRS"
## Network
$InterfaceName = $ResourceGroupName + "ServerInterface"
$NsgName = $ResourceGroupName + "nsg"
$VNetName = $ResourceGroupName + "VNet"
$SubnetName = "Default"
$VNetAddressPrefix = "10.0.0.0/16"
$VNetSubnetAddressPrefix = "10.0.0.0/24"
$TCPIPAllocationMethod = "Dynamic"
$DomainName = $ResourceGroupName
##Compute
$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"
##Image
$PublisherName = "MicrosoftSQLServer"
$OfferName = "SQL2017-WS2016"
$Sku = "SQLDEV"
$Version = "latest"
# Resource Group
New-AzResourceGroup -Name $ResourceGroupName -Location $Location
# Storage
$StorageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageName -SkuName $StorageSku -Kind "Storage" -Location $Location
# Network
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix
$VNet = New-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName -Location $Location -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName -ResourceGroupName $ResourceGroupName -Location $Location -AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName
$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
$Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName -Location $Location -Name $NsgName -SecurityRules $NsgRuleRDP,$NsgRuleSQL
$Interface = New-AzNetworkInterface -Name $InterfaceName -ResourceGroupName $ResourceGroupName -Location $Location -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id -NetworkSecurityGroupId $Nsg.Id
# Compute
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
$Credential = Get-Credential -Message "Type the name and password of the local administrator account."
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate #-TimeZone = $TimeZone
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id
$OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $OSDiskName + ".vhd"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $OSDiskName -VhdUri $OSDiskUri -Caching ReadOnly -CreateOption FromImage
# Image
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName $PublisherName -Offer $OfferName -Skus $Sku -Version $Version
# Create the VM in Azure
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine
# Add the SQL IaaS Extension, and choose the license type
New-AzSqlVM -ResourceGroupName $ResourceGroupName -Name $VMName -Location $Location -LicenseType <PAYG/AHUB>
Sonraki adımlar
Sanal makine oluşturulduktan sonra şunları kullanabilirsiniz:
- Bağlan RDP kullanarak sanal makineye bağlantı
- Sanal SQL Server portalda aşağıdakiler dahil olmak üzere sanal makinenizin güvenlik ayarlarını yapılandırma:
- Bağlantı yapılandırma
- Bağlan ve uygulamaları yeni SQL Server örnek