Migrowanie usługi Azure Database for MySQL — pojedynczy serwer do serwera elastycznego przy użyciu interfejsu wiersza polecenia importowania usługi Azure Database for MySQL
DOTYCZY: Azure Database for MySQL — pojedynczy serwer
Interfejs wiersza polecenia importowania usługi Azure Database for MySQL (ogólnie dostępny) umożliwia bezproblemową migrację usługi Azure Database for MySQL — pojedynczy serwer do serwera elastycznego. Używa technologii tworzenia i przywracania kopii zapasowych migawek w celu zaoferowania prostej i szybkiej ścieżki migracji w celu przywrócenia fizycznych plików danych serwera źródłowego na serwer docelowy. Po operacji importowania możesz skorzystać z zalet serwera elastycznego, w tym lepszej ceny i wydajności, szczegółowej kontroli nad konfiguracją bazy danych i niestandardowych okien obsługi.
Na podstawie danych wejściowych użytkownika zajmuje się aprowizowaniem docelowego serwera elastycznego, a następnie utworzeniem kopii zapasowej serwera źródłowego i przywróceniem obiektu docelowego. Kopiuje pliki danych, parametry serwera, zgodne reguły zapory i właściwości serwera — warstwa, wersja, sku-name, rozmiar magazynu, lokalizacja, geograficznie nadmiarowa kopia zapasowa, dostęp publiczny, tagi, automatyczne zwiększanie, przechowywanie kopii zapasowych dni, administrator-użytkownik i hasło administratora z pojedynczego do wystąpienia serwera elastycznego.
Interfejs wiersza polecenia importu usługi Azure Database for MySQL obsługuje migrację niemal zerowego przestoju, wykonując najpierw operację importowania w trybie offline, a w związku z tym użytkownicy mogą skonfigurować replikację danych między źródłem a obiektem docelowym w celu przeprowadzenia migracji online.
W tym samouczku pokazano, jak przeprowadzić migrację pojedynczego serwera usługi Azure Database for MySQL do serwera elastycznego za pomocą polecenia interfejsu wiersza polecenia importowania usługi Azure Database for MySQL.
Co nowego?
- Operacja importowania usługi Azure Database for MySQL dla pojedynczych serwerów ze starszą architekturą magazynu (magazyn ogólnego przeznaczenia w wersji 1) jest teraz obsługiwana. Przed zainicjowaniem operacji importowania należy ustawić parametr log_bin=ON dla wystąpienia pojedynczego serwera ze starszym magazynem. W tym celu utwórz replikę do odczytu dla wystąpienia pojedynczego serwera, a następnie usuń ją. Ta operacja spowoduje ustawienie parametru log_bin na WŁ., a następnie można wyzwolić operację importowania w celu przeprowadzenia migracji na serwer elastyczny. (Luty 2024)
Uruchamianie usługi Azure Cloud Shell
Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której można użyć do wykonania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.
Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również otworzyć usługę Cloud Shell na osobnej karcie przeglądarki, przechodząc do .https://shell.azure.com/bash Wybierz pozycję Kopiuj , aby skopiować bloki kodu, wklej go w usłudze Cloud Shell, a następnie wybierz Enter , aby go uruchomić.
Jeśli wolisz zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten samouczek wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.54.0 lub nowszej. Uruchom polecenie az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Ustawienia
Musisz zalogować się do swojego konta przy użyciu polecenia az sign-in . Zanotuj właściwość id, która odnosi się do identyfikatora subskrypcji konta platformy Azure.
az login
Wybierz określoną subskrypcję, w której znajduje się źródłowa usługa Azure Database for MySQL — pojedynczy serwer, korzystając z polecenia az account set . Zanotuj wartość id z danych wyjściowych az login , aby użyć jako wartości argumentu subskrypcji w poleceniu . Jeśli masz wiele subskrypcji, wybierz odpowiednią subskrypcję, w której znajduje się źródłowa usługa Azure Database for MySQL — pojedynczy serwer. Aby uzyskać wszystkie subskrypcje, użyj polecenia az account list.
az account set --subscription <subscription id>
Ograniczenia i wymagania wstępne
Jeśli źródłowy pojedynczy serwer usługi Azure Database for MySQL ma podstawową jednostkę SKU, rozważ określenie jednostki SKU w poleceniu importu jako Ogólnego przeznaczenia, aby złagodzić wszelkie problemy z brakiem pamięci. Jednostkę SKU można zmienić z powrotem na Burstable w zmigrowanym wystąpieniu serwera elastycznego po migracji.
Jeśli źródłowy pojedynczy serwer usługi Azure Database for MySQL ma wersję aparatu w wersji 8.x, upewnij się, że uaktualnij sterownik klienta .NET serwera źródłowego do wersji 8.0.32, aby uniknąć niezgodności kodowania po migracji do serwera elastycznego.
Źródłowa usługa Azure Database for MySQL — pojedynczy serwer i docelowy serwer usługi Azure Database for MySQL — serwer elastyczny muszą znajdować się w tej samej subskrypcji, grupie zasobów, regionie i w tej samej wersji bazy danych MySQL. Importowanie między subskrypcjami, grupami zasobów, regionami i wersjami nie jest możliwe.
Wersje programu MySQL obsługiwane przez interfejs wiersza polecenia importu usługi Azure Database for MySQL to 5.7 i 8.0. Jeśli korzystasz z innej głównej wersji programu MySQL na pojedynczym serwerze, pamiętaj o uaktualnieniu wersji w wystąpieniu pojedynczego serwera przed wyzwoleniem polecenia importu.
Jeśli wystąpienie usługi Azure Database for MySQL — pojedynczy serwer ma parametr "lower_case_table_names" ustawiony na 2, a aplikacja użyła tabel partycji, operacja importowania spowoduje uszkodzenie tabel partycji. Zaleca się ustawienie wartości "lower_case_table_names" na 1 dla wystąpienia usługi Azure Database for MySQL — pojedynczy serwer, aby kontynuować operację importowania bez uszkodzenia.
Importowanie do istniejącego serwera elastycznego Usługi Azure MySQL nie jest obsługiwane. Polecenie interfejsu wiersza polecenia inicjuje importowanie nowego serwera elastycznego Usługi Azure MySQL.
Jeśli elastyczny serwer docelowy jest aprowizowany jako niedostępny (wysoka dostępność wyłączona) podczas aktualizowania parametrów polecenia interfejsu wiersza polecenia, można go później przełączyć na tę samą strefę wysokiej dostępności, ale nie strefowo nadmiarową wysoką dostępność.
W przypadku wystąpień pojedynczego serwera z włączonym kluczem cmK polecenie Importowanie usługi Azure Database for MySQL wymaga podania obowiązkowych parametrów wejściowych do włączenia klucza cmK na docelowym serwerze elastycznym.
Jeśli wystąpienie pojedynczego serwera ma włączone podwójne szyfrowanie infrastruktury, włączenie klucza zarządzanego przez klienta (CMK) w docelowym wystąpieniu serwera elastycznego zaleca się obsługę podobnych funkcji. Możesz również włączyć klucz zarządzania kluczami na serwerze docelowym za pomocą parametrów wejściowych interfejsu wiersza polecenia importu usługi Azure Database for MySQL lub po migracji.
Jeśli w wystąpieniu pojedynczego serwera włączono opcję "Magazyn zapytań", zaleca się włączenie dzienników wolnych zapytań w docelowym wystąpieniu serwera elastycznego w celu obsługi podobnych funkcji. Dzienniki wolnych zapytań na docelowym serwerze elastycznym można skonfigurować, wykonując kroki opisane tutaj. Następnie możesz wyświetlić szczegółowe informacje o zapytaniach przy użyciu szablonu skoroszytów.
Ważne zagadnienia dotyczące korzystania z sieci wirtualnej (VNet) i interfejsu wiersza polecenia importu usługi Azure Database for MySQL: — Unikaj współbieżnych operacji w sieci wirtualnej: podczas wykonywania operacji importowania należy powstrzymać się od wykonywania innych operacji w tej samej sieci wirtualnej. Jeśli istnieją inne operacje w toku, poczekaj, aż zostaną one w pełni ukończone przed rozpoczęciem operacji importowania. Zapobiega to wszelkim potencjalnym konfliktom lub rywalizacji o zasoby. - Ogranicz jednoczesne migracje serwerów: jeśli planujesz migrację wielu serwerów znajdujących się w tej samej sieci wirtualnej, nie należy inicjować tych migracji jednocześnie. Może to spowodować zablokowanie operacji w sieci wirtualnej, co prowadzi do wydłużenia czasu oczekiwania, a nawet przekroczenia limitu czasu.
Jeśli wystąpienie pojedynczego serwera ma starszą architekturę magazynu (magazyn ogólnego przeznaczenia w wersji 1), należy ustawić parametr log_bin=ON dla wystąpienia pojedynczego serwera przed zainicjowanie operacji importowania. W tym celu utwórz replikę do odczytu dla wystąpienia pojedynczego serwera, a następnie usuń ją. Ta operacja spowoduje ustawienie parametru log_bin na WŁ., a następnie można wyzwolić operację importowania w celu przeprowadzenia migracji na serwer elastyczny.
Jeśli wystąpienie pojedynczego serwera ma włączoną usługę Advanced Threat Protection, musisz włączyć zaawansowaną ochronę przed zagrożeniami w zmigrowanym wystąpieniu serwera elastycznego po migracji, wykonując kroki [tutaj] (/azure/mysql/flexible-server/advanced-threat-protection-setting?view=azure-cli-latest).
Jeśli wystąpienie pojedynczego serwera ma wersję aparatu w wersji 8.0, rozważ wykonanie następujących akcji, aby uniknąć jakichkolwiek zmian powodujących niezgodność ze względu na różnice wersji pomocniczej społeczności między wystąpieniem pojedynczego i elastycznego serwera:
Uruchom następującą instrukcję, aby sprawdzić, czy wystąpienie może mieć wpływ na błędne informacje histogramu. Jeśli odpowiednie tabele są danymi wyjściowymi, zalecamy odwołanie się do https://dev.mysql.com/blog-archive/histogram-statistics-in-mysql/ usuwania informacji histogramu, a następnie ponownego utworzenia ich na serwerze elastycznym. Warto zauważyć, że histogram inf to tylko statystyczne informacje o kolumnach, a te informacje istnieją tylko w tabelach systemowych, więc usunięcie informacji histogramu nie wpłynie na dane tabeli.
SELECT DISTINCT SCHEMA_NAME, TABLE_NAME FROM `information_schema`.`column_statistics`;
Uruchom następujące polecenie, aby sprawdzić tabele, które mogą mieć kolejność kolumn tabeli, które mogą być niezorganizowane. Jeśli to sprawdzenie identyfikuje wszystkie tabele, których dotyczy problem, należy zrzucić wszystkie dane z tych tabel, a następnie zaimportować je z powrotem. Niepowodzenie tej czynności może prowadzić do sekwencji kolumn w dzienniku binlogu, który nie pasuje do sekwencji kolumn w tabelach użytkownika. Ta rozbieżność może uniemożliwić użytkownikom konfigurowanie replikacji, przywracanie danych, włączanie wysokiej dostępności i innych operacji.
SELECT table_schema, table_name, COUNT(*) AS column_count, MAX(ORDINAL_POSITION) AS max_ordinal_position FROM information_schema.columns GROUP BY table_schema, table_name HAVING column_count != max_ordinal_position;
Obsługiwane jest tylko importowanie na poziomie wystąpienia. Nie jest dostępna opcja importowania wybranych baz danych w ramach wystąpienia.
Poniższe elementy powinny zostać skopiowane ze źródła do elementu docelowego przez użytkownika po operacji importowania:
- Repliki do odczytu
- Ustawienia strony monitorowania (alerty, metryki i ustawienia diagnostyczne)
- Wszystkie skrypty programu Terraform/interfejsu wiersza polecenia hostowane przez Użytkownika w celu zarządzania wystąpieniem pojedynczego serwera powinny zostać zaktualizowane przy użyciu odwołań serwera elastycznego
Wyzwalanie operacji importowania usługi Azure Database for MySQL w celu migracji z usługi Azure Database for MySQL — pojedynczy serwer do serwera elastycznego
Wyzwól operację importowania usługi Azure Database for MySQL za az mysql flexible-server import create
pomocą polecenia . Następujące polecenie tworzy docelowy serwer elastyczny i wykonuje importowanie na poziomie wystąpienia ze źródła do docelowego miejsca docelowego przy użyciu wartości domyślnych i wartości usługi z lokalnego kontekstu interfejsu wiersza polecenia platformy Azure:
az mysql flexible-server import create --data-source-type
--data-source
--resource-group
--name
[--sku-name]
[--tier]
[--version]
[--storage-size]
[--mode]
[--admin-password]
[--admin-user]
[--auto-scale-iops {Disabled, Enabled}]
[--backup-identity]
[--backup-key]
[--backup-retention]
[--database-name]
[--geo-redundant-backup {Disabled, Enabled}]
[--high-availability {Disabled, SameZone, ZoneRedundant}]
[--identity]
[--iops]
[--key]
[--location]
[--private-dns-zone]
[--public-access]
[--resource-group]
[--standby-zone]
[--storage-auto-grow {Disabled, Enabled}]
[--subnet]
[--subnet-prefixes]
[--tags]
[--vnet]
[--zone]
Poniższy przykład zawiera informacje o źródle danych dla pojedynczego serwera o nazwie "test-single-server" i docelowe informacje o serwerze elastycznym, tworzy docelowy serwer elastyczny o nazwie test-flexible-server
w westus
lokalizacji (tej samej lokalizacji co źródłowy pojedynczy serwer) i wykonuje importowanie ze źródła do miejsca docelowego. Polecenia importu usługi Azure Database MySQL są mapowane na odpowiednią warstwę, wersję, nazwę sku, rozmiar magazynu, lokalizację, geograficznie nadmiarową kopię zapasową, dostęp publiczny, tagi, automatyczne zwiększanie, przechowywanie kopii zapasowych w dniach, administrator-użytkownik i hasło administratora z pojedynczego serwera do serwera elastycznego jako inteligentne wartości domyślne, jeśli żadne dane wejściowe nie są dostarczane do polecenia interfejsu wiersza polecenia. Możesz zastąpić inteligentne wartości domyślne, podając dane wejściowe dla tych opcjonalnych parametrów.
az mysql flexible-server import create --data-source-type "mysql_single" --data-source "test-single-server" --resource-group "test-rg" --name "test-flexible-server"
Poniższy przykład zawiera informacje o źródle danych dla pojedynczego serwera o nazwie "test-single-server" i docelowe informacje o serwerze elastycznym, tworzy docelowy serwer elastyczny o nazwie test-flexible-server
w westus
lokalizacji (tej samej lokalizacji co źródłowy pojedynczy serwer) z włączoną nadmiarowością strefy i integracją sieci wirtualnej i wykonuje importowanie ze źródła do miejsca docelowego. Dowiedz się więcej o konfiguracji sieci wirtualnej tutaj.
# create vnet
az network vnet create --resource-group testGroup --name myVnet --location testLocation --address-prefixes 172.0.0.0/16
# create subnet
az network vnet subnet create --resource-group testGroup --vnet-name myVnet --address-prefixes 172.0.0.0/24 --name mySubnet
# create private dns zone
az network private-dns zone create -g testGroup -n myserver.private.contoso.com
# trigger mysql import
az mysql flexible-server import create --data-source-type "mysql_single" --data-source "test-single-server" --resource-group "test-rg" --name "test-flexible-server" --high-availability ZoneRedundant --zone 1 --standby-zone 3 --vnet "myVnet" --subnet "mySubnet" --private-dns-zone "myserver.private.contoso.com"
Poniższy przykład zawiera informacje o źródle danych dla pojedynczego serwera o nazwie "test-single-server" z włączonym kluczem zarządzanym przez klienta (CMK) i docelowymi informacjami o serwerze elastycznym, tworzy docelowy serwer elastyczny o nazwie test-flexible-server
i wykonuje import ze źródła do miejsca docelowego. W przypadku wystąpień pojedynczego serwera z włączoną funkcją CMK polecenie Importowanie usługi Azure Database for MySQL wymaga podania obowiązkowych parametrów wejściowych na potrzeby włączania klucza CMK: --keyIdentifierOfTestKey --identity testIdentity.
# create keyvault
az keyvault create -g testGroup -n testVault --location testLocation \
--enable-purge-protection true
# create key in keyvault and save its key identifier
keyIdentifier=$(az keyvault key create --name testKey -p software \
--vault-name testVault --query key.kid -o tsv)
# create identity and save its principalId
identityPrincipalId=$(az identity create -g testGroup --name testIdentity \
--location testLocation --query principalId -o tsv)
# add testIdentity as an access policy with key permissions 'Wrap Key', 'Unwrap Key', 'Get' and 'List' inside testVault
az keyvault set-policy -g testGroup -n testVault --object-id $identityPrincipalId \
--key-permissions wrapKey unwrapKey get list
# trigger azure database for mysql import for CMK enabled single server
az mysql flexible-server import create --data-source-type "mysql_single" --data-source "test-single-server" --resource-group "test-rg" --name "test-flexible-server" --key $keyIdentifier --identity testIdentity
Poniżej przedstawiono szczegóły powyższych argumentów:
Ustawienie | Wartość przykładowa | Opis |
---|---|---|
typ źródła danych | mysql_single | Typ źródła danych, który służy jako źródło docelowe wyzwalania importu usługi Azure Database for MySQL. Zaakceptowane wartości: [mysql_single]. Opis akceptowanych wartości — mysql_single: Pojedynczy serwer usługi Azure Database for MySQL. |
źródło danych | test —pojedynczy serwer | Nazwa lub identyfikator zasobu źródłowego pojedynczego serwera usługi Azure Database for MySQL. |
resource-group | test-rg | Nazwa grupy zasobów platformy Azure źródłowego pojedynczego serwera usługi Azure Database for MySQL. |
tryb | W trybie offline | Tryb importowania usługi Azure Database for MySQL. Zaakceptowane wartości: [Offline]; Wartość domyślna: Offline. |
lokalizacja | westus | Lokalizacja platformy Azure dla źródłowego pojedynczego serwera usługi Azure Database for MySQL. |
name | test-elastyczny serwer | Wprowadź unikatową nazwę docelowego serwera elastycznego usługi Azure Database for MySQL. Nazwa serwera może zawierać tylko małe litery, cyfry i znaki łącznika (-). Musi zawierać od 3 do 63 znaków. Uwaga: ten serwer jest wdrażany w tej samej subskrypcji, grupie zasobów i regionie co źródło. |
admin-user | adminuser | Nazwa użytkownika logowania administratora dla docelowego serwera elastycznego usługi Azure Database for MySQL. Nie może to być azure_superuser, administrator, administrator, główny, gość lub publiczny. |
admin-password | hasło | Hasło użytkownika administratora dla docelowego serwera elastycznego usługi Azure Database for MySQL. Musi zawierać od 8 do 128 znaków. Hasło musi zawierać znaki z trzech kategorii: wielkie litery angielskie, małe litery angielskie, cyfry i znaki niefanumeryczne. |
sku-name | GP_Gen5_2 | Wprowadź nazwę warstwy cenowej i konfiguracji obliczeniowej docelowej usługi Azure Database for MySQL — serwer elastyczny. Zgodnie z konwencją {warstwa cenowa}{generacja obliczeniowa}{rdzenie wirtualne} w skrócie. Aby uzyskać więcej informacji, zobacz warstwy cenowe. |
warstwa | Z możliwością zwielokrotnienia wydajności | Warstwa obliczeniowa docelowego serwera elastycznego usługi Azure Database for MySQL. Akceptowane wartości: Burstable, GeneralPurpose, MemoryOptimized; Wartość domyślna: Możliwość serii. |
dostęp publiczny | 0.0.0.0 | Określa publiczny dostęp dla docelowego serwera elastycznego usługi Azure Database for MySQL. Wprowadź pojedynczy lub zakres adresów IP, które mają być uwzględnione na liście dozwolonych adresów IP. Zakresy adresów IP muszą być oddzielone kreską i nie zawierają żadnych spacji. Określenie wartości 0.0.0.0.0 umożliwia dostęp publiczny z dowolnych zasobów wdrożonych na platformie Azure w celu uzyskania dostępu do serwera. Ustawienie go na wartość "Brak" ustawia serwer w trybie dostępu publicznego, ale nie tworzy reguły zapory. |
vnet | myVnet | Nazwa lub identyfikator nowej lub istniejącej sieci wirtualnej. Jeśli chcesz użyć sieci wirtualnej z innej grupy zasobów lub subskrypcji, podaj identyfikator zasobu. Nazwa musi zawierać od 2 do 64 znaków. Nazwa musi zaczynać się literą lub cyfrą, kończyć literą, cyfrą lub podkreśleniami i może zawierać tylko litery, cyfry, podkreślenia, kropki lub łączniki. |
podsieć | mySubnet | Nazwa lub identyfikator zasobu nowej lub istniejącej podsieci. Jeśli chcesz użyć podsieci z innej grupy zasobów lub subskrypcji, podaj identyfikator zasobu zamiast nazwy. Podsieć zostanie delegowana do serwerów elastycznych. Po delegowaniu tej podsieci nie można używać dla żadnego innego typu zasobów platformy Azure. |
prywatna strefa DNS | myserver.private.contoso.com | Nazwa lub identyfikator nowej lub istniejącej prywatnej strefy DNS. Możesz użyć prywatnej strefy DNS z tej samej grupy zasobów, innej grupy zasobów lub innej subskrypcji. Jeśli chcesz użyć strefy z innej grupy zasobów lub subskrypcji, podaj identyfikator zasobu. Interfejs wiersza polecenia tworzy nową prywatną strefę DNS w tej samej grupie zasobów co sieć wirtualna, jeśli nie jest udostępniana przez użytkowników. |
key | identyfikator klucza klucza testKey | Identyfikator zasobu podstawowego klucza magazynu kluczy na potrzeby szyfrowania danych. |
tożsamości | testIdentity | Nazwa lub identyfikator zasobu tożsamości przypisanej przez użytkownika na potrzeby szyfrowania danych. |
storage-size | 32 | Pojemność magazynu docelowego serwera elastycznego usługi Azure Database for MySQL. Minimum to 20 GiB, a maksimum to 16 TiB. |
tags | key=value | Podaj nazwę grupy zasobów platformy Azure. |
version | 5.7 | Główna wersja serwera docelowej usługi Azure Database for MySQL — serwer elastyczny. |
wysoka dostępność | ZoneRedundant | Włącz (ZoneRedundant lub SameZone) lub wyłącz funkcję wysokiej dostępności dla docelowego serwera elastycznego usługi Azure Database for MySQL. Zaakceptowane wartości: Disabled, SameZone, ZoneRedundant; Wartość domyślna: Wyłączone. |
strefa | 1 | Strefa dostępności, do której należy aprowizować zasób. |
strefa rezerwowa | 3 | Informacje o strefie dostępności serwera rezerwowego po włączeniu wysokiej dostępności. |
automatyczne zwiększanie magazynu | Włączona | Włącz lub wyłącz automatyczne zwiększanie magazynu dla docelowego serwera elastycznego usługi Azure Database for MySQL. Wartość domyślna to Włączone. Zaakceptowane wartości: Wyłączone, Włączone; Wartość domyślna: Włączone. |
iops | 500 | Liczba operacji we/wy na sekundę, które mają zostać przydzielone dla docelowego serwera elastycznego usługi Azure Database for MySQL. Uzyskasz pewną ilość bezpłatnych operacji we/wy na sekundę na podstawie aprowizacji zasobów obliczeniowych i magazynu. Wartość domyślna liczby operacji we/wy na sekundę to bezpłatna wartość operacji we/wy na sekundę. Aby dowiedzieć się więcej na temat liczby operacji we/wy na sekundę opartych na obliczeniach i magazynie, zapoznaj się z tematem Liczba operacji we/wy na sekundę w usłudze Azure Database for MySQL — elastyczny serwer. |
Kroki migracji online
Po wykonaniu powyższej operacji importowania usługi Azure Database for MySQL:
- Zaloguj się do docelowego serwera elastycznego usługi Azure Database for MySQL i uruchom następujące polecenie, aby uzyskać nazwę pliku dziennika bin i pozycję odpowiadającą migawki kopii zapasowej używanej przez interfejs wiersza polecenia importu usługi Azure Database for MySQL w celu przywrócenia do serwera docelowego.
CALL mysql.az_show_binlog_file_and_pos_for_mysql_import();
- Skonfiguruj replikację danych między wystąpieniami serwera źródłowego i docelowego przy użyciu pozycji bin-log, wykonując kroki wymienione w tym miejscu i gdy stan replikacji odzwierciedla, że serwer docelowy dogonił źródło, zatrzymaj replikację i przeprowadź migrację jednorazową.
Najlepsze rozwiązania dotyczące konfigurowania parametrów polecenia importowania interfejsu wiersza polecenia usługi Azure Database for MySQL
Przed wyzwoleniem polecenia interfejsu wiersza polecenia importowania usługi Azure Database for MySQL należy wziąć pod uwagę następujące wskazówki dotyczące konfiguracji parametrów, aby zapewnić szybsze ładowanie danych przy użyciu interfejsu wiersza polecenia importowania usługi Azure Database for MySQL.
Jeśli chcesz zastąpić inteligentne wartości domyślne, wybierz warstwę obliczeniową i nazwę jednostki SKU dla docelowego serwera elastycznego na podstawie warstwy cenowej pojedynczego serwera źródłowego i rdzeni wirtualnych na podstawie szczegółów w poniższej tabeli.
Warstwa cenowa serwera pojedynczego Rdzenie wirtualne serwera pojedynczego Warstwa serwera elastycznego Nazwa jednostki SKU serwera elastycznego Podstawowy 1 Z możliwością zwielokrotnienia wydajności Standard_B2ms Podstawowy 2 Z możliwością zwielokrotnienia wydajności Standard_B2ms Ogólnego przeznaczenia 100 Ogólnego przeznaczenia Standard_D4ds_v4 Ogólnego przeznaczenia 8 Ogólnego przeznaczenia Standard_D8ds_v4 Ogólnego przeznaczenia 16 Ogólnego przeznaczenia Standard_D16ds_v4 Ogólnego przeznaczenia 32 Ogólnego przeznaczenia Standard_D32ds_v4 Ogólnego przeznaczenia 64 Ogólnego przeznaczenia Standard_D64ds_v4 Optymalizacja pod kątem pamięci 100 MemoryOptimized Standard_E4ds_v4 Optymalizacja pod kątem pamięci 8 MemoryOptimized Standard_E8ds_v4 Optymalizacja pod kątem pamięci 16 MemoryOptimized Standard_E16ds_v4 Optymalizacja pod kątem pamięci 32 MemoryOptimized Standard_E32ds_v4 Wersja programu MySQL, region, subskrypcja i zasób docelowego serwera elastycznego musi być równa wersji źródłowego pojedynczego serwera.
Rozmiar magazynu dla docelowego serwera elastycznego powinien być równy lub większy niż na źródłowym pojedynczym serwerze.
Jeśli wystąpienie pojedynczego serwera ma włączone podwójne szyfrowanie infrastruktury, włączenie klucza zarządzanego przez klienta (CMK) w docelowym wystąpieniu serwera elastycznego zaleca się obsługę podobnych funkcji. Możesz również włączyć klucz zarządzania kluczami na serwerze docelowym za pomocą parametrów wejściowych interfejsu wiersza polecenia importu usługi Azure Database for MySQL lub po migracji.
Jak długo trwa migrowanie wystąpienia pojedynczego serwera w usłudze Azure Database for MySQL?
Poniżej przedstawiono porównawczą wydajność na podstawie rozmiaru magazynu dla architektury magazynu ogólnego przeznaczenia w wersji 2. (Migracja serwerów z magazynem ogólnego przeznaczenia w wersji 1 trwa dłużej, ponieważ obejmuje również uaktualnienie architektury magazynu)
Rozmiar magazynu pojedynczego serwera | Czas importowania |
---|---|
1 GiB | 0 min 23 sek. |
10 GiB | 4 min 24 s |
100 GiB | 10 min 29 sek. |
500 GiB | 13 min 15 sek. |
1 TB | 22 min 56 s |
10 TB | 2 godz. 5 min 30 s |
W powyższej tabeli wraz ze wzrostem rozmiaru magazynu czas wymagany do kopiowania danych również wzrasta, niemal w relacji liniowej. Należy jednak pamiętać, że szybkość kopiowania może mieć znaczący wpływ na wahania sieci. W związku z tym dane podane w tym miejscu powinny być traktowane tylko jako odwołanie.
Poniżej przedstawiono porównawczą wydajność opartą na różnej liczbie tabel dla 10 GiB rozmiaru magazynu.
Liczba tabel w wystąpieniu pojedynczego serwera | Czas importowania |
---|---|
100 | 4 min 24 s |
200 | 4 min 40 s |
800 | 4 min 52 s |
14,400 | 17 min 41 sek. |
28,800 | 19 min 18 sek. |
38,400 | 22 min 50 s |
Wraz ze wzrostem liczby plików każdy plik/tabela w bazie danych może stać się bardzo mały. Spowoduje to spójną ilość przesyłanych danych, ale będzie częściej wykonywane operacje związane z plikami, co może mieć wpływ na wydajność importowania usługi Azure Database for Mysql.
Kroki po zaimportowania
- Skopiuj następujące właściwości ze źródłowego pojedynczego serwera do docelowego serwera elastycznego po pomyślnym zakończeniu operacji importowania usługi Azure Database for MySQL:
- Repliki do odczytu
- Wartość parametru serwera dla event_scheduler
- Ustawienia strony monitorowania (alerty, metryki i ustawienia diagnostyczne)
- Wszystkie skrypty programu Terraform/interfejsu wiersza polecenia, które hostujesz w celu zarządzania wystąpieniem pojedynczego serwera, powinny zostać zaktualizowane przy użyciu odwołań serwera elastycznego.