Ćwiczenie — wysoka dostępność ogólnego przeznaczenia
W poprzedniej lekcji przedstawiono architekturę wysokiej dostępności usługi Azure SQL. W tym ćwiczeniu dowiesz się, jak warstwa Ogólnego przeznaczenia usługi Azure SQL Database działa podobnie do lokalnego wystąpienia klastra trybu failover. Ta funkcja może być czasochłonna lub trudna do skonfigurowania lokalnie, ale w przypadku usługi Azure SQL jest już wbudowana.
W tym ćwiczeniu użyjesz narzędzia ostress, które mogło być używane w poprzednim module do utworzenia obciążenia. Następnie zainicjujesz tryb failover przy użyciu modułu Azure PowerShell w usłudze Azure Cloud Shell. Na koniec zobaczysz efekt przełączenia w tryb failover w obciążeniu narzędzia ostress.
Podstawowa wysoka dostępność w usłudze Azure SQL — warstwa usługi Ogólnego przeznaczenia
W tym ćwiczeniu należy wykonać następujące kroki:
- Uruchomienie obciążenia narzędzia ostress.
- Potwierdzenie prawidłowej konfiguracji środowiska.
- Zainicjowanie trybu failover usługi Azure SQL Database przy użyciu programu PowerShell.
- Wyświetlenie wyników w narzędziu ostress.
- Wyszukanie oznak przejścia w tryb failover w portalu.
Uruchamianie obciążenia narzędzia ostress
Pierwszym krokiem jest utworzenie długotrwałego obciążenia. To obciążenie pozwala zobaczyć, jak tryb failover wpływa na możliwość odczytu/zapisu danych i jak długo trwa przejście w tryb failover w warstwie usługi Ogólnego przeznaczenia dla usługi Azure SQL Database. Będziesz używać narzędzia ostress.
Otwórz nowe okno wiersza polecenia na komputerze lokalnym. Użyj polecenia
cd
, aby przejść do katalogu we wcześniej sklonowanym lub pobranym repozytorium, w którym zawarto moduł dostępności. Na przykład można użyć tego polecenia:cd C:\Users\username\mslearn-azure-sql-fundamentals\05-Availability
Plik wykonywalny narzędzia ostress znajduje się w tym folderze. (Jest mały). Obciążenie ostress łączy się i uruchamia proste zapytanie 50 000 razy.
Aby uruchomić obciążenie, użyj następującego skryptu narzędzia ostress. Zastąp ciąg
serverName
nazwą serwera logicznego usługi Azure SQL Database. Zastąp ciągpassword
hasłem..\ostress.exe -S"serverName.database.windows.net" -Q"SELECT COUNT(*) FROM SalesLT.Customer" -U"cloudadmin" -d"AdventureWorks" -P"password" -n1 -r50000
Jeśli obciążenie działa prawidłowo, wynik zapytania
847
powinien być wielokrotnie wyświetlany w oknie wiersza polecenia.Jeśli chcesz zatrzymać uruchamianie obciążenia narzędzia ostress przed jego ukończeniem, możesz wybrać kombinację klawiszy Ctrl + C w terminalu.
Jeśli zechcesz ponownie uruchomić obciążenie, możesz uruchomić polecenie jeszcze raz.
Inicjowanie trybu failover i obserwowanie wyników przy użyciu programu PowerShell w usłudze Azure Cloud Shell
W terminalu usługi Azure Cloud Shell w prawej części tej strony uruchom następujący skrypt programu PowerShell, aby skonfigurować środowisko:
$resourceGroup = "<rgn>[sandbox resource group name]</rgn>" $database = "AdventureWorks" $server = Get-AzureRmSqlServer -ResourceGroupName $resourceGroup $server = $server.ServerName # Specify your default resource group and Azure SQL Database logical server az configure --defaults group=$resourceGroup sql-server=$server # Confirm the defaults are set az configure --list-defaults
Skonfiguruj okna tak, aby widzieć tę przeglądarkę i okno wiersza polecenia w jednym widoku w tym samym czasie.
Uruchom następujący kod w terminalu usługi Azure Cloud Shell:
# Create a failover Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup ` -ServerName $server ` -DatabaseName $database
Obserwuj wyniki w narzędziu ostress z poziomu okna wiersza polecenia. Podczas działania tego polecenia zwróć uwagę na wszelkie zmiany widoczne w oknie wiersza polecenia. Zauważysz, że po przejściu w tryb failover nie można uzyskać dostępu do bazy danych. Przejście w tryb failover zakończy się po około 30 sekundach i zobaczysz, że obciążenie znów działa pomyślnie. Logika ponowień w aplikacji jest ważna, ponieważ jeśli platforma Azure przejdzie w tryb failover (z kilku powodów) nie ma potrzeby, aby aplikacja przestała działać na dłużej, niż trwa tryb failover.
Możliwość przejścia w tryb failover przy użyciu polecenia może być przydatne w pewnych scenariuszach. Należy pamiętać, że usługa ogranicza wykonywanie tych operacji zbyt często. Uruchom następujące polecenie, aby spróbować ponownie przejść w tryb failover.
# Create a failover again Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup ` -ServerName $server ` -DatabaseName $database
Zobaczysz błąd podobny do tego:
Invoke-AzSqlDatabaseFailover: Long running operation failed with status 'Failed'. Additional Info:'There was a recent failover on the database or pool if database belongs in an elastic pool. At least 15 minutes must pass between database failovers.'
W oknie wiersza polecenia można teraz zatrzymać obciążenie, wybierając okno, a następnie wybierając klawisze Ctrl+C. Możesz pozostawić otwarte okno, ponieważ użyjesz tego samego obciążenia w następnym ćwiczeniu.
Możesz się zastanawiać, czy istnieje sposób, aby sprawdzić, czy nastąpiło przejście do trybu failover. Obecnie nie ma żadnego jasnego komunikatu „Nastąpiła przejście w tryb failover”, ale dobrym wskaźnikiem może być funkcja Resource Health.
W witrynie Azure Portal przejdź do bazy danych usługi Azure SQL Database. W okienku po lewej stronie w obszarze Pomoc wybierz pozycję Resource Health. Od 5 do 15 minut po przejściu w tryb failover może pojawić się zdarzenie kondycji podobne do przedstawionego na poniższym zrzucie ekranu. To zdarzenie może wskazywać kilka rzeczy, ale jedną z możliwości jest sytuacja, w której coś się wydarzyło i nastąpiło przełączenie platformy Azure w tryb failover.