Azure VM'de SQL Server için çok alt ağlı bir kullanılabilirlik grubu yapılandırmak için PowerShell veya Az CLI kullanma
Şunlar için geçerlidir: Azure VM'de SQL Server
İpucu
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 birden çok alt ağ içindeki Always On kullanılabilirlik grubu için dinleyicinin nasıl kullanılacağı 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 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:
- Bir Azure aboneliği.
- Etki alanı denetleyicisi olan bir kaynak grubu.
- Azure'da aynı sanal ağdaki ayrı alt ağlarda SQL Server 2016 (veya üzeri) Enterprise sürümünü çalıştıran bir veya daha fazla etki alanına katılmış VM. VM'ler, SQL IaaS Aracısı uzantısıyla kaydedilmiş aynı kullanılabilirlik kümesinde veya farklı kullanılabilirlik alanlarındadır.
- PowerShell'in veya Azure CLI'nın en son sürümü.
- Her sanal makineyle aynı alt ağda bulunan iki kullanılabilir (herhangi bir varlık tarafından kullanılmaz) IP adresi. Her sanal makinenin kullanılabilirlik grubu dinleyicisi için bir IP Adresi olacaktır.
- Windows Server Core, Bu makalede başvurulan PowerShell komutları için desteklenen bir işletim sistemi değildir çünkü Windows'un Çekirdek yüklemelerine dahil olmayan RSAT bağımlılığı vardır.
İ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
İpucu
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 sql2019-ws2019 --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/'
# --cluster-subnet-type 'MultiSubnet'
az sql vm group create -n <cluster name> -l <region ex:eastus> -g <resource group name> `
--image-offer <sql2019-ws2019> --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/>'
--cluster-subnet-type 'MultiSubnet'
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.
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:
- Azure portalında kaynak grubunuz gidin.
- Sanal ağ kaynağını seçin.
- Ayarlar bölmesinde Özellikler'i seçin.
- 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
- Sanal ağ kaynak kimliğiniz:
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:
Azure CLI
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>
SQL Server örneğini kullanılabilirlik grubuna çoğaltma olarak eklemek için SQL Server Management Studio'yu kullanın.
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:
Azure CLI
- SQL Server Management Studio kullanarak çoğaltmayı kullanılabilirlik grubundan kaldırın.
- 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>
- 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 olmaz.
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: