Azure VM'de SQL Server için kullanılabilirlik grubu yapılandırmak için PowerShell veya Az CLI kullanma

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

Bahşiş

Kullanılabilirlik grubu dağıtmak için birçok yöntem vardır. Dağıtımınızı basitleştirin ve aynı Azure sanal ağı içindeki birden çok alt ağda SQL Server sanal makinelerinizi (VM' ler) oluşturarak Always On kullanılabilirlik grubunuz için Azure Load Balancer veya dağıtılmış ağ adı (DNN) gereksinimini ortadan kaldırın. Kullanılabilirlik grubunuzu zaten tek bir alt ağda oluşturduysanız, bunu çok alt ağlı bir ortama geçirebilirsiniz.

Bu makalede, PowerShell veya Azure CLI kullanarak windows yük devretme kümesi dağıtma, kümeye SQL Server VM'leri ekleme ve tek bir alt ağ içindeki Always On kullanılabilirlik grubu için iç yük dengeleyici ve dinleyici oluşturma işlemleri açıklanmaktadır.

Kullanılabilirlik grubunun dağıtımı hala SQL Server Management Studio (SSMS) veya Transact-SQL (T-SQL) aracılığıyla el ile yapılır.

Bu makalede kullanılabilirlik grubu ortamını yapılandırmak için PowerShell ve Az CLI kullanılır ancak bunu Azure portalından, Azure Hızlı Başlangıç şablonlarını kullanarak veya El ile de yapabilirsiniz.

Not

Artık Azure Geçişi'nin kullanıldığı Azure VM'lerde kullanılabilirlik grubu çözümünüzü kaldırıp SQL Server'a kaydırmanız mümkündür. Daha fazla bilgi için bkz . Kullanılabilirlik grubunu geçirme.

Önkoşullar

Always On kullanılabilirlik grubunu yapılandırmak için aşağıdaki önkoşullara sahip olmanız gerekir:

İzinler

Azure CLI kullanarak Always On kullanılabilirlik grubunu yapılandırmak için aşağıdaki hesap izinlerine ihtiyacınız vardır:

  • Etki alanında Bilgisayar Nesnesi Oluşturma izni olan mevcut bir etki alanı kullanıcı hesabı. Örneğin, bir etki alanı yönetici hesabı genellikle yeterli izne sahiptir (örneğin: account@domain.com). Bu hesap, kümeyi oluşturmak için her vm'de yerel yönetici grubunun da bir parçası olmalıdır.
  • SQL Server'ın denetimindeki etki alanı kullanıcı hesabı.

Depolama hesabı oluşturma

Kümenin bulut tanığı olarak görev yapması için bir depolama hesabı gerekir. Mevcut herhangi bir depolama hesabını kullanabilir veya yeni bir depolama hesabı oluşturabilirsiniz. Mevcut bir depolama hesabını kullanmak istiyorsanız sonraki bölüme geçin.

Aşağıdaki kod parçacığı depolama hesabını oluşturur:

# Create the storage account
# example: az storage account create -n 'cloudwitness' -g SQLVM-RG -l 'West US' `
#  --sku Standard_LRS --kind StorageV2 --access-tier Hot --https-only true

az storage account create -n <name> -g <resource group name> -l <region> `
  --sku Standard_LRS --kind StorageV2 --access-tier Hot --https-only true

Bahşiş

Azure CLI'nın eski bir sürümünü kullanıyorsanız hatayı az sql: 'vm' is not in the 'az sql' command group görebilirsiniz. Bu hatayı geçmek için Azure CLI'nın en son sürümünü indirin.

Küme meta verilerini tanımlama

Azure CLI az sql vm group komut grubu, kullanılabilirlik grubunu barındıran Windows Server Yük Devretme Kümesi (WSFC) hizmetinin meta verilerini yönetir. Küme meta verileri Active Directory etki alanını, küme hesaplarını, bulut tanığı olarak kullanılacak depolama hesaplarını ve SQL Server sürümünü içerir. İlk SQL Server VM eklendiğinde kümenin tanımlandığı gibi oluşturulması için WSFC meta verilerini tanımlamak için az sql vm group create komutunu kullanın.

Aşağıdaki kod parçacığı kümenin meta verilerini tanımlar:

# Define the cluster metadata
# example: az sql vm group create -n Cluster -l 'West US' -g SQLVM-RG `
#  --image-offer SQL2017-WS2016 --image-sku Enterprise --domain-fqdn domain.com `
#  --operator-acc vmadmin@domain.com --bootstrap-acc vmadmin@domain.com --service-acc sqlservice@domain.com `
#  --sa-key '4Z4/i1Dn8/bpbseyWX' `
#  --storage-account 'https://cloudwitness.blob.core.windows.net/'

az sql vm group create -n <cluster name> -l <region ex:eastus> -g <resource group name> `
  --image-offer <SQL2016-WS2016 or SQL2017-WS2016> --image-sku Enterprise --domain-fqdn <FQDN ex: domain.com> `
  --operator-acc <domain account ex: testop@domain.com> --bootstrap-acc <domain account ex:bootacc@domain.com> `
  --service-acc <service account ex: testservice@domain.com> `
  --sa-key '<PublicKey>' `
  --storage-account '<ex:https://cloudwitness.blob.core.windows.net/>'

Kümeye VM ekleme

Kümeye ilk SQL Server VM'sini eklemek kümeyi oluşturur. az sql vm add-to-group komutu, kümeyi daha önce verilen adla oluşturur, SQL Server VM'lerine küme rolünü yükler ve kümeye ekler. Komutun az sql vm add-to-group sonraki kullanımları, yeni oluşturulan kümeye daha fazla SQL Server VM'sini ekler.

Aşağıdaki kod parçacığı kümeyi oluşturur ve kümeye ilk SQL Server VM'sini ekler:

# Add SQL Server VMs to cluster
# example: az sql vm add-to-group -n SQLVM1 -g SQLVM-RG --sqlvm-group Cluster `
#  -b Str0ngAzur3P@ssword! -p Str0ngAzur3P@ssword! -s Str0ngAzur3P@ssword!
# example: az sql vm add-to-group -n SQLVM2 -g SQLVM-RG --sqlvm-group Cluster `
#  -b Str0ngAzur3P@ssword! -p Str0ngAzur3P@ssword! -s Str0ngAzur3P@ssword!

az sql vm add-to-group -n <VM1 Name> -g <Resource Group Name> --sqlvm-group <cluster name> `
  -b <bootstrap account password> -p <operator account password> -s <service account password>
az sql vm add-to-group -n <VM2 Name> -g <Resource Group Name> --sqlvm-group <cluster name> `
  -b <bootstrap account password> -p <operator account password> -s <service account password>

Kümeye başka SQL Server VM'leri eklemek için bu komutu kullanın. Yalnızca -n SQL Server VM adı parametresini değiştirin.

Çekirdeği yapılandırma

Disk tanığı en dayanıklı çekirdek seçeneği olsa da, kullanılabilirlik grubuna bazı sınırlamalar getiren bir Azure paylaşılan diski gerektirir. Bu nedenle bulut tanığı, Azure VM'lerinde SQL Server için kullanılabilirlik gruplarını barındıran kümeler için önerilen çekirdek çözümüdür.

Kümede eşit sayıda oy varsa, çekirdek çözümünü iş gereksinimlerinize en uygun şekilde yapılandırın. Daha fazla bilgi için bkz . SQL Server VM'leri ile çekirdek.

Kümeyi doğrulama

Bir yük devretme kümesinin Microsoft tarafından desteklenmesi için küme doğrulamasını geçmesi gerekir. Uzak Masaüstü Protokolü (RDP) gibi tercih ettiğiniz yöntemi kullanarak VM'ye bağlanın ve devam etmeden önce kümenizin doğrulamayı geçtiğini doğrulayın. Bunun başarısız olması kümenizi desteklenmeyen bir durumda bırakır.

Yük Devretme Kümesi Yöneticisi'ni (FCM) veya aşağıdaki PowerShell komutunu kullanarak kümeyi doğrulayabilirsiniz:

Test-Cluster –Node ("<node1>","<node2>") –Include "Inventory", "Network", "System Configuration"

Kullanılabilirlik grubu oluşturma

SQL Server Management Studio, PowerShell veya Transact-SQL kullanarak kullanılabilirlik grubunu normalde yaptığınız gibi el ile oluşturun.

Önemli

Bu işlem aşağıdaki bölümlerde Azure CLI aracılığıyla yapıldığından şu anda bir dinleyici oluşturmayın.

İç yük dengeleyici oluşturma

Not

Birden çok alt ağa yapılan kullanılabilirlik grubu dağıtımları yük dengeleyici gerektirmez. Tek alt ağ ortamında, Windows 2016 ve sonraki sürümlerde SQL Server 2019 CU8 ve üzerini kullanan müşteriler, geleneksel sanal ağ adı (VNN) dinleyicisini ve Azure Load Balancer'ı dağıtılmış ağ adı (DNN) dinleyicisiyle değiştirebilir. DNN kullanmak istiyorsanız, kullanılabilirlik grubunuz için Azure Load Balancer'ı yapılandıran öğretici adımlarını atlayın.

Always On kullanılabilirlik grubu dinleyicisi, Azure Load Balancer'ın iç örneğini gerektirir. İç yük dengeleyici, kullanılabilirlik grubu dinleyicisi için daha hızlı yük devretme ve yeniden bağlantı sağlayan "kayan" bir IP adresi sağlar. Kullanılabilirlik grubundaki SQL Server VM'leri aynı kullanılabilirlik kümesinin parçasıysa, Temel yük dengeleyici kullanabilirsiniz. Aksi takdirde Standart yük dengeleyici kullanmanız gerekir.

Not

İç yük dengeleyici, SQL Server VM örnekleriyle aynı sanal ağda olmalıdır.

Aşağıdaki kod parçacığı iç yük dengeleyiciyi oluşturur:

# Create the internal load balancer
# example: az network lb create --name sqlILB -g SQLVM-RG --sku Standard `
# --vnet-name SQLVMvNet --subnet default

az network lb create --name sqlILB -g <resource group name> --sku Standard `
  --vnet-name <VNet Name> --subnet <subnet name>

Önemli

Her SQL Server VM'sinin genel IP kaynağının Standart yük dengeleyici ile uyumlu olması için bir Standart SKU'su olmalıdır. VM'nizin genel IP kaynağının SKU'sunu belirlemek için Kaynak Grubu'na gidin, istediğiniz SQL Server VM için Genel IP Adresi kaynağınızı seçin ve Genel Bakış bölmesinde SKU'nunaltındaki değeri bulun.

Dinleyici oluşturma

Kullanılabilirlik grubunu el ile oluşturduktan sonra az sql vm ag-listener komutunu kullanarak dinleyiciyi oluşturabilirsiniz.

Alt ağ kaynak kimliği , sanal ağ kaynağının /subnets/<subnetname> kaynak kimliğine eklenen değeridir. Alt ağ kaynak kimliğini tanımlamak için:

  1. Azure portalında kaynak grubunuz gidin.
  2. Sanal ağ kaynağını seçin.
  3. Ayarlar bölmesinde Özellikler'i seçin.
  4. Sanal ağın kaynak kimliğini belirleyin ve alt ağ kaynak kimliğini oluşturmak için sonuna ekleyin /subnets/<subnetname> . Örneğin:
    • Sanal ağ kaynak kimliğiniz: /subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet
    • Alt ağınızın adı: default
    • Bu nedenle alt ağ kaynak kimliğiniz: /subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet/subnets/default

Aşağıdaki kod parçacığı kullanılabilirlik grubu dinleyicisini oluşturur:

# Create the availability group listener
# example: az sql vm group ag-listener create -n AGListener -g SQLVM-RG `
#  --ag-name SQLAG --group-name Cluster --ip-address 10.0.0.27 `
#  --load-balancer sqlilb --probe-port 59999  `
#  --subnet /subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet/subnets/default `
#  --sqlvms sqlvm1 sqlvm2

az sql vm group ag-listener create -n <listener name> -g <resource group name> `
  --ag-name <availability group name> --group-name <cluster name> --ip-address <ag listener IP address> `
  --load-balancer <lbname> --probe-port <Load Balancer probe port, default 59999>  `
  --subnet <subnet resource id> `
  --sqlvms <names of SQL VM's hosting AG replicas, ex: sqlvm1 sqlvm2>

Çoğaltma sayısını değiştirme

Azure'da barındırılan SQL Server VM'lerine bir kullanılabilirlik grubu dağıtırken daha karmaşık bir katman vardır. Kaynak sağlayıcısı ve sanal makine grubu artık kaynakları yönetir. Bu nedenle, kullanılabilirlik grubuna çoğaltma ekler veya kaldırırken, dinleyici meta verilerini SQL Server VM'leri hakkındaki bilgilerle güncelleştirmenin ek bir adımı vardır. Kullanılabilirlik grubundaki çoğaltma sayısını değiştirirken, dinleyiciyi SQL Server VM'lerinin meta verileriyle güncelleştirmek için az sql vm group ag-listener update komutunu da kullanmanız gerekir.

Çoğaltma ekleme

Kullanılabilirlik grubuna yeni bir çoğaltma eklemek için:

  1. SQL Server VM'sini küme grubuna ekleyin:

    
    # Add the SQL Server VM to the cluster group
    # example: az sql vm add-to-group -n SQLVM3 -g SQLVM-RG --sqlvm-group Cluster `
    # -b Str0ngAzur3P@ssword! -p Str0ngAzur3P@ssword! -s Str0ngAzur3P@ssword!
    
    az sql vm add-to-group -n <VM3 Name> -g <Resource Group Name> --sqlvm-group <cluster name> `
    -b <bootstrap account password> -p <operator account password> -s <service account password>
    
  2. SQL Server örneğini kullanılabilirlik grubuna çoğaltma olarak eklemek için SQL Server Management Studio'yu kullanın.

  3. DINLEYICIye SQL Server VM meta verilerini ekleyin:

    # Update the listener metadata with the new VM
    # example: az sql vm group ag-listener update -n AGListener `
    # -g sqlvm-rg --group-name Cluster --sqlvms sqlvm1 sqlvm2 sqlvm3
    
    az sql vm group ag-listener update -n <Listener> `
    -g <RG name> --group-name <cluster name> --sqlvms <SQL VMs, along with new SQL VM>
    

Çoğaltmayı kaldırma

Kullanılabilirlik grubundan bir çoğaltmayı kaldırmak için:

  1. SQL Server Management Studio kullanarak çoğaltmayı kullanılabilirlik grubundan kaldırın.
  2. DINLEYICIden SQL Server VM meta verilerini kaldırın:
    # Update the listener metadata by removing the VM from the SQLVMs list
    # example: az sql vm group ag-listener update -n AGListener `
    # -g sqlvm-rg --group-name Cluster --sqlvms sqlvm1 sqlvm2
    
    az sql vm group ag-listener update -n <Listener> `
    -g <RG name> --group-name <cluster name> --sqlvms <SQL VMs that remain>
    
  3. SQL Server VM'sini kümeden kaldırın:
    # Remove the SQL VM from the cluster
    # example: az sql vm remove-from-group --name SQLVM3 --resource-group SQLVM-RG
    
    az sql vm remove-from-group --name <SQL VM name> --resource-group <RG name> 
    

Dinleyiciyi kaldırma

Daha sonra Azure CLI ile yapılandırılan kullanılabilirlik grubu dinleyicisini kaldırmanız gerekiyorsa SQL IaaS Aracısı uzantısını kullanmanız gerekir. Dinleyici SQL IaaS Aracısı uzantısı aracılığıyla kaydedildiğinden SQL Server Management Studio aracılığıyla silinmesi yeterli değildir.

En iyi yöntem, Azure CLI'da aşağıdaki kod parçacığını kullanarak SQL IaaS Aracısı uzantısı aracılığıyla silmektir. Bunu yaptığınızda SQL IaaS Aracısı uzantısından kullanılabilirlik grubu dinleyicisi meta verileri kaldırılır. Ayrıca dinleyiciyi kullanılabilirlik grubundan fiziksel olarak siler.

# Remove the availability group listener
# example: az sql vm group ag-listener delete --group-name Cluster --name AGListener --resource-group SQLVM-RG

az sql vm group ag-listener delete --group-name <cluster name> --name <listener name > --resource-group <resource group name>

Kümeyi kaldırma

Yok etmek için kümedeki tüm düğümleri kaldırın ve ardından SQL IaaS Aracısı uzantısından küme meta verilerini kaldırın. Azure CLI veya PowerShell kullanarak bunu yapabilirsiniz.

İlk olarak, kümeden tüm SQL Server VM'lerini kaldırın:

# Remove the VM from the cluster metadata
# example: az sql vm remove-from-group --name SQLVM2 --resource-group SQLVM-RG

az sql vm remove-from-group --name <VM1 name>  --resource-group <resource group name>
az sql vm remove-from-group --name <VM2 name>  --resource-group <resource group name>

Kümedeki tek VM'ler bunlarsa, küme yok edilir. Kümede, kaldırılan SQL Server VM'leri dışında başka VM'ler varsa, diğer VM'ler kaldırılmaz ve küme yok edilmez.

Ardından SQL IaaS Aracısı uzantısından küme meta verilerini kaldırın:

# Remove the cluster from the SQL VM RP metadata
# example: az sql vm group delete --name Cluster --resource-group SQLVM-RG

az sql vm group delete --name <cluster name> Cluster --resource-group <resource group name>

Sonraki adımlar

Kullanılabilirlik grubu dağıtıldıktan sonra Azure VM'lerinde SQL Server için HADR ayarlarını iyileştirmeyi göz önünde bulundurun.

Daha fazla bilgi edinmek için şu makalelere bakın: