Eseguire la migrazione di un database MySQL locale in Azure

Completato

Quando una società decide di passare a Database di Azure per MySQL, il passaggio successivo è quello di pianificare come eseguire la migrazione di database locali e scegliere gli strumenti per spostare i dati.

Dopo aver esplorato il modo in cui Database di Azure per MySQL supporta e ridimensiona MySQL in Azure, è ora necessario considerare come verrà eseguita la migrazione dei database locali esistenti.

In questa unità verrà illustrato come creare un'istanza del servizio Database di Azure per MySQL usando il portale di Azure. Se è necessario creare molte istanze di questo servizio, è possibile creare uno script del processo tramite l'interfaccia della riga di comando di Azure.

Creare un'istanza di Database di Azure per MySQL usando il portale

Nel portale di Azure selezionare il comando Database in Azure Marketplace e selezionare Database di Azure per MySQL.

Immagine che mostra la voce Database di Azure per MySQL in Azure Marketplace

Immettere i dettagli per il servizio. tra cui:

  • Nome server. Deve essere un nome univoco con un numeri di caratteri compreso tra 3 e 63, che contiene solo lettere minuscole, numeri e trattini.
  • Origine dati. Se si crea un nuovo server per finalità di migrazione, selezionare Nessuna. L'opzione Backup consente di ripristinare un backup effettuato da un'altra istanza di Database di Azure per MySQL in questo servizio.
  • Nome utente amministratore. Si tratta del nome di un account utente che verrà creato con privilegi amministrativi. Azure crea alcuni account a proprio uso e altri nomi sono limitati: non è possibile usare azure_superuser, admin, administrator, root, guest o public.
  • Password. Deve avere una lunghezza compresa tra 8 e 128 caratteri. Deve contenere una combinazione di lettere maiuscole e minuscole, numeri e caratteri non alfanumerici. Database di Azure per MySQL attualmente supporta solo l'autenticazione tramite password. L'integrazione con Microsoft Entra ID non è ancora disponibile.
  • Versione. Selezionare la versione che corrisponde al database locale di cui si esegue la migrazione.
  • Calcolo e archiviazione. Selezionare Configura server per impostare il piano tariffario e specificare le risorse necessarie per il servizio. Le opzioni sono descritte nella lezione 1. Tenere presente che, se si selezionano i piani tariffari Utilizzo generico o Con ottimizzazione per la memoria, è possibile aumentare e ridurre il numero di core di processore virtuale in un secondo momento. Non è tuttavia possibile ridurre la quantità di risorse di archiviazione, che possono essere solo aumentate dopo la creazione del server.

Screenshot che mostra una configurazione di esempio per Database di Azure per MySQL nel portale di Azure.

Selezionare Rivedi e crea per distribuire il servizio. La distribuzione richiede alcuni minuti.

Dopo la distribuzione del servizio, selezionare l'opzione Sicurezza delle connessioni e aggiungere le regole del firewall appropriate per consentire ai client di connettersi, come descritto nell'argomento Connettività client della lezione 1. È anche necessario selezionare l'opzione Consenti l'accesso a Servizi di Azure.

Creare un'istanza di Database di Azure per MySQL con l'interfaccia della riga di comando di Azure

È possibile creare un'istanza di Database di Azure per MySQL usando il comando az mysql server create. L'istruzione seguente mostra un esempio di creazione di un'istanza MySQL. La maggior parte dei parametri è facilmente comprensibile, ad eccezione dei seguenti:

  • sku-name. Questo nome è il risultato della combinazione del piano tariffario (B per Basic, GP per Utilizzo generico e MO per Con ottimizzazione della memoria) con la generazione delle risorse di calcolo (Gen4 o Gen5) e il numero di core di CPU virtuale. Nell'esempio seguente il server viene creato usando il piano tariffario Utilizzo generico, con 4 core di CPU della generazione Gen5.
  • storage-size. Questa è la quantità di risorse di archiviazione su disco richiesta, specificata in megabyte. Nell'esempio seguente vengono allocati 10 gigabyte.
az mysql server create \
  --name contoso-MySQL-server \
  --resource-group MySQLrg \
  --admin-user contosoadmin \
  --admin-password 7Hh7*ku5k$$£jhk \
  --sku-name GP_Gen5_4 \
  --storage-size 10240

Eseguire una migrazione offline

Una migrazione offline acquisisce uno snapshot del database di origine in un determinato momento e copia i dati nel database di destinazione. Tutte le modifiche apportate ai dati di origine dopo l'acquisizione dello snapshot non verranno riflesse nel database di destinazione.

Sono disponibili almeno due opzioni se si vuole eseguire una migrazione offline a Database di Azure per MySQL:

Esportazione e importazione

È possibile esportare un database da MySQL e importarlo in Database di Azure per MySQL usando strumenti come MySQL Workbench. Questo è utile in numerosi scenari:

  • Si vogliono selezionare le tabelle da importare.
  • Si vogliono selezionare gli oggetti di database da esportare e importare, incluse le viste, le stored procedure, i vincoli e le funzioni.
  • Si vuole eseguire anche la migrazione dei dati da altre origini. Ad esempio, è necessario aggiungere dati da file di testo e usare mysqlimport per aggiungerli come tabelle al database.

È possibile eseguire un'esportazione e un'importazione con MySQL Workbench. Nel menu Server selezionare Esportazione dati o Importazione dati.

Nota

È anche possibile usare mysqldump per esportare tabelle specifiche elencando i relativi nomi dopo il nome del database.

Per altre informazioni, vedere Migrare il database MySQL mediante l'importazione ed esportazione.

Dump e ripristino

Usare il dump e ripristino quando si vuole spostare l'intero database in modo efficiente.

Ci sono numerosi aspetti da tenere in considerazione quando si usa questo approccio:

  • Impedire l'attivazione dei trigger durante il ripristino tramite l'opzione exclude-triggers.
  • Eseguire il dump dell'intero database in un'unica transazione con l'opzione di single-transaction.
  • Disabilitare la generazione di vincoli di chiave esterna durante il processo con l'opzione disable-keys.
  • Rinviare la creazione dell'indice al completamento del ripristino con l'opzione defer-table-indexes.

Per altre informazioni su mysqldump, vedere l'argomento relativo a mysqldump, un programma per il backup del database.

Nota

È anche possibile usare mysqldump per esportare tabelle specifiche elencando i relativi nomi dopo il nome del database.

Servizio Migrazione del database di Azure

Oltre alle migrazioni offline a Database di Azure per MySQL, Servizio Migrazione del database supporta migrazioni tra aree, gruppi di risorse e sottoscrizioni incrociate, in modo da selezionare un'area, un gruppo di risorse e una sottoscrizione per il server di destinazione diverso da quello specificato per il server di origine.

Eseguire la migrazione con dump e ripristino

Per eseguire la migrazione di un database usando l'approccio di dump e ripristino, seguire questa procedura.

  1. Esportare i dati in un altro file con il comando mysqldump:

    mysqldump -h [host name] -u [username] -p[password] [database name] > db_data.sql
    

    A questo punto, db_data.sql è uno script SQL modificabile con un editor di testo.

  2. Creare il database di destinazione in Database di Azure per MySQL. Per effettuare questa operazione, usare l'interfaccia della riga di comando di Azure:

    az mysql db create \
        --name [database name] \
        --server-name [server name] \
        --resource-group [azure resource group]
    
  3. Importare i dati nel database di destinazione con il comando mysql:

    mysql -h [host name] -u [username] -p[password] [database name] < db_data.sql
    

Eseguire una migrazione online

Servizio Migrazione del database supporta anche la migrazione online a Database di Azure per MySQL. Per la migrazione online, è consigliabile selezionare Calcolo per utilizzo generico 16 vCore per il server flessibile di destinazione per migrazioni più veloci. Tornare alle dimensioni di calcolo desiderate per il server di destinazione al termine della migrazione, in base ai dettagli nella tabella seguente.

Piano tariffario Server singolo vCore Server singolo Dimensioni di calcolo Server flessibile Livello di calcolo Server flessibile
Di base 1 Con possibilità di burst Standard_B1s
Di base 2 Con possibilità di burst Standard_B2s
Utilizzo generico 4 Utilizzo generico Standard_D4ds_v4
Utilizzo generico 8 Utilizzo generico Standard_D8ds_v4

Per altre informazioni sulla migrazione online a Database di Azure per MySQL, vedere l’esercitazione : Eseguire la migrazione online di Database di Azure per MySQL - Server singolo a server flessibile tramite Servizio Migrazione del database tramite il portale di Azure.