Ponowne uruchamianie wystąpienia przy użyciu ręcznego przejścia w tryb failover zainicjowanego przez użytkownika — Azure SQL Managed Instance

Dotyczy: Azure SQL Managed Instance

W tym artykule wyjaśniono, jak ponownie uruchomić usługę Azure SQL Managed Instance , wykonując ręczne przejście w tryb failover zainicjowane przez użytkownika do pomocniczego węzła obliczeniowego przy użyciu programu PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST.

Istnieje możliwość przejścia w tryb failover węzła podstawowego w warstwach usługi Ogólnego przeznaczenia (GP) i Krytyczne dla działania firmy (BC) oraz ręczne przełączenie w tryb failover pomocniczego węzła repliki tylko do odczytu w warstwie usługi BC.

Uwaga

Tryb failover w tym artykule dotyczy uruchamiania procesu aparatu bazy danych programu SQL Server w węźle pomocniczym i nie jest związany z trybem failover między regionami w grupach trybu failover.

Kiedy należy użyć ręcznego przejścia w tryb failover

Dostępność, podstawowa część platformy SQL Managed Instance, działa w sposób niewidoczny dla aplikacji bazy danych, zapewniając lokalne węzły obliczeniowe rezerwowe do hostowania procesu aparatu bazy danych programu SQL Server. Tryb failover występuje, gdy proces aparatu bazy danych programu SQL Server jest przełączony w tryb offline w podstawowym węźle obliczeniowym i jest w trybie online w węźle pomocniczym obliczeniowym. Zazwyczaj przejścia w tryb failover między węzłami obliczeniowymi wystąpienia zarządzanego SQL są automatyczne i zarządzane przez platformę po wykryciu błędu, obniżonej wydajności węzła lub podczas regularnych comiesięcznych aktualizacji oprogramowania.

Cała operacja trybu failover polega na przeniesieniu procesu aparatu bazy danych programu SQL Server do trybu online w węźle pomocniczym, weryfikacji stanu bazy danych, a następnie przekierowaniu połączeń klienta do nowego węzła podstawowego. Połączenia klienta kończą się niepowodzeniem tylko przez krótki czas, zazwyczaj poniżej minuty, podczas ostatniego kroku operacji trybu failover.

Ręczne przejście w tryb failover może spowodować ponowne uruchomienie procesu aparatu w innym węźle z następujących powodów:

  • Nieudane logowania lub spowolnienie z powodu problemów z wydajnością.
  • Testowanie aplikacji pod kątem odporności trybu failover przed wdrożeniem w środowisku produkcyjnym.
  • Testowanie kompleksowe systemy pod kątem odporności błędów na automatycznych przejściach w tryb failover.
  • Testowanie wpływu trybu failover na istniejące sesje bazy danych.
  • Obniżenie wydajności zapytań (ponowne uruchomienie wystąpienia może pomóc rozwiązać problem z wydajnością).

Zapewnienie odporności aplikacji na tryb failover przed wdrożeniem w środowisku produkcyjnym pomaga ograniczyć ryzyko błędów aplikacji w środowisku produkcyjnym i przyczynia się do dostępności aplikacji dla klientów. Dowiedz się więcej na temat testowania aplikacji pod kątem gotowości do chmury, wykonując następujące wideo:

W poniższej tabeli opisano oczekiwane zachowanie wystąpienia zarządzanego SQL podczas operacji trybu failover na podstawie warstwy usługi i modelu dostępności:

Warstwa usług Model dostępności Oczekiwane zachowanie trybu failover Potencjalne zachowanie trybu failover (wyjątki)
Ogólnego przeznaczenia Nadmiarowość lokalna
(Pojedyncza strefa dostępności)
Proces SQL jest uruchamiany ponownie na tej samej maszynie wirtualnej. Proces SQL jest uruchamiany ponownie na innej maszynie wirtualnej.
Ogólnego przeznaczenia Nadmiarowość strefy (wersja zapoznawcza)
(Wiele stref dostępności)
Proces SQL jest uruchamiany ponownie na tej samej maszynie wirtualnej. Proces SQL jest uruchamiany ponownie na innej maszynie wirtualnej.
Krytyczne dla działania firmy Nadmiarowość lokalna
(Pojedyncza strefa dostępności)
Losowa replika pomocnicza jest promowana do podstawowej. Nie dotyczy
Krytyczne dla działania firmy Nadmiarowość strefy
(Wiele stref dostępności)
Losowa replika pomocnicza jest promowana do podstawowej w tej samej lub innej strefie dostępności. Nie dotyczy

Uprawnienia

Użytkownicy inicjujący tryb failover muszą mieć jedną z następujących ról platformy Azure:

  • Rola właściciela subskrypcji lub
  • Rola współautora wystąpienia zarządzanego SQL lub
  • Rola niestandardowa z następującym uprawnieniem:
    • Microsoft.Sql/managedInstances/failover/action

Ponowne uruchamianie wystąpienia przy użyciu ręcznego przełączania w tryb failover

Wystąpienie można ponownie uruchomić przy użyciu ręcznego przejścia w tryb failover przy użyciu programu PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST.

Minimalna wersja modułu Az.Sql musi być w wersji 2.9.0. Rozważ użycie usługi Azure Cloud Shell w witrynie Azure Portal, która zawsze ma najnowszą dostępną wersję programu PowerShell.

Aby zainstalować wymagane moduły platformy Azure, użyj następującego skryptu programu PowerShell. Ponadto wybierz subskrypcję, w której znajduje się wystąpienie zarządzane SQL, do którego chcesz przejść w tryb failover.

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

Connect-AzAccount
Select-AzSubscription -SubscriptionId $subscription

Użyj polecenia programu PowerShell Invoke-AzSqlInstanceFailover z poniższym przykładem, aby zainicjować tryb failover węzła podstawowego, który ma zastosowanie zarówno do warstwy usługi BC, jak i GP.

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

Użyj następującego polecenia programu PowerShell, aby przejść w tryb failover do odczytu pomocniczego węzła, który ma zastosowanie tylko do warstwy usług BC.

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

Monitorowanie trybu failover

Monitorowanie postępu trybu failover zainicjowanego przez użytkownika różni się w przypadku wystąpień w warstwach usług Krytyczne dla działania firmy i Ogólnego przeznaczenia.

Aby monitorować postęp pracy w trybie failover zainicjowanym przez użytkownika, użyj:

  • sys.dm_os_sys_info sprawdzić czas pracy systemu dla warstwy usługi Ogólnego przeznaczenia.
  • sys.dm_hadr_fabric_replica_statesaby sprawdzić dostępne repliki dla warstwy usługi Krytyczne dla działania firmy.

Ostatnim krokiem procesu pracy w trybie failover jest przekierowanie połączeń klienta do nowego węzła podstawowego. Krótka utrata łączności z klientem podczas pracy w trybie failover, zazwyczaj trwa poniżej minuty, wskazuje, że przejście w tryb failover zakończyło się pomyślnie — niezależnie od warstwy usługi.

Warstwa usługi Ogólnego przeznaczenia

Poniższy przykład języka T-SQL przedstawia czas działania procesu SQL w węźle dla warstwy usługi Ogólnego przeznaczenia :

SELECT sqlserver_start_time, sqlserver_start_time_ms_ticks FROM sys.dm_os_sys_info

Czas rozpoczęcia procesu SQL to czas rozpoczęcia procesu aparatu bazy danych programu SQL Server w węźle. Czas ponownego uruchomienia po zakończeniu pracy w trybie failover. Uruchom to zapytanie przed i po zainicjowaniu trybu failover wystąpienia w warstwie usługi Ogólnego przeznaczenia, aby monitorować postęp operacji trybu failover.

warstwa usługi Krytyczne dla działania firmy

Poniższy przykład języka T-SQL wskazuje, który węzeł jest obecnie repliką podstawową dla warstwy usługi Krytyczne dla działania firmy:

SELECT DISTINCT replication_endpoint_url, fabric_replica_role_desc FROM sys.dm_hadr_fabric_replica_states

Węzeł hostujący zmianę repliki podstawowej po zakończeniu pracy w trybie failover. Uruchom to zapytanie przed i po zainicjowaniu trybu failover wystąpienia w warstwie usługi Krytyczne dla działania firmy, aby monitorować postęp operacji trybu failover.

Uwaga

Pełny proces trybu failover może potrwać kilka minut podczas obciążeń o wysokiej intensywności , ponieważ aparat wystąpień zapewnia, że transakcje w węźle pomocniczym są przechwytywane do transakcji z węzła podstawowego przed zainicjowaniem trybu failover.

Ograniczenia

Rozważ następujące ograniczenia funkcjonalne ręcznego przechodzenia w tryb failover inicjowane przez użytkownika:

  • W tym samym wystąpieniu zarządzanym SQL co 15 minut może istnieć tylko jeden (1) tryb failover zainicjowany w tym samym wystąpieniu zarządzanym SQL.
  • Tryby failover nie są dozwolone:
    • Do momentu ukończenia pierwszej pełnej kopii zapasowej nowej bazy danych przez zautomatyzowane systemy kopii zapasowych.
    • jeśli trwa przywracanie bazy danych.
  • Na przykład w warstwie usługi Krytyczne dla działania firmy:
    • Aby żądanie trybu failover zostało zaakceptowane, musi istnieć kworum replik.
    • Nie można określić, która replika pomocnicza z możliwością odczytu ma zainicjować tryb failover.