Azure VM 'de SQL Server için bir kullanılabilirlik grubu yapılandırmak için PowerShell veya Az clı kullanın

AŞAĞıDAKILER IÇIN GEÇERLIDIR: SQL Server VM'de sanal makine

İpucu

aynı Azure sanal ağı içindeki birden çok alt ağda SQL Server sanal makinelerinizi oluşturarak Always On kullanılabilirlik (AG) grubunuz için Azure Load Balancer gereksinimini ortadan kaldırın.

bu makalede, bir Windows yük devretme kümesi dağıtmak, kümeye SQL Server vm eklemek ve tek bir alt ağ içinde her zaman açık kullanılabilirlik grubu için iç yük dengeleyiciyi ve dinleyiciyi oluşturmak üzere PowerShell veya Azure clı 'nın nasıl kullanılacağı açıklanı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 CLı kullanılırken, ayrıca Azure Portal, Azure hızlı başlangıç şablonlarıveya el ile de yapılabilir.

Not

azure geçişi 'ni kullanarak azure vm 'lerinde SQL Server için kullanılabilirlik grubu çözümünüzü kaldırıp kaydırmak mümkündür. Daha fazla bilgi için bkz. kullanılabilirlik grubunu geçirme .

Önkoşullar

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

  • Bir Azure aboneliği.
  • Etki alanı denetleyicisi olan bir kaynak grubu.
  • Azure 'daki bir veya daha fazla etki alanına katılmış vm 'ler, SQL ıaas aracısı uzantısı ile kaydedilmiş aynı kullanılabilirlik kümesinde veya farklı kullanılabilirlik bölgelerinde SQL Server 2016 (veya üzeri) Enterprise sürümü çalıştırıyor .
  • PowerShell veya Azure CLI'nin en son sürümü.
  • Kullanılabilir iki (herhangi bir varlık tarafından kullanılmayan) IP adresleri. Bunlardan biri iç yük dengeleyiciye yöneliktir. Diğeri, kullanılabilirlik grubu ile aynı alt ağda bulunan kullanılabilirlik grubu dinleyicisine yöneliktir. Var olan bir yük dengeleyiciyi kullanıyorsanız, kullanılabilirlik grubu dinleyicisi için yalnızca bir kullanılabilir IP adresine sahip olmanız gerekir.

İzinler

Azure CLı kullanarak Always on kullanılabilirlik grubunu yapılandırmak için aşağıdaki hesap izinlerine sahip olmanız gerekir:

  • Etki alanında bilgisayar nesnesi oluşturma iznine sahip 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 denetleyen etki alanı kullanıcı hesabı.

Depolama hesabı oluşturma

Kümenin bulut tanığı olarak davranması için bir depolama hesabı olması gerekir. Mevcut bir depolama hesabını kullanabilir veya yeni bir depolama hesabı oluşturabilirsiniz. Mevcut bir depolama hesabını kullanmak istiyorsanız, sonraki bölüme atlayın.

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

İpucu

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

Küme meta verilerini tanımlama

Azure clı 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. ilk SQL Server vm eklendiğinde kümenin tanımlandığı şekilde oluşturulması için WSFC meta verilerini tanımlamak için az sql vm group create kullanın.

Aşağıdaki kod parçacığı, küme için meta verileri 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

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

aşağıdaki kod parçacığı kümeyi oluşturur ve ilk SQL Server VM 'yi buna 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 diğer SQL Server vm 'leri eklemek için bu komutu kullanın. yalnızca -n SQL Server VM adı için olan parametreyi değiştirin.

Çekirdeği yapılandırma

Disk tanığı en esnek çekirdek seçeneği olsa da, kullanılabilirlik grubuna bazı sınırlamalar sağlayan bir Azure Paylaşılan diski gerektirir. bu nedenle, bulut tanığı, Azure vm 'lerinde SQL Server için kullanılabilirlik grupları barındıran kümeler için önerilen çekirdek çözümüdür.

Kümede çift sayıda oy varsa, iş ihtiyaçlarınıza en uygun olan çekirdek çözümünü yapılandırın. daha fazla bilgi için bkz. SQL Server vm 'lerle çekirdek.

Kümeyi Doğrula

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 ve daha sonra devam etmeden önce kümenizin doğrulamayı geçirdiğ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 (FCM) kullanarak kümeyi veya aşağıdaki PowerShell komutunu kullanabilirsiniz:

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

Kullanılabilirlik grubu oluştur

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

Önemli

Aşağıdaki bölümlerde Azure CLı üzerinden yapıldığından, şu anda bir dinleyici oluşturmayın.

İç yük dengeleyici oluştur

Not

Windows 2016 ve sonraki sürümlerde SQL Server 2019 CU8 ve üzeri müşterilerin geleneksel VNN dinleyicisi ve Azure Load Balancer bir dağıtılmış ağ adı (DNN) dinleyicisiyle yerini alabilir. Dinleyiciyi ve yük dengeleyiciyi oluşturan bu makaledeki adımların geri kalanını atlayın.

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

Not

iç yük dengeleyici, SQL Server VM örnekleri ile 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 bir SQL Server VM için genel ıp kaynağının standart yük dengeleyiciye uyumlu olması için standart bir SKU 'su olmalıdır. sanal makinenizin genel ıp kaynağının SKU 'sunu belirlemek için, kaynak grubu' na gidin, istediğiniz SQL Server VM için genel ıp adresi kaynağınızı seçin ve genel bakış bölmesinde SKU altındaki değeri bulun.

Dinleyici oluştur

Kullanılabilirlik grubunu el ile oluşturduktan sonra az SQL VM AG-Listenerkullanarak dinleyiciyi oluşturabilirsiniz.

Alt ağ kaynak kimliği , /subnets/<subnetname> sanal ağ kaynağının kaynak kimliğine eklenen değerdir. Alt ağ kaynak KIMLIĞINI belirlemek için:

  1. Azure Portalkaynak grubunuza gidin.
  2. Sanal ağ kaynağını seçin.
  3. Ayarlar bölmesinde özellikler ' i seçin.
  4. Sanal ağın kaynak KIMLIĞINI belirleyip /subnets/<subnetname> alt ağ kaynak kimliği oluşturmak için sonuna ekleyin. Örneğin:
    • Sanal ağ kaynak KIMLIĞINIZ: /subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet
    • Alt ağ adınız: 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>

Kopyaların sayısını değiştirme

Azure 'da barındırılan SQL Server vm 'lere bir kullanılabilirlik grubu dağıttığınızda bir karmaşıklık katmanı daha vardır. Kaynak sağlayıcısı ve sanal makine grubu artık kaynakları yönetir. bu nedenle, kullanılabilirlik grubunda çoğaltmalar eklerken veya kaldırırken, SQL Server vm 'ler hakkında bilgi içeren dinleyici meta verilerini güncelleştirme hakkında ek bir adım vardır. kullanılabilirlik grubundaki çoğaltmaların sayısını değiştirirken, dinleyiciyi SQL Server vm 'lerin 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 'yi 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 grubu içinde bir çoğaltma olarak eklemek için SQL Server Management Studio kullanın.

  3. SQL Server VM meta verilerini dinleyiciye 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. Çoğaltmayı kullanarak kullanılabilirlik grubundan çoğaltmayı SQL Server Management Studio.
  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. Kümeden SQL Server VM'yi 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ılmış kullanılabilirlik grubu dinleyicisini kaldırmanız gerekirse IaaS Aracısı uzantısını SQL gerekir. Dinleyici IaaS Aracısı uzantısıyla SQL için yalnızca bu uzantıyı SQL Server Management Studio yeterli değildir.

En iyi yöntem, Azure CLI'de aşağıdaki kod parçacığını SQL IaaS Aracısı uzantısı aracılığıyla silmektir. Bunu yapmak, IaaS Aracısı uzantısından SQL dinleyici meta verilerini kaldırır. Ayrıca kullanılabilirlik grubundan dinleyiciyi 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

Kümeyi yok etmek için kümedeki tüm düğümleri kaldırın ve ardından küme meta verilerini IaaS Aracısı uzantısından SQL kaldırın. Bunu Azure CLI veya PowerShell kullanarak da kullanabilirsiniz.

İlk olarak, kümeden SQL Server vm'leri 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ümede yalnızca bu VM'ler varsa küme yok edilir. Kümede, kaldırılan sanal SQL Server dışında başka VM varsa, diğer VM'ler kaldırılamaz ve küme yok edilemez.

Ardından, IaaS Aracısı uzantısından SQL 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'leri üzerinde SQL Server IÇIN HADR ayarlarını iyileştirmeyi göz önünde bulundurabilirsiniz.

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