Eseguire la migrazione di un server MySQL locale con l'interfaccia della riga di comando di importazione di Database di Azure per MySQL

Completato

È possibile eseguire la migrazione del server MySQL locale a un server flessibile di Database di Azure per MySQL. Si è deciso di eseguire una migrazione offline perché le impostazioni di rete impediscono una connessione diretta tra i server di origine e di destinazione. Il diagramma seguente riepiloga la procedura:

Screenshot di azure-import-cli-migration-procedure.

Prerequisiti

  • Nel server di origine, verificare che siano configurate le impostazioni seguenti:

    • lower_case_table_names = 1  
      innodb_file_per_table = ON
      innodb_page_size = 16348 (MySQL Default)
      
    • Il nome dello spazio di tabella di sistema deve essere ibdata1.

    • Le dimensioni dello spazio tabella di sistema devono essere maggiori o uguali a 12 MB. (impostazione predefinita di MySQL).

    • È supportato solo il motore INNODB.

  • È necessario un contenitore di archiviazione BLOB di Azure. Se non si ha un contenitore appropriato, crearne uno con questa guida introduttiva. È necessario il token di firma di accesso condiviso (SAS) del contenitore BLOB di Azure. Per ottimizzare le prestazioni, mantenere il server flessibile di archiviazione e di destinazione nella stessa area.

  • È necessario arrestare l'applicazione per evitare modifiche al database.

Procedura

  1. Eseguire un backup fisico del database MySQL. Viene usato lo strumento XtraBackup open source di Percona.

    1. Installare lo strumento in base a queste istruzioni (per MySQL 8.0).

    2. Creare un backup completo, ad esempio:

      xtrabackup --backup --target-dir=/data/backups/
      
  2. Caricare il file di backup nell'archivio BLOB di Azure, seguendo questa procedura.

  3. Attivare l'importazione eseguendo questo comando dopo aver compilato le variabili. È possibile modificare anche le dimensioni di calcolo modificando 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. Si prevede che l'importazione richiederà più tempo in proporzione al file di backup. L'importazione di un file di backup da 1 GiB richiede circa mezzo minuto, mentre un file da 1 TB richiede circa 23 minuti.

Considerare le seguenti limitazioni:

  • Gli utenti e i privilegi non vengono migrati. È necessario eseguire manualmente il dump degli utenti e dei privilegi per eseguire la migrazione degli account di accesso al termine dell'operazione di importazione.
  • La disponibilità elevata non è disponibile durante l'importazione, quindi abilitare la disponibilità elevata al termine della migrazione.

Dopo la migrazione di utenti e privilegi, connettere le applicazioni al server flessibile e la migrazione è stata completata.

Suggerimento

In alternativa, se si eseguisse una migrazione online, l'esportazione e l'importazione sarebbero state eseguite come illustrato in precedenza e quindi sarebbe stata configurata la replica dall'origine alla destinazione. Quando la destinazione ha raggiunto completamente l'origine, è necessario tagliare l'applicazione prima di arrestare il database di origine.