Migrowanie obciążenia lokalnego lub maszyny wirtualnej MySQL do usługi Azure Database for MySQL — serwer elastyczny przy użyciu interfejsu wiersza polecenia importowania usługi Azure Database for MySQL
Importowanie usługi Azure Database for MySQL na potrzeby migracji zewnętrznych umożliwia bezproblemowe migrowanie obciążenia lokalnego lub maszyny wirtualnej MySQL do usługi Azure Database for MySQL — serwer elastyczny. Używa on fizycznego pliku kopii zapasowej dostarczonego przez użytkownika i przywraca pliki danych fizycznych serwera źródłowego do serwera docelowego, oferując prostą i szybką ścieżkę migracji. Operacja po zaimportowaniu umożliwia korzystanie z zalet serwera elastycznego, który obejmuje lepszą cenę i wydajność, szczegółową kontrolę nad konfiguracją bazy danych i niestandardowe okna obsługi.
Na podstawie danych wejściowych użytkownika zajmuje się aprowizowaniem docelowego serwera elastycznego, a następnie przywrócenie fizycznej kopii zapasowej serwera źródłowego przechowywanego na koncie usługi Azure Blob Storage do docelowego wystąpienia serwera elastycznego.
W tym samouczku pokazano, jak za pomocą polecenia importowania interfejsu wiersza polecenia usługi Azure Database for MySQL przeprowadzić migrację obciążenia lokalnego programu MySQL lub maszyny wirtualnej do usługi Azure Database for MySQL — serwer elastyczny.
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ę na koncie, na którym chcesz wdrożyć docelowy serwer elastyczny przy użyciu polecenia az account set . Zanotuj wartość id z danych wyjściowych az login , aby użyć jako wartości argumentu subskrypcji w poleceniu . Aby uzyskać wszystkie subskrypcje, użyj polecenia az account list.
az account set --subscription <subscription id>
Wymagania wstępne
- Serwer źródłowy powinien mieć następujące parametry:
- Lower_case_table_names = 1
- Innodb_file_per_table = WŁĄCZONE
- Nazwa przestrzeni tabel systemowych powinna mieć wartość ibdata1.
- Rozmiar przestrzeni tabel systemowych powinien być większy lub równy 12 MB. (Wartość domyślna programu MySQL)
- Innodb_page_size = 16348 (ustawienie domyślne mySQL)
- Obsługiwany jest tylko aparat INNODB.
- Utwórz fizyczną kopię zapasową obciążenia MySQL przy użyciu narzędzia Percona XtraBackup.
Poniżej przedstawiono kroki korzystania z narzędzia Percona XtraBackup w celu utworzenia pełnej kopii zapasowej:
- Zainstaluj narzędzie Percona XtraBackup w obciążeniu lokalnym lub maszynie wirtualnej. W przypadku aparatu MySQL w wersji 5.7 zainstaluj program Percona XtraBackup w wersji 2.4, zobacz Instalowanie narzędzia Percona XtraBackup 2.4. W przypadku aparatu MySQL w wersji 8.0 zainstaluj program Percona XtraBackup w wersji 8.0, zobacz Instalowanie narzędzia Percona XtraBackup 8.0.
- Aby uzyskać instrukcje dotyczące tworzenia pełnej kopii zapasowej za pomocą narzędzia Percona XtraBackup 2.4, zobacz Pełna kopia zapasowa. Aby uzyskać instrukcje dotyczące tworzenia pełnej kopii zapasowej za pomocą narzędzia Percona XtraBackup 8.0, zobacz [Pełna kopia zapasowa] (https://docs.percona.com/percona-xtrabackup/8.0/create-full-backup.html). Podczas tworzenia pełnej kopii zapasowej uruchom poniższe polecenia w następującej kolejności:
- - xtrabackup --backup --host={host} --user={user} --password={password} --target-dir={backup__dir_path}
- - xtrabackup --prepare --{backup_dir_path} (Podaj tę samą ścieżkę kopii zapasowej tutaj, jak w powyższym poleceniu)
- Zagadnienia podczas wykonywania elementu Percona XtraBackup:
- Upewnij się, że uruchomiono zarówno kopię zapasową, jak i krok przygotowywania.
- Upewnij się, że w kroku tworzenia kopii zapasowej i przygotowywania nie ma żadnych błędów.
- Zachowaj kopię zapasową i przygotuj dzienniki kroków dla pomocy technicznej platformy Azure, co jest wymagane w przypadku awarii.
- Utwórz kontener obiektów blob platformy Azure i pobierz token sygnatury dostępu współdzielonego (SAS) (witryna Azure Portal lub interfejs wiersza polecenia platformy Azure) dla kontenera. Upewnij się, że na liście rozwijanej Uprawnienia jest udzielana opcja Dodaj, Utwórz i Zapisz. Skopiuj i wklej wartości tokenu i adresu URL sygnatury dostępu współdzielonego obiektu blob w bezpiecznej lokalizacji. Są one wyświetlane tylko raz i nie można ich pobrać po zamknięciu okna.
- Przekaż pełny plik kopii zapasowej w lokalizacji {backup_dir_path} do usługi Azure Blob Storage. Wykonaj następujące kroki, aby przekazać plik.
- Aby przeprowadzić migrację online, przechwyć i zapisać pozycję bin-log pliku kopii zapasowej wykonanego przy użyciu narzędzia Percona XtraBackup, uruchamiając polecenie cat xtrabackup_info i kopiując dane wyjściowe bin_log pos.
- Konto usługi Azure Storage powinno być publicznie dostępne przy użyciu tokenu SAS. Konto usługi Azure Storage z konfiguracją sieci wirtualnej nie jest obsługiwane.
Ograniczenia
- Konfiguracja serwera źródłowego nie jest migrowana. Należy odpowiednio skonfigurować docelowy serwer elastyczny.
- Migracja zaszyfrowanych kopii zapasowych nie jest obsługiwana.
- Użytkownicy i uprawnienia nie są migrowane w ramach importowania usługi Azure Database for MySQL. Przed zainicjowaniem importowania usługi Azure Database for MySQL należy wykonać ręczne zrzuty użytkowników i uprawnień, aby przeprowadzić migrację identyfikatorów logowania po operacji importowania, przywracając je na docelowym serwerze elastycznym.
- user1@localhost nie można przeprowadzić migracji, ponieważ nie obsługujemy tworzenia użytkowników hosta lokalnego na serwerze elastycznym.
- Serwery elastyczne z włączoną wysoką dostępnością są zwracane jako serwery z wyłączoną wysoką dostępnością, aby zwiększyć szybkość operacji migracji po migracji importu. Włącz wysoką dostępność dla docelowego serwera elastycznego po migracji.
Zalecenia dotyczące optymalnego środowiska migracji
- Rozważ zachowanie konta usługi Azure Blob Storage i docelowego serwera elastycznego do wdrożenia w tym samym regionie w celu uzyskania lepszej wydajności importu.
- Zalecana konfiguracja jednostki SKU dla docelowego serwera elastycznego usługi Azure Database for MySQL —
- Ustawienie jednostki SKU z możliwością rozszerzenia dla elementu docelowego nie jest zalecane w celu zoptymalizowania czasu migracji podczas uruchamiania operacji importowania usługi Azure Database for MySQL. Zalecamy skalowanie do warstwy Ogólnego przeznaczenia/Krytyczne dla działania firmy dla przebiegu operacji importowania, po której można skalować w dół do jednostki SKU z możliwością zwiększania szybkości.
Wyzwalanie operacji importowania usługi Azure Database for MySQL w celu migracji z usługi Azure Database for MySQL — serwer elastyczny
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 z pliku kopii zapasowej do miejsca docelowego przy użyciu lokalnego kontekstu interfejsu wiersza polecenia platformy Azure:
az mysql flexible-server import create --data-source-type
--data-source
--data-source-sas-token
--resource-group
--name
--sku-name
--tier
--version
--location
[--data-source-backup-dir]
[--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]
[--private-dns-zone]
[--public-access]
[--resource-group]
[--standby-zone]
[--storage-auto-grow {Disabled, Enabled}]
[--subnet]
[--subnet-prefixes]
[--tags]
[--vnet]
[--zone]
The following example takes in the data source information for your source MySQL server's backup file and target Flexible Server information, creates a target Flexible Server named `test-flexible-server` in the `westus` location and performs an import from backup file to target.
azurecli-interactive
az mysql flexible-server import create --data-source-type "azure_blob" --data-source "https://onprembackup.blob.core.windows.net/onprembackup" --data-source-backup-dir "mysql_backup_percona" –-data-source-token "{sas-token}" --resource-group "test-rg" --name "test-flexible-server" –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 5.7 -–location "westus"
Poniżej przedstawiono szczegóły powyższych argumentów:
Ustawienie | Wartość przykładowa | Opis |
---|---|---|
typ źródła danych | azure_blob | 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: [azure_blob]. Opis akceptowanych wartości — azure_blob: Azure Blob Storage. |
źródło danych | {resourceID} | Identyfikator zasobu kontenera obiektów blob platformy Azure. |
data-source-backup-dir | mysql_percona_backup | Katalog kontenera usługi Azure Blob Storage, w którym został przekazany plik kopii zapasowej. Ta wartość jest wymagana tylko wtedy, gdy plik kopii zapasowej nie jest przechowywany w folderze głównym kontenera obiektów blob platformy Azure. |
data-source-sas-token | {sas-token} | Token sygnatury dostępu współdzielonego wygenerowany do udzielania dostępu do importowania z kontenera usługi Azure Blob Storage. |
resource-group | test-rg | Nazwa grupy zasobów platformy Azure docelowego serwera elastycznego 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 serwera elastycznego 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. |
Sieć wirtualna | 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ć jest 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. |
Migrowanie do serwera elastycznego z minimalnym przestojem
Aby przeprowadzić migrację online po zakończeniu początkowego rozmieszczania z pliku kopii zapasowej przy użyciu importu usługi Azure Database for MySQL, możesz skonfigurować replikację danych między źródłem i obiektem docelowym, wykonując poniższe kroki tutaj. Podczas tworzenia pliku kopii zapasowej przy użyciu narzędzia Percona XtraBackup można użyć pozycji bin-log przechwyconej w celu skonfigurowania replikacji opartej na pozycji bin-log.
Jak długo trwa importowanie usługi Azure Database for MySQL w celu zmigrowania wystąpienia my MySQL?
Wydajność porównawcza oparta na rozmiarze magazynu.
Rozmiar magazynu plików kopii zapasowej | 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 |
Wraz ze wzrostem rozmiaru magazynu czas wymagany do kopiowania danych również wzrasta, prawie 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.