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 (publiczna wersja zapoznawcza)

Importowanie usługi Azure Database for MySQL na potrzeby migracji zewnętrznych (publiczna wersja zapoznawcza) umożliwia bezproblemową migrację 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 fizyczne pliki danych 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, 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 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 klawisz 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.
  • Wykonaj fizyczną kopię zapasową obciążenia MySQL przy użyciu narzędzia Percona XtraBackup Następujące kroki dotyczące korzystania z narzędzia Percona XtraBackup w celu utworzenia pełnej kopii zapasowej:
  • Przekaż pełny plik kopii zapasowej do usługi Azure Blob Storage. Wykonaj kroki opisane tutaj.
  • Aby wykonać 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.

Ograniczenia

  • Konfiguracja serwera źródłowego nie jest migrowana. Należy odpowiednio skonfigurować docelowy serwer elastyczny.
  • 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.
  • Serwery elastyczne z włączoną wysoką dostępnością (HA) są zwracane jako serwery wyłączone wysokiej dostępności, aby zwiększyć szybkość operacji migracji po migracji importu. Włącz wysoką dostępność dla docelowego serwera elastycznego po migracji.

Rekomendacje w celu uzyskania 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.
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. Należy pamiętać, że 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 zostanie podana 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.

Następne kroki