Uaktualnienie wersji głównej w usłudze Azure Database for MySQL — serwer elastyczny
Uwaga
Ten artykuł zawiera odwołania do terminu slave (element podrzędny), który nie jest już używany przez firmę Microsoft. Po usunięciu terminu z oprogramowania usuniemy go z tego artykułu.
W tym artykule opisano sposób uaktualniania głównej wersji programu MySQL na serwerze elastycznym usługi Azure Database for MySQL. Ta funkcja umożliwia klientom przeprowadzanie uaktualnień w miejscu serwerów MySQL 5.7 do programu MySQL 8.0 bez konieczności przenoszenia danych ani konieczności wprowadzania zmian w aplikacji parametry połączenia.
Ważne
- Czas przestoju zależy od rozmiaru wystąpienia bazy danych i liczby zawartych w nim tabel.
- Podczas inicjowania uaktualnienia wersji głównej dla serwera elastycznego usługi Azure Database for MySQL za pośrednictwem interfejsu API REST lub zestawu SDK należy unikać modyfikowania innych właściwości usługi w tym samym żądaniu. Jednoczesne zmiany nie są dozwolone i mogą prowadzić do niezamierzonych wyników lub niepowodzeń żądań. Przeprowadź modyfikacje właściwości w oddzielnych operacjach po uaktualnieniu.
- Niektóre obciążenia mogą nie wykazywać zwiększonej wydajności po uaktualnieniu z wersji 5.7 do 8.0. Zalecamy ocenę wydajności obciążenia przez najpierw utworzenie serwera repliki (jako serwera testowego), a następnie podwyższenie poziomu do autonomicznego serwera, a następnie uruchomienie obciążenia na serwerze testowym przed wdrożeniem uaktualnienia w środowisku produkcyjnym.
- Uaktualnienie głównej wersji programu MySQL jest nieodwracalne. Wdrożenie może zakończyć się niepowodzeniem, jeśli walidacja wskaże, że serwer jest skonfigurowany z dowolnymi funkcjami, które są usunięte lub przestarzałe. Możesz wprowadzić niezbędne zmiany konfiguracji na serwerze i ponowić próbę uaktualnienia.
Wymagania wstępne
- Repliki do odczytu z programem MySQL w wersji 5.7 należy uaktualnić przed serwerem podstawowym, aby replikacja był zgodna z różnymi wersjami programu MySQL, przeczytaj więcej na temat zgodności replikacji między wersjami programu MySQL.
- Przed uaktualnieniem serwerów produkcyjnych jest teraz łatwiejsze i bardziej wydajne dzięki wbudowanej funkcji Weryfikuj w witrynie Azure Portal. To narzędzie wstępnie sprawdza zgodność schematu bazy danych z programem MySQL 8.0, podkreślając potencjalne problemy. Chociaż oferujemy tę wygodną opcję, zdecydowanie zalecamy również użycie oficjalnego narzędzia do sprawdzania uaktualnień Oracle MySQL w celu przetestowania zgodności schematu bazy danych i wykonania niezbędnego testu regresji w celu zweryfikowania zgodności aplikacji z funkcjami usuniętymi/jako przestarzałe w nowej wersji programu MySQL.
Uwaga
Jeśli używasz oficjalnego narzędzia Oracle do sprawdzania zgodności schematu, mogą wystąpić pewne ostrzeżenia wskazujące nieoczekiwane tokeny w procedurach składowanych, takie jak:
mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'
mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode
Możesz bezpiecznie zignorować te ostrzeżenia. Odnoszą się one do wbudowanych procedur składowanych poprzedzonych mysql., które są używane do obsługi funkcji usługi Azure MySQL. Te ostrzeżenia nie mają wpływu na funkcjonalność bazy danych. - Wyzwól tworzenie kopii zapasowej na żądanie przed przeprowadzeniem uaktualnienia wersji głównej na serwerze produkcyjnym, którego można użyć do wycofania do wersji 5.7 z pełnej kopii zapasowej na żądanie wykonanej.
- Przed kontynuowaniem uaktualnienia wersji głównej upewnij się, że w bazie danych nie ma żadnych aktywnych lub oczekujących transakcji XA, ponieważ trwające transakcje XA mogą potencjalnie spowodować niepowodzenie procesu uaktualniania. Aby uniknąć tego problemu, najpierw sprawdź wszystkie transakcje XA w stanie "przygotowany", uruchamiając polecenie
XA RECOVER;
. W przypadku wszystkich zidentyfikowanych transakcji użyj poleceniaXA ROLLBACK '{xid}'
; aby wycofać każdą transakcję, zastępując element {xid} identyfikatorem transakcji. Przed zainicjowaniem uaktualnienia upewnij się, że wszystkie transakcje XA zostały zatwierdzone lub wycofane, aby zachować spójność transakcji i zmniejszyć ryzyko awarii uaktualnienia.
Przeprowadź planowane uaktualnienie wersji głównej z programu MySQL 5.7 do programu MySQL 8.0 przy użyciu witryny Azure Portal dla serwerów SKU z możliwością rozszerzania
Przeprowadzenie uaktualnienia wersji głównej dla warstwy obliczeniowej jednostki SKU z możliwością rozszerzania usługi Azure Database for MySQL wymaga wyspecjalizowanego przepływu pracy. Dzieje się tak dlatego, że uaktualnienia wersji głównych intensywnie korzystają z zasobów, wymagając znacznego użycia procesora CPU i pamięci. Wystąpienia jednostek SKU z możliwością rozszerzenia oparte na kredytach mogą zmagać się z tymi wymaganiami, co może spowodować niepowodzenie procesu uaktualniania. W związku z tym podczas uaktualniania jednostki SKU z możliwością rozszerzenia system najpierw uaktualnia warstwę obliczeniową do jednostki SKU ogólnego przeznaczenia, aby zapewnić dostępność wystarczających zasobów do uaktualnienia.
Aby przeprowadzić uaktualnienie wersji głównej dla warstwy obliczeniowej jednostki SKU z możliwością rozszerzania usługi Azure Database for MySQL przy użyciu witryny Azure Portal, wykonaj następujące kroki:
W witrynie Azure Portal wybierz istniejący serwer elastyczny usługi Azure Database for MySQL 5.7.
Ważne
Zalecamy przeprowadzenie uaktualnienia najpierw na przywróconej kopii serwera zamiast bezpośrednio uaktualniać środowisko produkcyjne. Zobacz , jak wykonać przywracanie do punktu w czasie.
Na stronie Przegląd na pasku narzędzi wybierz pozycję Uaktualnij.
Ważne
Przed uaktualnieniem przejdź do linku do listy funkcji usuniętych w programie MySQL 8.0. Sprawdź przestarzałe wartości sql_mode i usuń/usuń ich zaznaczenie z bieżącego serwera elastycznego usługi Azure Database for MySQL 5.7 przy użyciu bloku Parametry serwera w witrynie Azure Portal, aby uniknąć niepowodzenia wdrażania. sql_mode z wartościami NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS i NO_TABLE_OPTIONS nie są już obsługiwane w programie MySQL 8.0.
Walidacja zgodności schematu
Przed kontynuowaniem uaktualniania uruchom oficjalne narzędzie do sprawdzania uaktualniania bazy danych MySQL firmy Oracle, aby sprawdzić, czy bieżący schemat bazy danych jest zgodny z programem MySQL 8.0. Ten krok ma kluczowe znaczenie dla zapewnienia bezproblemowego procesu uaktualniania.
Decyzja przed uaktualnieniem
Przed kontynuowaniem uaktualniania należy wybrać warstwę obliczeniową, do której chcesz przeprowadzić uaktualnienie wersji głównej. Domyślnie system uaktualni jednostkę SKU z możliwością zwiększenia wydajności do najbardziej podstawowej jednostki SKU ogólnego przeznaczenia, ale w razie potrzeby możesz zdecydować się na uaktualnienie do wyższej warstwy obliczeniowej.
Uwaga
Chociaż serwer działa w warstwie "Ogólnego przeznaczenia" podczas uaktualniania, opłaty będą naliczane tylko za rzeczywiste zasoby "Ogólnego przeznaczenia" używane w tym okresie.
Decyzja po uaktualnieniu
Zdecyduj, czy po uaktualnieniu zachować jednostkę SKU ogólnego przeznaczenia, czy przywrócić jednostkę SKU z możliwością rozszerzania. Ten wybór zostanie wyświetlony podczas początkowych kroków uaktualniania.
System automatycznie uaktualni warstwę obliczeniową z jednostki SKU z możliwością rozszerzania do wybranej jednostki SKU ogólnego przeznaczenia obsługuje uaktualnienie wersji głównej.
Uaktualnienie wersji głównej
Po uaktualnieniu warstwy obliczeniowej system zainicjuje proces uaktualniania wersji głównej. Monitoruj postęp uaktualniania w witrynie Azure Portal. Proces uaktualniania może zająć trochę czasu w zależności od rozmiaru i aktywności bazy danych.
Uwaga
Jeśli uaktualnienie wersji głównej zakończy się niepowodzeniem, warstwa obliczeniowa nie zostanie automatycznie przywrócona do poprzedniej jednostki SKU z możliwością skalowania. Ma to na celu umożliwienie klientom kontynuowania uaktualnienia wersji głównej bez konieczności ponownego przeprowadzania uaktualnienia warstwy obliczeniowej.
Automatyczna rewersja
W oparciu o decyzję przed uaktualnieniem system zachowa jednostkę SKU ogólnego przeznaczenia lub automatycznie przywróci jednostkę SKU z możliwością skalowania po zakończeniu uaktualniania.
Uwaga
Jeśli wybrano opcję automatycznego przywracania do jednostki SKU z możliwością skalowania, system zostanie domyślnie przywrócony do jednostki SKU B2S.
Przeprowadź planowane uaktualnienie wersji głównej z programu MySQL 5.7 do programu MySQL 8.0 przy użyciu witryny Azure Portal dla serwerów ogólnego przeznaczenia i Krytyczne dla działania firmy jednostek SKU
Aby przeprowadzić uaktualnienie wersji głównej serwera elastycznego usługi Azure Database for MySQL 5.7 przy użyciu witryny Azure Portal, wykonaj następujące kroki.
W witrynie Azure Portal wybierz istniejący serwer elastyczny usługi Azure Database for MySQL 5.7.
Ważne
Zalecamy przeprowadzenie uaktualnienia najpierw na przywróconej kopii serwera zamiast bezpośrednio uaktualniać środowisko produkcyjne. Zobacz , jak wykonać przywracanie do punktu w czasie.
Na stronie Przegląd na pasku narzędzi wybierz pozycję Uaktualnij.
Ważne
Przed uaktualnieniem przejdź do linku do listy funkcji usuniętych w programie MySQL 8.0. Sprawdź przestarzałe wartości sql_mode i usuń/usuń ich zaznaczenie z bieżącego serwera elastycznego usługi Azure Database for MySQL 5.7 przy użyciu bloku Parametry serwera w witrynie Azure Portal, aby uniknąć niepowodzenia wdrażania. sql_mode z wartościami NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS i NO_TABLE_OPTIONS nie są już obsługiwane w programie MySQL 8.0.
Przeprowadzanie weryfikacji przed uaktualnieniem
Przed kontynuowaniem uaktualniania wybierz przycisk Weryfikuj , aby sprawdzić zgodność serwera z programem MySQL 8.0.
Ważne
Jeśli używasz funkcji "Validate" do sprawdzania schematu bazy danych pod kątem zgodności z programem MySQL 8.0, należy pamiętać, że obejmuje zablokowanie tabel w celu dokładnej oceny całego schematu. Ten proces może prowadzić do przekroczenia limitu czasu zapytania.
W związku z tym zaleca się, aby nie przeprowadzać walidacji w godzinach szczytu pracy lub gdy baza danych ma duży ruch. Wybranie okresu niskiej aktywności na potrzeby walidacji może pomóc zminimalizować wpływ na operacje.Na pasku bocznym Uaktualnianie w polu tekstowym MySQL w celu uaktualnienia sprawdź główną wersję programu MySQL, do której chcesz przeprowadzić uaktualnienie , tj. 8.0.
Przed uaktualnieniem serwera podstawowego należy najpierw uaktualnić wszystkie skojarzone serwery repliki do odczytu. Dopóki to nie zostanie ukończone, uaktualnienie zostanie wyłączone.
Na serwerze podstawowym wybierz komunikat potwierdzenia, aby sprawdzić, czy wszystkie serwery repliki zostały uaktualnione, a następnie wybierz pozycję Uaktualnij.
W przypadku repliki do odczytu i autonomicznych serwerów uaktualnienie jest domyślnie włączone.
Przeprowadź planowane uaktualnienie wersji głównej z programu MySQL 5.7 do programu MySQL 8.0 przy użyciu interfejsu wiersza polecenia platformy Azure
Aby przeprowadzić uaktualnienie wersji głównej serwera elastycznego usługi Azure Database for MySQL 5.7 przy użyciu interfejsu wiersza polecenia platformy Azure, wykonaj następujące kroki.
Zainstaluj interfejs wiersza polecenia platformy Azure dla systemu Windows lub użyj interfejsu wiersza polecenia platformy Azure w usłudze Azure Cloud Shell, aby uruchomić polecenia uaktualniania.
To uaktualnienie wymaga wersji 2.40.0 lub nowszej interfejsu wiersza polecenia platformy Azure. Jeśli używasz usługi Azure Cloud Shell, najnowsza wersja jest już zainstalowana. Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Po zalogowaniu uruchom polecenie az mysql server upgrade .
az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version 8
W wierszu polecenia potwierdzenia wpisz y , aby potwierdzić lub n , aby zatrzymać proces uaktualniania, a następnie naciśnij Enter.
Przeprowadź uaktualnienie wersji głównej z programu MySQL 5.7 do programu MySQL 8.0 na serwerze repliki do odczytu przy użyciu witryny Azure Portal
Aby przeprowadzić uaktualnienie wersji głównej serwera elastycznego usługi Azure Database for MySQL 5.7 do programu MySQL 8.0 w repliki do odczytu przy użyciu witryny Azure Portal, wykonaj następujące kroki.
W witrynie Azure Portal wybierz istniejący serwer elastyczny serwera usługi Azure Database for MySQL 5.7 do odczytu.
Na stronie Przegląd na pasku narzędzi wybierz pozycję Uaktualnij.
Ważne
Przed uaktualnieniem przejdź do linku do listy funkcji usuniętych w programie MySQL 8.0. Sprawdź przestarzałe wartości sql_mode i usuń/usuń ich zaznaczenie z bieżącego serwera elastycznego usługi Azure Database for MySQL 5.7 przy użyciu bloku Parametry serwera w witrynie Azure Portal, aby uniknąć niepowodzenia wdrażania.
W sekcji Uaktualnianie wybierz pozycję Uaktualnij, aby uaktualnić serwer elastyczny serwera usługi Azure Database for MySQL 5.7 do odczytu do programu MySQL 8.0.
Zostanie wyświetlone powiadomienie informujące o pomyślnym uaktualnieniu.
Na stronie Przegląd upewnij się, że serwer elastyczny serwera repliki do odczytu usługi Azure Database for MySQL ma uruchomioną wersję 8.0.
Teraz przejdź do serwera podstawowego i przeprowadź uaktualnienie wersji głównej na nim.
Wykonywanie minimalnego przestoju uaktualnienia wersji głównej z programu MySQL 5.7 do programu MySQL 8.0 przy użyciu replik do odczytu
Aby przeprowadzić uaktualnienie wersji głównej serwera elastycznego usługi Azure Database for MySQL 5.7 do programu MySQL 8.0 z minimalnym przestojem przy użyciu serwerów repliki do odczytu, wykonaj następujące kroki.
W witrynie Azure Portal wybierz istniejący serwer elastyczny usługi Azure Database for MySQL 5.7.
Uaktualnij replikę do odczytu do wersji 8.0.
Po potwierdzeniu, że serwer repliki jest uruchomiony w wersji 8.0, zatrzymaj łączenie aplikacji z serwerem podstawowym.
Sprawdź stan replikacji, aby upewnić się, że replika dogoniła element podstawowy, tak aby wszystkie dane były zsynchronizowane i że nie są wykonywane żadne nowe operacje na serwerze podstawowym.
Potwierdź polecenie pokaż stan repliki na serwerze repliki, aby wyświetlić stan replikacji.
SHOW SLAVE STATUS\G
Jeśli stan Slave_IO_Running i Slave_SQL_Running to tak , a wartość Seconds_Behind_Master wynosi 0, replikacja działa prawidłowo. Seconds_Behind_Master wskazuje, jak późno jest replika. Jeśli wartość nie jest 0, replika nadal przetwarza aktualizacje. Po potwierdzeniu, że wartość Seconds_Behind_Master to ***, można bezpiecznie zatrzymać replikację.
Podwyższ poziom repliki do odczytu do podstawowego, zatrzymując replikację.
Ustaw wartość parametru serwera read_only na wartość 0 (OFF), aby rozpocząć zapisywanie na podwyższonym poziomie podstawowym.
Wskaż aplikację na nową podstawową (poprzednią replikę), na której działa serwer 8.0. Każdy serwer ma unikatowy parametry połączenia. Zaktualizuj aplikację, aby wskazywała (poprzednią) replikę zamiast źródła.
Uwaga
Ten scenariusz powoduje tylko przestój podczas wykonywania kroków od 4 do 7.
Często zadawane pytania
Czy spowoduje to przestój serwera, a jeśli tak, jak długo?
Aby mieć minimalny przestój podczas uaktualniania, wykonaj kroki opisane w sekcji Wykonywanie minimalnego przestoju uaktualnienia wersji głównej z programu MySQL 5.7 do programu MySQL 8.0 przy użyciu replik do odczytu. Serwer będzie niedostępny podczas procesu uaktualniania, dlatego zalecamy wykonanie tej operacji podczas planowanego okna obsługi. Szacowany przestój zależy od rozmiaru bazy danych, aprowizowanego rozmiaru magazynu (aprowizowane operacje we/wy i liczby tabel w bazie danych). Czas uaktualniania jest bezpośrednio proporcjonalny do liczby tabel na serwerze. Aby oszacować przestój środowiska serwera, zalecamy najpierw przeprowadzenie uaktualnienia na przywróconej kopii serwera.
Co się stanie z moimi kopiami zapasowymi po uaktualnieniu?
Wszystkie kopie zapasowe (automatyczne/na żądanie) wykonywane przed uaktualnieniem wersji głównej, gdy są używane do przywracania, zawsze będą przywracane do serwera ze starszą wersją (5.7). Wszystkie kopie zapasowe (automatyczne/na żądanie) wykonywane po uaktualnieniu wersji głównej zostaną przywrócone do serwera z uaktualnioną wersją (8.0). Zdecydowanie zaleca się wykonanie kopii zapasowej na żądanie przed przeprowadzeniem uaktualnienia wersji głównej w celu łatwego wycofania.
Obecnie używam jednostki SKU z możliwością rozszerzania, czy firma Microsoft planuje w przyszłości obsługiwać uaktualnienie wersji głównej dla tej jednostki SKU?
Jednostka SKU z możliwością zwiększenia wydajności nie może obsługiwać uaktualnienia wersji głównej ze względu na ograniczenie wydajności tej jednostki SKU.
Jeśli musisz przeprowadzić uaktualnienie wersji głównej w wystąpieniu serwera elastycznego usługi Azure Database for MySQL i obecnie używasz jednostki SKU z możliwością rozszerzania, jednym tymczasowym rozwiązaniem byłoby uaktualnienie do jednostki SKU ogólnego przeznaczenia lub Krytyczne dla działania firmy, przeprowadzenie uaktualnienia, a następnie przełączenie się z powrotem do jednostki SKU z możliwością rozszerzania.
Uaktualnienie do wyższej jednostki SKU może obejmować zmianę cen i spowodować zwiększenie kosztów wdrożenia. Jednak ponieważ proces uaktualniania nie powinien trwać długo, dodatkowe koszty nie powinny być znaczące.