Konfigurace skupiny dostupnosti s jednou podsítí pro SQL Server na virtuálním počítači Azure pomocí PowerShellu nebo Az CLI
Platí pro:SQL Server na virtuálním počítači Azure
Tip
Existuje mnoho metod nasazení skupiny dostupnosti. Zjednodušte nasazení a eliminujte potřebu služby Azure Load Balancer nebo názvu distribuované sítě (DNN) pro vaši skupinu dostupnosti AlwaysOn vytvořením virtuálních počítačů s SQL Serverem v několika podsítích ve stejné virtuální síti Azure. Pokud jste skupinu dostupnosti už vytvořili v jedné podsíti, můžete ji migrovat do prostředí s více podsítěmi.
Tento článek popisuje, jak pomocí PowerShellunebo Azure CLI nasadit cluster s podporou převzetí služeb při selhání s Windows, přidat do clusteru virtuální počítače s SQL Serverem a vytvořit interní vyrovnávač zatížení a posluchač pro skupinu s dostupností Always On v rámci jedné podsítě.
Nasazení skupiny dostupnosti se stále provádí ručně prostřednictvím aplikace SQL Server Management Studio (SSMS) nebo Transact-SQL (T-SQL).
I když tento článek používá PowerShell a Az CLI ke konfiguraci prostředí skupiny dostupnosti, je to také možné provést na webu Azure Portal, pomocí šablon Rychlého startu Azure nebo ručně.
Poznámka:
Nyní je možné pomocí služby Azure Migrate přesunout vaše řešení skupiny dostupnosti na SQL Server na virtuálních počítačích Azure. Podívejte se na Migrovat skupinu dostupnosti, abyste se dozvěděli více.
Požadavky
Pokud chcete nakonfigurovat skupinu dostupnosti AlwaysOn, musíte mít následující požadavky:
- Předplatné Azure
- Skupina prostředků s řadičem domény.
- Jeden nebo více virtuálních počítačů připojených k doméně v Azure s edicí SQL Serveru 2016 (nebo novější) Enterprise ve stejné skupině dostupnosti nebo v různých zónách dostupnosti, které jsou zaregistrované v rozšíření agenta SQL IaaS.
- Nejnovější verze PowerShellu nebo Azure CLI
- Dvě dostupné (nepoužívané žádnou entitou) IP adresy Jedním z nich je interní nástroj pro vyrovnávání zatížení. Druhá je pro naslouchátko skupiny dostupnosti ve stejné podsíti jako skupina dostupnosti. Pokud používáte existující vyrovnávač zatížení, potřebujete jenom jednu dostupnou IP adresu pro posluchače skupiny dostupnosti.
- Windows Server Core není podporovaný operační systém pro příkazy PowerShellu, na které odkazuje tento článek, protože existuje závislost na nástroji RSAT, který není součástí základních instalací Windows.
Oprávnění
Ke konfiguraci skupiny dostupnosti AlwaysOn pomocí Azure CLI potřebujete následující oprávnění účtu:
- Existující uživatelský účet domény, který má oprávnění Vytvořit objekt počítače v doméně. Například účet správce domény má obvykle dostatečná oprávnění (například: account@domain.com). Tento účet by měl být také součástí místní skupiny správců na každém virtuálním počítači a vytvořit cluster.
- Uživatelský účet domény, který řídí SQL Server.
Vytvoření účtu úložiště
Cluster potřebuje účet služby úložiště, který bude fungovat jako cloudový svědek. Můžete použít jakýkoli existující účet úložiště nebo můžete vytvořit nový účet úložiště. Pokud chcete použít existující účet úložiště, přejděte k další části.
Následující fragment kódu vytvoří účet úložiště:
# 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
Tip
Pokud používáte zastaralou verzi Azure CLI, může se zobrazit chyba az sql: 'vm' is not in the 'az sql' command group
. Stáhněte si nejnovější verzi Azure CLI, aby se tato chyba odstranila.
Definování metadat clusteru
Azure CLI az sql vm group command group spravuje metadata služby Windows Server Failover Cluster (WSFC), která je hostitelem skupiny dostupnosti. Metadata clusteru zahrnují doménu služby Active Directory, účty clusteru, účty úložiště, které se mají používat jako svědek cloudu, a verzi SQL Serveru. Pomocí příkazu az sql vm group create definujte metadata pro WSFC, aby se při přidání prvního virtuálního počítače s SQL Serverem vytvořil cluster podle definice.
Následující fragment kódu definuje metadata clusteru:
# 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/'
# --cluster-subnet-type 'SingleSubnet'
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/>'
--cluster-subnet-type 'SingleSubnet'
Přidání virtuálních počítačů do clusteru
Přidáním prvního virtuálního počítače s SQL Serverem do clusteru se cluster vytvoří. Příkaz az sql vm add-to-group vytvoří cluster s dříve zadaným názvem, nainstaluje roli clusteru na virtuální počítače s SQL Serverem a přidá je do clusteru. Následné použití az sql vm add-to-group
příkazu přidá do nově vytvořeného clusteru další virtuální počítače s SQL Serverem.
Následující fragment kódu vytvoří cluster a přidá do něj první virtuální počítač s SQL Serverem. Nahraďte <password>
platným heslem.
# Add SQL Server VMs to cluster
# example: az sql vm add-to-group -n SQLVM1 -g SQLVM-RG --sqlvm-group Cluster `
# -b <password> -p <password> -s <password>
# example: az sql vm add-to-group -n SQLVM2 -g SQLVM-RG --sqlvm-group Cluster `
# -b <password> -p <password> -s <password>
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>
Tento příkaz použijte k přidání dalších virtuálních počítačů s SQL Serverem do clusteru. Upravte pouze -n
parametr pro název virtuálního počítače s SQL Serverem. Nahraďte <password>
platným heslem.
Nakonfigurovat kvorum
Ačkoli je diskový svědek nejodolnější možností kvora, vyžaduje sdílený disk Azure, což vytváří určitá omezení pro skupinu dostupnosti. Cloudový svědek je proto doporučeným řešením kvora pro clustery hostující skupiny dostupnosti pro SQL Server na virtuálních počítačích Azure.
Pokud máte v clusteru sudý počet hlasů, nakonfigurujte quorumové řešení, které nejlépe odpovídá vašim obchodním potřebám. Další informace najdete v tématu Kvorum s virtuálními počítači s SQL Serverem.
Ověření clusteru
Aby Microsoft podporoval cluster pro převzetí služeb při selhání, musí projít ověřením clusteru. Připojte se k virtuálnímu počítači pomocí preferované metody, jako je Bastion, a před pokračováním ověřte, že váš cluster projde ověřením. Pokud to neuděláte, cluster zůstane v nepodporovaném stavu.
Můžete ověřit cluster pomocí Správce clusteru (FCM) nebo následujícího příkazu PowerShell:
Test-Cluster –Node ("<node1>","<node2>") –Include "Inventory", "Network", "System Configuration"
Vytvoření skupiny dostupnosti
Skupinu dostupnosti můžete vytvořit ručně podle potřeby pomocí aplikace SQL Server Management Studio, PowerShellu nebo jazyka Transact-SQL.
Důležité
V tuto chvíli nevytvářejte naslouchací proces, protože se to provádí prostřednictvím Azure CLI v následujících částech.
Vytvoření interního nástroje pro vyrovnávání zatížení
Poznámka:
Nasazení skupin dostupnosti do několika podsítí nevyžadují nástroj pro vyrovnávání zatížení. V prostředí jednorozměrné podsíti mohou zákazníci, kteří používají SQL Server 2019 CU8 a novější na Windows 2016 a pozdějších verzích, nahradit tradiční naslouchač virtuální sítě (VNN) a Azure Load Balancer naslouchačem distribuované sítě (DNN). Pokud chcete použít síť DNN, přeskočte všechny kroky kurzu, které nakonfigurují Azure Load Balancer pro vaši skupinu dostupnosti.
Naslouchací služba skupiny dostupnosti Always On vyžaduje interní instanci Azure Load Balancer. Interní nástroj pro vyrovnávání zatížení poskytuje plovoucí IP adresu pro posluchač skupiny dostupnosti, která umožňuje rychlejší převzetí při selhání a opětovné připojení. Pokud jsou virtuální počítače s SQL Serverem ve skupině dostupnosti součástí stejné skupiny dostupnosti, můžete použít nástroj pro vyrovnávání zatížení úrovně Basic. V opačném případě musíte použít Standardní nástroj pro vyrovnávání zatížení.
Poznámka:
Interní nástroj pro vyrovnávání zatížení by měl být ve stejné virtuální síti jako instance virtuálních počítačů s SQL Serverem.
Následující fragment kódu vytvoří interní nástroj pro vyrovnávání zatížení:
# 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>
Důležité
Prostředek veřejné IP adresy pro každý virtuální počítač se serverem SQL by měl mít standardní SKU, aby byl kompatibilní se standardním nástrojem pro vyrovnávání zatížení. Pokud chcete zjistit SKU prostředku veřejné IP adresy virtuálního počítače, přejděte do Skupiny prostředků, vyberte Veřejná IP adresa požadovaného virtuálního počítače s SQL Serverem a v podokně Přehled vyhledejte hodnotu pod SKU.
Vytvořit posluchače
Po ručním vytvoření skupiny dostupnosti můžete posluchač vytvořit pomocí příkazu az sql vm ag-listener.
ID prostředku podsítě je hodnota /subnets/<subnetname>
připojená k ID prostředku virtuální sítě. Jak identifikovat ID prostředku podsítě:
- Na webu Azure Portal přejděte ke své skupině prostředků.
- Vyberte prostředek virtuální sítě.
- V podokně Nastavení vyberte Vlastnosti.
- Identifikujte ID prostředku pro virtuální síť a připojte
/subnets/<subnetname>
na jeho konec, abyste vytvořili ID prostředku podsítě. Příklad:- ID prostředku vaší virtuální sítě je:
/subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet
- Název vaší podsítě je:
default
- ID prostředku podsítě je proto:
/subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet/subnets/default
- ID prostředku vaší virtuální sítě je:
Následující fragment kódu vytvoří posluchač dostupnostní skupiny:
# 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>
Úprava počtu replik
Při nasazování skupiny dostupnosti na virtuální počítače s SQL Serverem hostovaným v Azure je přidaná vrstva složitosti. Poskytovatel prostředků a skupina virtuálních počítačů teď spravují prostředky. Proto, když přidáváte nebo odebíráte repliky ve skupině dostupnosti, je potřeba také aktualizovat metadata posluchače s informacemi o virtuálních počítačích s SQL Serverem. Při úpravě počtu replik ve skupině dostupnosti musíte také použít příkaz az sql vm group ag-listener update k aktualizaci posluchače s metadaty virtuálních počítačů SQL Serveru.
Přidání repliky
Přidání nové repliky do skupiny dostupnosti:
Azure CLI
Přidejte virtuální počítač s SQL Serverem do skupiny clusteru. Nahraďte
<password>
platným heslem.# 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 <password> -p <password> -s <password> 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>
Pomocí aplikace SQL Server Management Studio přidejte instanci SQL Serveru jako repliku v rámci skupiny dostupnosti.
Přidejte metadata virtuálního počítače s SQL Serverem do naslouchacího procesu:
# 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>
Odebrání repliky
K odebrání repliky ze skupiny dostupnosti:
Azure CLI
- Odeberte repliku ze skupiny dostupnosti pomocí aplikace SQL Server Management Studio.
- Odeberte metadata virtuálního počítače s SQL Serverem z naslouchacího procesu:
# 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>
- Odeberte virtuální počítač s SQL Serverem z clusteru:
# 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>
Odebrat posluchače
Pokud později potřebujete odebrat naslouchací program skupiny dostupnosti nakonfigurovaný pomocí Azure CLI, musí být provedeno prostřednictvím rozšíření agenta SQL IaaS. Protože je naslouchací program zaregistrovaný prostřednictvím rozšíření agenta SQL IaaS, není jeho odstranění přes SQL Server Management Studio dostačující.
Nejlepší metodou je odstranění prostřednictvím rozšíření agenta SQL IaaS pomocí následujícího fragmentu kódu v Azure CLI. Tím odeberete metadata posluchače skupiny dostupnosti z rozšíření agenta SQL IaaS. Zároveň fyzicky odstraní naslouchací modul ze skupiny dostupnosti.
# 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>
Odebrání clusteru
Odeberte všechny uzly z clusteru, abyste ho zničili, a pak odeberte metadata clusteru z rozšíření agenta SQL IaaS. Můžete to udělat pomocí Azure CLI nebo PowerShellu.
Nejprve odeberte všechny virtuální počítače s SQL Serverem z clusteru:
# 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>
Pokud se jedná o jediné virtuální počítače v clusteru, cluster se zničí. Pokud jsou v clusteru kromě odebraných virtuálních počítačů s SQL Serverem nějaké další virtuální počítače, ostatní virtuální počítače se neodeberou a cluster se nezničí.
Pak odeberte metadata clusteru z rozšíření agenta SQL IaaS:
# 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>
Další kroky
Po nasazení skupiny dostupnosti zvažte optimalizaci nastavení HADR pro SQL Server na virtuálních počítačích Azure.
Další informace najdete v následujících tématech: