Zainicjowane przez użytkownika ręczne przejście w tryb failover w usłudze SQL Managed Instance
Dotyczy:Azure SQL Managed Instance
W tym artykule opisano sposób ręcznego przełączania węzła podstawowego w tryb failover w warstwach usługi Ogólnego przeznaczenia usługi sql Managed Instance (GP) i Krytyczne dla działania firmy (BC) oraz ręczne przełączanie w tryb failover pomocniczego węzła repliki tylko do odczytu w warstwie usługi BC.
Kiedy należy użyć ręcznego przejścia w tryb failover
Wysoka dostępność to podstawowa część platformy usługi SQL Managed Instance, która działa w sposób niewidoczny dla aplikacji bazy danych. Przejścia w tryb failover z węzłów podstawowych do pomocniczych w przypadku obniżenia wydajności węzła lub wykrycia usterki albo podczas regularnych comiesięcznych aktualizacji oprogramowania są oczekiwanym zachowaniem w przypadku wszystkich aplikacji korzystających z usługi SQL Managed Instance na platformie Azure.
Możesz rozważyć ręczne przejście w tryb failover w usłudze SQL Managed Instance z następujących powodów:
- Testowanie aplikacji pod kątem odporności na pracę w trybie failover przed wdrożeniem ich w środowisku produkcyjnym
- Testowanie kompleksowych systemów pod kątem odporności na usterkę przy automatycznych przejściach w tryb failover
- Testowanie wpływu trybu failover na istniejące sesje bazy danych
- Sprawdzanie, czy tryb failover zmienia wydajność z powodu zmian opóźnienia sieci
- W niektórych przypadkach obniżenia wydajności zapytań ręczne przejście w tryb failover może pomóc w wyeliminowaniu problemu z wydajnością.
Uwaga
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 o testowaniu aplikacji pod kątem gotowości do chmury przy użyciu testowania gotowości do chmury aplikacji pod kątem odporności w trybie failover za pomocą nagrywania wideo usługi SQL Managed Instance .
Inicjowanie ręcznego przejścia w tryb failover w usłudze SQL Managed Instance
Wymagane uprawnienia RBAC platformy Azure
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
Korzystanie z programu PowerShell
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
Korzystanie z interfejsu wiersza polecenia (CLI)
Upewnij się, że zainstalowano najnowsze skrypty interfejsu wiersza polecenia.
Użyj polecenia az sql mi failover interfejsu wiersza polecenia 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.
az sql mi failover -g myresourcegroup -n myinstancename
Użyj następującego polecenia interfejsu wiersza polecenia, aby przejść w tryb failover do odczytu węzła pomocniczego, który ma zastosowanie tylko do warstwy usług BC.
az sql mi failover -g myresourcegroup -n myinstancename --replica-type ReadableSecondary
Korzystanie z interfejsu API REST
W przypadku zaawansowanych użytkowników, którzy prawdopodobnie musieliby zautomatyzować tryb failover swoich wystąpień zarządzanych SQL na potrzeby implementowania potoku ciągłego testowania lub zautomatyzowanego ograniczania wydajności, tę funkcję można wykonać za pomocą inicjowania trybu failover za pośrednictwem wywołania interfejsu API. Aby uzyskać szczegółowe informacje, zobacz SQL Managed Instances — interfejs API REST trybu failover.
Aby zainicjować tryb failover przy użyciu wywołania interfejsu API REST, najpierw wygeneruj token uwierzytelniania przy użyciu wybranego klienta interfejsu API. Wygenerowany token uwierzytelniania jest używany jako właściwość Autoryzacja w nagłówku żądania interfejsu API i jest obowiązkowy.
Poniższy kod jest przykładem identyfikatora URI interfejsu API do wywołania:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/failover?api-version=2019-06-01-preview
Następujące właściwości należy przekazać w wywołaniu interfejsu API:
Właściwość interfejsu API | Parametr |
---|---|
subscriptionId | Identyfikator subskrypcji, do którego wdrożono wystąpienie zarządzane |
resourceGroupName | Grupa zasobów zawierająca wystąpienie zarządzane |
managedInstanceName | Nazwa wystąpienia zarządzanego |
replicaType | (Opcjonalnie) (Primary lub ReadableSecondary). Te parametry reprezentują typ repliki, który ma zostać przełączony w tryb failover: podstawowy lub możliwy do odczytu pomocniczy. Jeśli nie zostanie określony, tryb failover jest domyślnie inicjowany w repliki podstawowej. |
api-version | Wartość statyczna i obecnie musi mieć wartość "2019-06-01-preview" |
Interfejs API odpowiada za pomocą jednego z następujących dwóch:
- Zaakceptowano 202
- Jeden z 400 błędów żądania.
Stan operacji można śledzić za pomocą przeglądania odpowiedzi interfejsu API w nagłówkach odpowiedzi. Aby uzyskać więcej informacji, zobacz Stan asynchronicznych operacji platformy Azure.
Monitorowanie trybu failover
Aby monitorować postęp trybu failover zainicjowanego przez użytkownika dla wystąpienia bc, wykonaj następujące zapytanie T-SQL w ulubionym kliencie (takim jak program SSMS) w usłudze SQL Managed Instance. Odczytuje on widok systemu sys.dm_hadr_fabric_replica_states i repliki raportów dostępne w wystąpieniu. Odśwież to samo zapytanie po zainicjowaniu ręcznego przejścia w tryb failover.
SELECT DISTINCT replication_endpoint_url, fabric_replica_role_desc FROM sys.dm_hadr_fabric_replica_states
Przed zainicjowaniem trybu failover dane wyjściowe wskazują bieżącą replikę podstawową w warstwie usługi BC zawierającej jeden podstawowy i trzy sekundy w zawsze włączonej grupie dostępności. Po wykonaniu trybu failover ponowne uruchomienie tego zapytania wymagałoby wskazania zmiany węzła podstawowego.
Nie będzie można zobaczyć tych samych danych wyjściowych z warstwą usługi gp co powyżej pokazana dla bc. Dzieje się tak, ponieważ warstwa usługi gp jest oparta tylko na jednym węźle. Możesz użyć alternatywnego zapytania T-SQL pokazującego czas rozpoczęcia procesu SQL w węźle dla wystąpienia warstwy usługi gp:
SELECT sqlserver_start_time, sqlserver_start_time_ms_ticks FROM sys.dm_os_sys_info
Krótka utrata łączności z klientem podczas pracy w trybie failover, zwykle trwa poniżej minuty, jest wskazaniem wykonania trybu failover niezależnie od warstwy usługi.
Uwaga
Ukończenie procesu pracy w trybie failover (a nie rzeczywista krótka niedostępność) może potrwać kilka minut w przypadku obciążeń o wysokiej intensywności . Dzieje się tak, ponieważ aparat wystąpień zajmuje się wszystkimi bieżącymi transakcjami w ramach węzła podstawowego i nadrabia zaległości w węźle pomocniczym, zanim będzie mógł przejść w tryb failover.
Ważne
Ograniczenia funkcjonalne ręcznego przechodzenia w tryb failover inicjowane przez użytkownika to:
- Może istnieć jeden (1) tryb failover zainicjowany w tym samym wystąpieniu zarządzanym SQL co 15 minut.
- W przypadku wystąpień bc musi istnieć kworum replik, aby żądanie trybu failover zostało zaakceptowane.
- W przypadku wystąpień BC nie można określić, która replika pomocnicza do odczytu ma inicjować tryb failover.
- Przejście w tryb failover nie będzie dozwolone do momentu ukończenia pierwszej pełnej kopii zapasowej nowej bazy danych przez zautomatyzowane systemy kopii zapasowych.
- Tryb failover nie będzie dozwolony, jeśli istnieje przywracanie bazy danych w toku.
Następne kroki
- Dowiedz się więcej o testowaniu aplikacji pod kątem gotowości do chmury przy użyciu testowania gotowości do chmury aplikacji pod kątem odporności w trybie failover za pomocą nagrywania wideo usługi SQL Managed Instance .
- Dowiedz się więcej o wysokiej dostępności wystąpienia zarządzanego Wysokiej dostępności dla usługi Azure SQL Managed Instance.
- Aby zapoznać się z omówieniem, zobacz Co to jest usługa Azure SQL Managed Instance?.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla