Migrowanie lokalnego serwera MySQL przy użyciu interfejsu wiersza polecenia importowania usługi Azure Database for MySQL

Ukończone

Nadszedł czas, aby przeprowadzić migrację lokalnego serwera MySQL do serwera elastycznego usługi Azure Database for MySQL. Podjęto decyzję o migracji w trybie offline, ponieważ ustawienia sieci uniemożliwiają bezpośrednie połączenie między serwerami źródłowymi i docelowymi. Na poniższym diagramie przedstawiono podsumowanie procedury:

Zrzut ekranu przedstawiający procedurę azure-import-cli-migration-.

Wymagania wstępne

  • Na serwerze źródłowym upewnij się, że skonfigurowano następujące ustawienia:

    • lower_case_table_names = 1  
      innodb_file_per_table = ON
      innodb_page_size = 16348 (MySQL Default)
      
    • Nazwa systemowej przestrzeni tabel powinna mieć wartość ibdata1.

    • Rozmiar przestrzeni tabel systemowych powinien być większy lub równy 12 MB. (Wartość domyślna programu MySQL)

    • Obsługiwany jest tylko aparat INNODB.

  • Potrzebujesz kontenera usługi Azure Blob Storage. Jeśli nie masz odpowiedniego kontenera, utwórz go za pomocą tego przewodnika Szybki start. Potrzebujesz tokenu sygnatury dostępu współdzielonego (SAS) kontenera obiektów blob platformy Azure. Aby zoptymalizować wydajność, zachowaj magazyn i docelowy serwer elastyczny w tym samym regionie.

  • Musisz zamknąć aplikację, aby zapobiec wszelkim zmianom w bazie danych.

Procedura

  1. Utwórz fizyczną kopię zapasową bazy danych MySQL. Używamy narzędzia XtraBackup typu open source platformy Percona.

    1. Zainstaluj narzędzie zgodnie z tymi instrukcjami (dla programu MySQL 8.0).

    2. Utwórz pełną kopię zapasową, na przykład:

      xtrabackup --backup --target-dir=/data/backups/
      
  2. Przekaż plik kopii zapasowej do usługi Azure Blob Storage, wykonując następujące kroki.

  3. Wyzwól importowanie, uruchamiając to polecenie po wypełnieniu zmiennych. Można również zmodyfikować rozmiar obliczeniowy, zmieniając Standard_D2ds_v4.

    1. az mysql flexible-server import create --data-source-type "azure_blob" --data-source $BLOB_DATA_URL --data-source-backup-dir "mysql_backup_percona" –-data-source-token $SAS_TOKEN --resource-group $RESOURCE_GROUP --name $FLEXIBLE_SERVER_NAME –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 8.0 -–location westus --auto-scale-iops Enabled
      
    2. Spodziewaj się, że importowanie będzie trwać proporcjonalnie do pliku kopii zapasowej. Importowanie pliku kopii zapasowej o rozmiarze 1 GiB trwa około pół minuty, podczas gdy plik o rozmiarze 1 TB trwa około 23 minut.

Pamiętaj o następujących ograniczeniach:

  • Użytkownicy i uprawnienia nie są migrowane. Aby przeprowadzić migrację identyfikatorów logowania po zakończeniu operacji importowania, należy ręcznie zrzucić użytkowników i uprawnienia.
  • Wysoka dostępność nie jest dostępna podczas importowania, dlatego włącz wysoką dostępność po zakończeniu migracji.

Po migracji użytkowników i uprawnień połącz aplikacje z serwerem elastycznym, a migracja zostanie ukończona.

Napiwek

Alternatywnie, jeśli przeprowadzasz migrację online, wykonalibyśsz eksport i import, jak wyjaśniono wcześniej, a następnie skonfigurowano replikację ze źródła do miejsca docelowego. Gdy docelowy element docelowy jest w pełni uwikłany w źródło, przed zamknięciem źródłowej bazy danych należy przeciąć aplikację.