Megosztás a következőn keresztül:


Felhasználó által, felügyelt SQL-példányon kezdeményezett manuális feladatátvétel

A következőre vonatkozik: Felügyelt Azure SQL-példány

Ez a cikk bemutatja, hogyan lehet manuálisan feladatátvételt végrehajtani egy elsődleges csomóponton az SQL Managed Instance General Purpose (GP) és üzletileg kritikus (BC) szolgáltatásszinteken, és hogyan lehet manuálisan feladatátvételt végrehajtani egy másodlagos írásvédett replikacsomóponton csak a BC szolgáltatásszinten.

Feljegyzés

Ez a cikk nem kapcsolódik a feladatátvételi csoportokkal rendelkező régiók közötti feladatátvételekhez.

Mikor érdemes manuális feladatátvételt használni?

A magas rendelkezésre állás az SQL Managed Instance platform alapvető része, amely transzparens módon működik az adatbázis-alkalmazások számára. A csomópontok teljesítménycsökkenése vagy meghibásodása esetén, illetve a rendszeres havi szoftverfrissítések során az Azure-ban felügyelt SQL-példányt használó összes alkalmazásnál várhatók az elsődlegesekről a másodlagos csomópontokra irányuló feladatátvételek.

A felügyelt SQL-példányon a következő okok miatt érdemes lehet manuális feladatátvételt végrehajtani:

  • Az alkalmazás feladatátvételi rugalmasságának tesztelése az éles környezetben történő üzembe helyezés előtt
  • Teljes körű rendszerek hibatűrésének tesztelése automatikus feladatátvételek esetén
  • Annak tesztelése, hogy a feladatátvétel milyen hatással van a meglévő adatbázis-munkamenetekre
  • Annak ellenőrzése, hogy egy feladatátvétel hatással van-e a teljes körű teljesítményre a hálózati késleltetés megváltozása miatt
  • Vannak olyan esetek, amikor a lekérdezési teljesítmény romlása esetén a manuális feladatátvétel segíthet enyhíteni a teljesítményproblémát.

Feljegyzés

Annak biztosítása, hogy az alkalmazások rugalmasak legyenek az éles üzembe helyezés előtt, segít csökkenteni az éles környezetben előforduló alkalmazáshibák kockázatát, és hozzájárul az alkalmazások rendelkezésre állásához az ügyfelek számára. További információ az alkalmazások felhőbeli készenlétre való teszteléséről az alkalmazás felhőbeli felkészültségének tesztelésével a feladatátvételi rugalmasság tesztelésével felügyelt SQL-példány videófelvételével.

Manuális feladatátvétel kezdeményezése felügyelt SQL-példányon

Azure RBAC-engedélyek szükségesek

A feladatátvételt kezdeményező felhasználóknak az alábbi Azure-szerepkörök egyikével kell rendelkezniük:

A PowerShell használata

Az Az.Sql minimális verziójának 2.9.0-s verziónak kell lennie. Fontolja meg az Azure Cloud Shell használatát az Azure Portalról, amely mindig a legújabb PowerShell-verzióval rendelkezik.

Előfeltételként használja a következő PowerShell-szkriptet a szükséges Azure-modulok telepítéséhez. Emellett válassza ki azt az előfizetést, amelyben a feladatátvételt végrehajtani kívánt SQL-példány található.

$subscription = 'enter your subscription ID here'
Install-Module -Name Az
Import-Module Az.Accounts
Import-Module Az.Sql

Connect-AzAccount
Select-AzSubscription -SubscriptionId $subscription

Használja a PowerShell Invoke-AzSqlInstanceFailover parancsát az alábbi példával az elsődleges csomópont feladatátvételének elindításához, amely a BC és a GP szolgáltatásszintre egyaránt alkalmazható.

$ResourceGroup = 'enter resource group of your MI'
$ManagedInstanceName = 'enter MI name'
Invoke-AzSqlInstanceFailover -ResourceGroupName $ResourceGroup -Name $ManagedInstanceName

A feladatátvételhez használja a következő PowerShell-parancsot, amely csak a BC szolgáltatásszintre vonatkozik.

$ResourceGroup = 'enter resource group of your MI'
$ManagedInstanceName = 'enter MI name'
Invoke-AzSqlInstanceFailover -ResourceGroupName $ResourceGroup -Name $ManagedInstanceName -ReadableSecondary

A parancssori felület használata

Győződjön meg arról, hogy telepítve vannak a legújabb CLI-szkriptek.

Az sql mi feladatátvételi CLI-paranccsal az alábbi példával kezdeményezheti az elsődleges csomópont feladatátvételét, amely a BC és a GP szolgáltatásszintre egyaránt alkalmazható.

az sql mi failover -g myresourcegroup -n myinstancename

A feladatátvételhez használja a következő CLI-parancsot, amely csak a BC szolgáltatásszintre vonatkozik.

az sql mi failover -g myresourcegroup -n myinstancename --replica-type ReadableSecondary

A REST API használata

Azoknak a haladó felhasználóknak, akiknek esetleg automatizálniuk kell a felügyelt SQL-példányok feladatátvételét a folyamatos tesztelési folyamat vagy az automatizált teljesítménycsökkentők implementálása céljából, ez a függvény egy API-híváson keresztüli feladatátvétel kezdeményezésével valósítható meg. Részletekért lásd: SQL Managed Instances – Feladatátvételi REST API .

A feladatátvétel REST API-hívással történő elindításához először hozza létre az Auth Tokent a választott API-ügyfél használatával. A létrehozott hitelesítési jogkivonat engedélyezési tulajdonságként használatos az API-kérés fejlécében, és kötelező.

Az alábbi kód egy példa a meghívandó API URI-ra:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/failover?api-version=2019-06-01-preview

Az API-hívásban a következő tulajdonságokat kell átadni:

API-tulajdonság Paraméter
subscriptionId Előfizetés azonosítója, amelyre a felügyelt példány telepítve van
resourceGroupName Felügyelt példányt tartalmazó erőforráscsoport
managedInstanceName Felügyelt példány neve
replicaType (Nem kötelező) (Elsődleges vagy Olvashatósecondary). Ezek a paraméterek a feladatátvételhez használt replika típusát jelölik: elsődleges vagy olvasható másodlagos. Ha nincs megadva, a feladatátvétel alapértelmezés szerint az elsődleges replikán lesz elindítva.
api-verzió A statikus értéknek és jelenleg a "2019-06-01-preview" értéknek kell lennie

Az API az alábbi kettő egyikével válaszol:

  • 202 Elfogadva
  • A 400 kérési hiba egyike.

A művelet állapota a válaszfejlécekben szereplő API-válaszok áttekintésével követhető nyomon. További információ: Az aszinkron Azure-műveletek állapota.

A feladatátvétel figyelése

A BC-példány felhasználó által kezdeményezett feladatátvételének nyomon követéséhez hajtsa végre a következő T-SQL-lekérdezést a kedvenc ügyfélprogramjában (például az SSMS-ben) a felügyelt SQL-példányon. Beolvassa a példányon elérhető rendszernézeti sys.dm_hadr_fabric_replica_states és jelentésreplikákat. Frissítse ugyanazt a lekérdezést a manuális feladatátvétel kezdeményezése után.

SELECT DISTINCT replication_endpoint_url, fabric_replica_role_desc FROM sys.dm_hadr_fabric_replica_states

A feladatátvétel kezdeményezése előtt a kimenet az aktuális elsődleges replikát jelzi a BC szolgáltatásszinten, amely egy elsődleges és három másodlagos példányt tartalmaz az Always On rendelkezésre állási csoportban. Feladatátvétel végrehajtásakor a lekérdezés ismételt futtatásának az elsődleges csomópont módosítását kell jeleznie.

Nem fogja látni ugyanazt a kimenetet a GP szolgáltatásszinttel, mint a fenti, a BC-ben látható. Ennek az az oka, hogy a CSOPORTHÁZIREND szolgáltatásszintje csak egyetlen csomóponton alapul. Használhat alternatív T-SQL-lekérdezést, amely a GP szolgáltatásiszint-példány csomópontján elindított SQL-folyamatot mutatja:

SELECT sqlserver_start_time, sqlserver_start_time_ms_ticks FROM sys.dm_os_sys_info

Az ügyfél rövid kapcsolatvesztése a feladatátvétel során, amely általában egy perc alatt tart, a feladatátvétel végrehajtásának jelzése a szolgáltatási szinttől függetlenül.

Feljegyzés

A feladatátvételi folyamat befejezése (nem a tényleges rövid elérhetetlenség) nagy intenzitású számítási feladatok esetén több percet is igénybe vehet. Ennek az az oka, hogy a példánymotor a feladatátvétel előtt gondoskodik az elsődleges és a másodlagos csomóponton zajló összes aktuális tranzakcióról.

Fontos

A felhasználó által kezdeményezett manuális feladatátvétel funkcionális korlátozásai a következők:

  • Előfordulhat, hogy 15 percenként egy (1) feladatátvételt kezdeményeznek ugyanazon a felügyelt SQL-példányon.
  • A BC-példányok esetében léteznie kell a feladatátvételi kérelem elfogadandó replikáinak kvórumának.
  • BC-példányok esetében nem adható meg, hogy melyik olvasható másodlagos replika kezdeményezze a feladatátvételt.
  • A feladatátvétel csak akkor engedélyezett, ha az új adatbázis első teljes biztonsági mentését automatizált biztonsági mentési rendszerek végzik el.
  • A feladatátvétel nem engedélyezett, ha adatbázis-visszaállítás van folyamatban.

Következő lépések