Rendelkezésre állási csoport konfigurálása azure-beli virtuális gépen az SQL Serverhez a PowerShell vagy az Az CLI használatával

A következőre vonatkozik:SQL Server azure-beli virtuális gépen

Tipp

Egy rendelkezésre állási csoport üzembe helyezésének számos módja van. Egyszerűsítse az üzembe helyezést, és szükségtelenné teszi az Azure Load Balancer vagy az elosztott hálózatnév (DNN) használatát az Always On rendelkezésre állási csoport számára azáltal, hogy sql serveres virtuális gépeket (VM-eket) hoz létre több alhálózatban ugyanazon az Azure-beli virtuális hálózaton belül. Ha már létrehozta a rendelkezésre állási csoportot egyetlen alhálózatban, migrálhatja azt egy több alhálózatos környezetbe.

Ez a cikk bemutatja, hogyan helyezhet üzembe windowsos feladatátvevő fürtöt a PowerShell vagy az Azure CLI használatával, hogyan adhat hozzá SQL Server virtuális gépeket a fürthöz, és hogyan hozhatja létre a belső terheléselosztót és -figyelőt egy Always On rendelkezésre állási csoporthoz egyetlen alhálózaton belül.

A rendelkezésre állási csoport üzembe helyezése továbbra is manuálisan történik az SQL Server Management Studio (SSMS) vagy a Transact-SQL (T-SQL) használatával.

Bár ez a cikk a PowerShellt és az Az CLI-t használja a rendelkezésre állási csoport környezetének konfigurálásához, ezt az Azure Portalról is megteheti, azure gyorsindítási sablonokkal vagy manuálisan is.

Megjegyzés:

Mostantól az Azure Migrate használatával át lehet emelni és áthelyezni a rendelkezésre állási csoport megoldását az Azure-beli virtuális gépeken futó SQL Serverre. További információ: Migrálási rendelkezésre állási csoport .

Előfeltételek

Always On rendelkezésre állási csoport konfigurálásához a következő előfeltételekkel kell rendelkeznie:

  • Egy Azure-előfizetés.
  • Egy tartományvezérlővel rendelkező erőforráscsoport.
  • Egy vagy több tartományhoz csatlakoztatott virtuális gép az Azure-ban, amely az SQL Server 2016 (vagy újabb) Enterprise kiadást futtatja ugyanabban a rendelkezésre állási csoportban vagy különböző rendelkezésre állási zónákban, amelyeket regisztráltak az SQL IaaS Agent bővítményben.
  • A PowerShell vagy az Azure CLI legújabb verziója.
  • Két elérhető (entitás által nem használt) IP-cím. Az egyik a belső terheléselosztóhoz tartozik. A másik a rendelkezésre állási csoport figyelője a rendelkezésre állási csoporttal azonos alhálózaton belül. Ha meglévő terheléselosztót használ, csak egy elérhető IP-címre van szüksége a rendelkezésre állási csoport figyelőjének.
  • A Windows Server Core nem támogatott operációs rendszer a cikkben hivatkozott PowerShell-parancsokhoz, mivel az RSAT-függőség nem része a Windows Core-telepítéseknek.

Engedélyek

Az Always On rendelkezésre állási csoport Azure CLI használatával történő konfigurálásához a következő fiókengedélyekre van szüksége:

  • Egy meglévő tartományi felhasználói fiók, amely rendelkezik számítógépobjektum-létrehozási engedéllyel a tartományban. Például egy tartományi rendszergazdai fiók általában rendelkezik elegendő engedéllyel (például: account@domain.com). Ennek a fióknak az egyes virtuális gépek helyi rendszergazdai csoportjának is kell lennie a fürt létrehozásához.
  • Az SQL Servert vezérlő tartományi felhasználói fiók.

Tárfiók létrehozása

A fürtnek egy tárfiókra van szüksége a felhő tanúsítójaként való működéshez. Használhat bármilyen meglévő tárfiókot, vagy létrehozhat egy új tárfiókot. Ha meglévő tárfiókot szeretne használni, ugorjon tovább a következő szakaszra.

A következő kódrészlet hozza létre a tárfiókot:

# 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

Tipp

Előfordulhat, hogy a hiba az sql: 'vm' is not in the 'az sql' command group akkor jelenik meg, ha az Azure CLI elavult verzióját használja. A hiba elhárításához töltse le az Azure CLI legújabb verzióját.

Fürt metaadatainak definiálása

Az Azure CLI az sql vm group parancscsoport kezeli a rendelkezésre állási csoportot üzemeltető Windows Server Feladatátvevő fürt (WSFC) szolgáltatás metaadatait. A fürt metaadatai közé tartozik az Active Directory-tartomány, a fürtfiókok, a felhőalapú tanúsítóként használandó tárfiókok és az SQL Server verziója. A WSFC metaadatainak definiálásához használja az az sql virtuálisgép-csoport létrehozását , hogy az első SQL Server virtuális gép hozzáadásakor a fürt a definiált módon legyen létrehozva.

A fürt metaadatait a következő kódrészlet határozza meg:

# 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/>'

Virtuális gépek hozzáadása a fürthöz

Az első SQL Server virtuális gép fürthöz való hozzáadása létrehozza a fürtöt. Az az sql vm add-to-group parancs létrehozza a korábban megadott nevű fürtöt, telepíti a fürtszerepkört az SQL Server virtuális gépeken, és hozzáadja őket a fürthöz. A parancs későbbi alkalmazásai az sql vm add-to-group további SQL Server-virtuális gépeket adnak hozzá az újonnan létrehozott fürthöz.

A következő kódrészlet hozza létre a fürtöt, és hozzáadja hozzá az első SQL Server virtuális gépet:

# 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>

Ezzel a paranccsal adhat hozzá más SQL Server-virtuális gépeket a fürthöz. Módosítsa csak az -n SQL Server virtuális gép nevének paraméterét.

Kvórum konfigurálása

Bár a lemeztanúsítás a legrugalmasabb kvórumlehetőség, egy Azure-beli megosztott lemezre van szükség, amely bizonyos korlátozásokat ró a rendelkezésre állási csoportra. Ezért a felhőbeli tanúsító a rendelkezésre állási csoportokat üzemeltető fürtök ajánlott kvórummegoldása az Azure-beli virtuális gépeken futó SQL Serverhez.

Ha páros számú szavazattal rendelkezik a fürtön, konfigurálja az üzleti igényeinek leginkább megfelelő kvórummegoldást . További információ: Kvórum SQL Server virtuális gépekkel.

Fürt ellenőrzése

Ahhoz, hogy egy feladatátvevő fürtöt a Microsoft támogassa, át kell adnia a fürtérvényesítést. Csatlakozzon a virtuális géphez az előnyben részesített módszerrel, például a Távoli asztali protokoll (RDP) használatával, és ellenőrizze, hogy a fürt megfelel-e az ellenőrzésnek, mielőtt továbblép. Ennek elmulasztása nem támogatja a fürtöt.

A fürtöt a Feladatátvevőfürt-kezelő (FCM) vagy a következő PowerShell-paranccsal ellenőrizheti:

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

Rendelkezésre állási csoport létrehozása

Hozza létre manuálisan a rendelkezésre állási csoportot a szokásos módon az SQL Server Management Studio, a PowerShell vagy a Transact-SQL használatával.

Fontos

Jelenleg ne hozzon létre figyelőt, mert ez az Azure CLI-n keresztül történik a következő szakaszokban.

Belső terheléselosztó létrehozása

Megjegyzés:

A rendelkezésre állási csoport több alhálózaton történő üzembe helyezéséhez nincs szükség terheléselosztóra. Egy alhálózati környezetben az SQL Server 2019 CU8-at és újabb verziót Windows 2016-on és újabb verziókban használó ügyfelek lecserélhetik a hagyományos virtuális hálózat figyelőt (VNN) és az Azure Load Balancert egy elosztott hálózati név (DNN) figyelőre. Ha DNN-t szeretne használni, hagyja ki az Azure Load Balancert a rendelkezésre állási csoporthoz konfiguráló oktatóanyag lépéseit.

Az Always On rendelkezésre állási csoport figyelőjének belső Azure Load Balancer-példányra van szüksége. A belső terheléselosztó egy "lebegő" IP-címet biztosít a rendelkezésre állási csoport figyelőjének, amely lehetővé teszi a gyorsabb feladatátvételt és újracsatlakozást. Ha egy rendelkezésre állási csoport SQL Server virtuális gépei ugyanahhoz a rendelkezésre állási csoporthoz tartoznak, használhat alapszintű terheléselosztót. Ellenkező esetben standard terheléselosztót kell használnia.

Megjegyzés:

A belső terheléselosztónak ugyanabban a virtuális hálózaton kell lennie, mint az SQL Server virtuálisgép-példányok.

A következő kódrészlet hozza létre a belső terheléselosztót:

# 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>

Fontos

Az egyes SQL Server virtuális gépek nyilvános IP-erőforrásának standard termékváltozattal kell rendelkeznie, hogy kompatibilis legyen a Standard terheléselosztóval. A virtuális gép nyilvános IP-erőforrásának termékváltozatának meghatározásához nyissa meg az Erőforráscsoportot, válassza ki a kívánt SQL Server virtuális gép nyilvános IP-cím erőforrását, és keresse meg az értéket a termékváltozat alatt az Áttekintés panelen.

Figyelő létrehozása

Miután manuálisan létrehozta a rendelkezésre állási csoportot, létrehozhatja a figyelőt az sql vm ag-listener használatával.

Az alhálózati erőforrás-azonosító a virtuális hálózati erőforrás erőforrás-azonosítójával kiegészített érték /subnets/<subnetname> . Az alhálózat erőforrás-azonosítójának azonosítása:

  1. Nyissa meg az erőforráscsoportot az Azure Portalon.
  2. Válassza ki a virtuális hálózati erőforrást.
  3. Válassza a Tulajdonságok lehetőséget a Beállítások panelen.
  4. Azonosítsa a virtuális hálózat erőforrás-azonosítóját, és fűzze /subnets/<subnetname> hozzá a végéhez az alhálózati erőforrás-azonosító létrehozásához. Például:
    • A virtuális hálózati erőforrás-azonosító a következő: /subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet
    • Az alhálózat neve: default
    • Ezért az alhálózati erőforrás-azonosító a következő: /subscriptions/a1a1-1a11a/resourceGroups/SQLVM-RG/providers/Microsoft.Network/virtualNetworks/SQLVMvNet/subnets/default

A következő kódrészlet hozza létre a rendelkezésre állási csoport figyelőjét:

# 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>

Replikák számának módosítása

A rendelkezésre állási csoport Azure-ban üzemeltetett SQL Server virtuális gépeken való üzembe helyezésekor egy összetettségi réteg is hozzáadódik. Az erőforrás-szolgáltató és a virtuálisgép-csoport mostantól kezeli az erőforrásokat. Ha replikákat ad hozzá vagy távolít el a rendelkezésre állási csoportban, a figyelő metaadatainak frissítése további lépés az SQL Server virtuális gépek adataival. A rendelkezésre állási csoportban lévő replikák számának módosításakor az AZ SQL VM-csoport ag-listener frissítési parancsával is frissítenie kell a figyelőt az SQL Server virtuális gépek metaadataival.

Replika hozzáadása

Új replika hozzáadása a rendelkezésre állási csoporthoz:

  1. Adja hozzá az SQL Server virtuális gépet a fürtcsoporthoz:

    
    # 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. Az SQL Server Management Studio használatával replikaként adja hozzá az SQL Server-példányt a rendelkezésre állási csoportban.

  3. Adja hozzá az SQL Server virtuális gép metaadatait a figyelőhöz:

    # 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>
    

Replika eltávolítása

Replika eltávolítása a rendelkezésre állási csoportból:

  1. Távolítsa el a replikát a rendelkezésre állási csoportból az SQL Server Management Studio használatával.
  2. Távolítsa el az SQL Server virtuális gép metaadatait a figyelőből:
    # 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. Távolítsa el az SQL Server virtuális gépet a fürtből:
    # 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> 
    

Figyelő eltávolítása

Ha később el kell távolítania az Azure CLI-vel konfigurált rendelkezésreállási csoport figyelőt, az SQL IaaS-ügynök bővítményén kell végighaladnia. Mivel a figyelő az SQL IaaS Agent bővítményen keresztül van regisztrálva, az SQL Server Management Studióval való törlés nem elegendő.

A legjobb módszer az, ha az SQL IaaS Agent bővítményen keresztül törli az alábbi kódrészlettel az Azure CLI-ben. Ezzel eltávolítja a rendelkezésre állási csoport figyelőjének metaadatait az SQL IaaS Agent bővítményből. Fizikailag is törli a figyelőt a rendelkezésre állási csoportból.

# 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>

Fürt eltávolítása

Távolítsa el az összes csomópontot a fürtből, hogy elpusztítsa azt, majd távolítsa el a fürt metaadatait az SQL IaaS-ügynök bővítményéből. Ezt az Azure CLI vagy a PowerShell használatával teheti meg.

Először távolítsa el az összes SQL Server virtuális gépet a fürtből:

# 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>

Ha ezek az egyetlen virtuális gépek a fürtben, akkor a fürt el lesz pusztítva. Ha a fürtben az eltávolított SQL Server virtuális gépeken kívül más virtuális gépek is vannak, a többi virtuális gép nem lesz eltávolítva, és a fürt nem lesz megsemmisítve.

Ezután távolítsa el a fürt metaadatait az SQL IaaS-ügynök bővítményéből:

# 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>

További lépések

A rendelkezésre állási csoport üzembe helyezése után fontolja meg az SQL Server HADR-beállításainak optimalizálását Azure-beli virtuális gépeken.

További tudnivalókért lásd: