Esercitazione: Eseguire la migrazione di MySQL a Database di Azure per MySQL offline tramite Servizio Migrazione del database

È possibile usare Servizio Migrazione del database di Azure per eseguire una migrazione completa del database monouso nell'istanza locale di MySQL per Database di Azure per MySQL con funzionalità di migrazione dei dati ad alta velocità. In questa esercitazione verrà eseguita la migrazione di un database di esempio da un'istanza locale di MySQL 5.7 a Database di Azure per MySQL (v5.7) usando un'attività di migrazione offline in Servizio Migrazione del database di Azure. Anche se gli articoli presuppongono che l'origine sia un'istanza del database MySQL e che sia una destinazione da Database di Azure per MySQL, può essere usata per eseguire la migrazione da un Database di Azure per MySQL a un'altra semplicemente modificando il nome e le credenziali del server di origine. Inoltre, è supportata anche la migrazione da server MySQL versione precedente (v5.6 e versioni successive) a versioni successive.

Importante

Per le migrazioni online, è possibile usare strumenti open source come MyDumper/MyLoader con replica dei dati in ingresso.

Nota

Per una versione scriptabile basata su PowerShell di questa esperienza di migrazione, vedere Migrazione offline tramite script a Database di Azure per MySQL.

Nota

Amazon Relational Database Service (RDS) per MySQL e Amazon Aurora (basato su MySQL) sono supportati anche come origini per la migrazione.

In questa esercitazione verranno illustrate le procedure per:

  • Eseguire la migrazione dello schema del database usando l'utilità mysqldump.
  • Creare un'istanza del servizio Migrazione del database di Azure.
  • Creare un progetto di migrazione tramite il Servizio Migrazione del database di Azure.
  • Eseguire la migrazione.
  • Monitorare la migrazione.

Prerequisiti

Per completare questa esercitazione, è necessario:

  • Avere a disposizione un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.

  • Avere un database MySQL locale con la versione 5.7. In caso contrario, scaricare e installare MySQL Community Edition 5.7.

  • La migrazione offline di MySQL è supportata solo nello SKU Del Servizio Migrazione del database Premium.

  • Creare un'istanza in Database di Azure per MySQL. Fare riferimento all'articolo Usare MySQL Workbench per connettersi ed eseguire query sui dati per informazioni dettagliate su come connettersi e creare un database usando l'applicazione Workbench. La versione Database di Azure per MySQL deve essere uguale o successiva a quella locale di MySQL. Ad esempio, MySQL 5.7 può eseguire la migrazione a Database di Azure per MySQL 5.7 o aggiornato a 8.

  • Creare una rete virtuale di Microsoft Azure per il Servizio Migrazione del database di Azure usando il modello di distribuzione Azure Resource Manager, che offre la connettività da sito a sito per i server di origine locali con ExpressRoute o VPN. Per altre informazioni sulla creazione di una rete virtuale, vedere la documentazione sulla rete virtuale e in particolare gli articoli di avvio rapido con istruzioni dettagliate.

    Nota

    Durante la configurazione della rete virtuale, se si usa ExpressRoute con il peering di rete a Microsoft, aggiungere gli endpoint servizio seguenti alla subnet in cui verrà effettuato il provisioning del servizio:

    • Endpoint del database di destinazione (ad esempio, endpoint SQL, endpoint di Azure Cosmos DB e così via)
    • Endpoint di archiviazione
    • Endpoint bus di servizio

    Questa configurazione è necessaria perché il Servizio Migrazione del database di Azure non ha connettività Internet.

  • Assicurarsi che le regole del gruppo di sicurezza di rete della rete virtuale non blocchino la porta in uscita 443 di ServiceTag per ServiceBus, Archiviazione e AzureMonitor. Per informazioni dettagliate sul filtro del traffico dei gruppi di sicurezza di rete della rete virtuale di Azure, vedere l'articolo Filtrare il traffico di rete con gruppi di sicurezza di rete.

  • Aprire Windows Firewall per consentire alle connessioni da Rete virtuale per Servizio Migrazione del database di Azure di accedere al server MySQL di origine, che per impostazione predefinita è la porta TCP 3306.

  • Quando si usa un'appliance firewall davanti ai database di origine, potrebbe essere necessario aggiungere regole del firewall per consentire alle connessioni da Rete virtuale per Servizio Migrazione del database di Azure di accedere ai database di origine per la migrazione.

  • Creare una regola del firewall a livello di server o configurare gli endpoint servizio di rete virtuale per Database di Azure per MySQL di destinazione per consentire Rete virtuale per Servizio Migrazione del database di Azure l'accesso ai database di destinazione.

  • L'origine MySQL deve essere in un'Edizione MySQL Community supportata. Per determinare la versione dell'istanza di MySQL, eseguire il comando seguente nell'utilità MySQL o in MySQL Workbench:

    SELECT @@version;
    
  • Database di Azure per MySQL supporta solo le tabelle InnoDB. Per convertire le tabelle MyISAM in InnoDB, vedere l'articolo Converting Tables from MyISAM to InnoDB (Conversione di tabelle da MyISAM a InnoDB).

  • L'utente deve disporre dei privilegi per leggere i dati nel database di origine.

Ridimensionamento dell'istanza di Database di Azure per MySQL di destinazione

Per preparare il server di Database di Azure per MySQL di destinazione per carichi di dati più veloci usando il Servizio Migrazione del database di Azure, sono consigliati i parametri del server e le modifiche di configurazione seguenti.

  • max_allowed_packet: impostare su 1073741824 (ad esempio 1 GB) per evitare eventuali problemi di connessione dovuti a righe di grandi dimensioni.
  • slow_query_log: impostare su OFF per disattivare il log di query lento. In questo modo si eliminerà l'overhead causato dalla registrazione lenta di query durante i caricamenti dei dati.
  • query_store_capture_mode: impostare su NONE per disattivare il Query Store. In questo modo si eliminerà l'overhead causato dalle attività di campionamento di Query Store.
  • innodb_buffer_pool_size: le Innodb_buffer_pool_size possono essere aumentate solo aumentando le risorse di calcolo per Database di Azure per MySQL server. Aumentare il numero di istanze del server a 64 vCore per utilizzo generico SKU dal piano tariffario del portale durante la migrazione per aumentare il innodb_buffer_pool_size.
  • & innodb_io_capacity innodb_io_capacity_max: passare a 9000 dai parametri del server in portale di Azure per migliorare l'utilizzo di I/O per ottimizzare la velocità di migrazione.
  • & innodb_write_io_threads innodb_write_io_threads: passare a 4 dai parametri del server in portale di Azure per migliorare la velocità di migrazione.
  • Aumentare il livello di archiviazione: le operazioni di I/O al secondo per il database di Azure per il server MySQL aumentano progressivamente con l'aumento del livello di archiviazione.
    • Nell'opzione di distribuzione Server singolo, per carichi più rapidi, è consigliabile aumentare il livello di archiviazione per aumentare i valori di I/O di cui è stato effettuato il provisioning.
    • Nell'opzione di distribuzione server flessibile è consigliabile ridimensionare (aumentare o diminuire) operazioni di I/O al secondo indipendentemente dalle dimensioni di archiviazione.
    • Si noti che le dimensioni di archiviazione possono essere ridimensionate solo verso l'alto, non verso il basso.

Al termine della migrazione, è possibile ripristinare i parametri e la configurazione del server in base ai valori richiesti dal carico di lavoro.

Eseguire la migrazione dello schema del database

Per trasferire tutti gli oggetti di database come schemi di tabella, indici e stored procedure, è necessario estrarre lo schema dal database di origine e applicarli al database di destinazione. Per estrarre lo schema, è possibile usare mysqldump con il parametro --no-data. Per questo è necessario un computer in grado di connettersi sia al database MySQL di origine che al Database di Azure per MySQL di destinazione.

Per esportare lo schema usando mysqldump, eseguire il comando seguente:

mysqldump -h [servername] -u [username] -p[password] --databases [db name] --no-data > [schema file path]

Ad esempio:

mysqldump -h 10.10.123.123 -u root -p --databases migtestdb --no-data > d:\migtestdb.sql

Per importare lo schema nel Database di Azure per MySQL di destinazione, eseguire il comando seguente:

mysql.exe -h [servername] -u [username] -p[password] [database]< [schema file path]

Ad esempio:

mysql.exe -h mysqlsstrgt.mysql.database.azure.com -u docadmin@mysqlsstrgt -p migtestdb < d:\migtestdb.sql

Se nello schema sono presenti chiavi esterne o trigger, il caricamento parallelo dei dati durante la migrazione verrà gestito dall'attività di migrazione. Non è necessario eliminare chiavi esterne o trigger durante la migrazione dello schema.

Registrare il provider di risorse

Prima di creare la prima istanza del servizio Migrazione del database, registrare il provider di risorse Microsoft.DataMigration.

  1. Accedere al portale di Azure. Cercare e selezionare Sottoscrizioni.

    Mostra le sottoscrizioni del portale

  2. Selezionare la sottoscrizione in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure e quindi selezionare Provider di risorse.

    Visualizzare i provider di risorse

  3. Cercare migration e quindi selezionare Registra per Microsoft.DataMigration.

    Registrare il provider di risorse

Creare un'istanza di Servizio Migrazione del database

  1. Nel portale di Azure selezionare + Crea una risorsa, cercare Servizio Migrazione del database di Azure e quindi selezionare Servizio Migrazione del database di Azure dall'elenco a discesa.

    Azure Marketplace

  2. Nella schermata Servizio Migrazione del database di Azure selezionare Crea.

    Creare l'istanza del Servizio Migrazione del database di Azure

  3. Nella schermata Crea servizio Migrazione specificare un nome per il servizio, la sottoscrizione e un gruppo di risorse nuovo o esistente.

  4. Selezionare un piano tariffario e passare alla schermata di rete. La funzionalità di migrazione offline è disponibile solo nel piano tariffario Premium.

    Per altre informazioni sui costi e i piani tariffari, vedere la pagina relativa ai prezzi.

    Configurare Servizio Migrazione del database di Azure impostazioni di base

  5. Selezionare una rete virtuale esistente nell'elenco o specificare il nome della nuova rete virtuale da creare. Passare alla schermata rivedi e crea. Facoltativamente, è possibile aggiungere tag al servizio usando la schermata dei tag.

    La rete virtuale consente al Servizio Migrazione del database di Azure di accedere all'istanza di SQL Server di origine e all'istanza di destinazione di Database SQL di Azure.

    Configurare le impostazioni di rete Servizio Migrazione del database di Azure

    Per altre informazioni su come creare una rete virtuale nel portale di Azure, vedere l'articolo Creare una rete virtuale con il portale di Azure.

  6. Esaminare le configurazioni e selezionare Crea per creare il servizio.

    Servizio Migrazione del database di Azure creare

Creare un progetto di migrazione

Dopo aver creato il servizio, individuarlo nel portale di Azure, aprirlo e creare un nuovo progetto di migrazione.

  1. Nel portale di Azure selezionare Tutti i servizi, eseguire la ricerca di Servizio Migrazione del database di Azure e quindi selezionare Servizio Migrazione del database di Azure.

    Individuare tutte le istanze di Servizio Migrazione del database di Azure

  2. Selezionare l'istanza del servizio di migrazione nei risultati della ricerca e selezionare + Nuovo progetto di migrazione.

    Creare un nuovo progetto di migrazione

  3. Nella schermata Nuovo progetto di migrazione specificare un nome per il progetto, nella casella di selezione Tipo di server di origine selezionare MySQL, nella casella di selezione Tipo di server di destinazione selezionare Database di Azure per MySQL e nella casella di selezione Tipo di attività migrazione selezionare Migrazione dati. Selezionare Crea ed esegui attività.

    Creare Servizio Migrazione del database progetto

    Nota

    In alternativa, è possibile scegliere Crea solo il progetto per creare subito il progetto di migrazione ed eseguire la migrazione in un secondo momento.

Configurare il progetto di migrazione

  1. Nella schermata Seleziona origine specificare i dettagli di connessione per l'istanza mySQL di origine e selezionare Avanti: Selezionare destinazione>>

    Schermata Aggiungi dettagli origine

  2. Nella schermata Seleziona destinazione specificare i dettagli di connessione per l'istanza di Database di Azure per MySQL di destinazione e selezionare Avanti: Selezionare i database>>

    Schermata Aggiungi dettagli destinazione

  3. Nella schermata Seleziona database eseguire il mapping dell'origine e del database di destinazione per la migrazione e selezionare Avanti : Configura le impostazioni>> di migrazione. È possibile selezionare l'opzione Imposta sola lettura server di origine per impostare l'origine come di sola lettura, ma prestare attenzione che si tratta di un'impostazione a livello di server. Se questa opzione è selezionata, imposta l'intero server in sola lettura, non solo i database selezionati.

    Se il database di destinazione contiene lo stesso nome del database di origine, il Servizio Migrazione del database di Azure seleziona il database di destinazione per impostazione predefinita. Schermata Seleziona dettagli database

    Nota

    Anche se è possibile selezionare più database in questo passaggio, ma esistono limiti al numero e alla velocità con cui è possibile eseguire la migrazione dei database in questo modo, poiché ogni database condividerà le risorse di calcolo. Con la configurazione predefinita dello SKU Premium, ogni attività di migrazione tenterà di eseguire la migrazione di due tabelle in parallelo. Queste tabelle possono essere provenienti da uno qualsiasi dei database selezionati. Se questo non è abbastanza veloce, è possibile suddividere le attività di migrazione del database in diverse attività di migrazione e ridimensionare tra più servizi. È anche previsto un limite di 10 istanze del Servizio Migrazione del database di Azure per sottoscrizione e per area. Per un controllo più granulare sulla velocità effettiva e sulla parallelizzazione della migrazione, vedere l'articolo PowerShell: Eseguire la migrazione offline dal database MySQL a Database di Azure per MySQL tramite Servizio Migrazione del database

  4. Nella schermata Configura impostazioni di migrazione selezionare le tabelle da far parte della migrazione e selezionare Avanti : Riepilogo>>. Se le tabelle di destinazione contengono dati, non sono selezionate per impostazione predefinita, ma è possibile selezionarle in modo esplicito e verranno troncate prima di avviare la migrazione.

    Schermata Seleziona tabelle

  5. Nella schermata Riepilogo , nella casella di testo Nome attività specificare un nome per l'attività di migrazione ed esaminare il riepilogo per assicurarsi che i dettagli di origine e destinazione corrispondano a quanto specificato in precedenza.

    Riepilogo del progetto di migrazione

  6. Selezionare Avvia migrazione. Verrà visualizzata la finestra dell'attività di migrazione con il campo Stato dell'attività impostato su Inizializzazione in corso. Lo stato passa a In esecuzione all'avvio delle migrazioni della tabella.

    Esecuzione della migrazione

Monitorare la migrazione

  1. Nella schermata dell'attività di migrazione selezionare Aggiorna per aggiornare la visualizzazione e visualizzare lo stato di avanzamento sul numero di tabelle completate.

  2. È possibile fare clic sul nome del database nella schermata attività per visualizzare lo stato di ogni tabella durante la migrazione. Selezionare Aggiorna per aggiornare la visualizzazione.

    Monitoraggio della migrazione

Completare la migrazione

  1. Nella schermata dell'attività di migrazione selezionare Aggiorna per aggiornare la visualizzazione finché nel campo Stato della migrazione non viene indicato Completata.

    Completare la migrazione

Attività post-migrazione

Il cutover della migrazione in una migrazione offline è un processo dipendente dall'applicazione che non rientra nell'ambito di questo documento, ma sono previste le attività successive alla migrazione:

  1. Creare account di accesso, ruoli e autorizzazioni in base ai requisiti dell'applicazione.
  2. Ricreare tutti i trigger nel database di destinazione come estratto durante il passaggio di pre-migrazione.
  3. Eseguire test di integrità dell'applicazione nel database di destinazione per certificare la migrazione.

Pulire le risorse

Se non si intende continuare a usare il Servizio Migrazione del database, è possibile eliminare il servizio seguendo questa procedura:

  1. Nel portale di Azure selezionare Tutti i servizi, eseguire la ricerca di Servizio Migrazione del database di Azure e quindi selezionare Servizio Migrazione del database di Azure.

    Individuare tutte le istanze del Servizio Migrazione del database

  2. Selezionare l'istanza del servizio di migrazione nei risultati della ricerca e selezionare Elimina servizio.

    Eliminare il servizio di migrazione

  3. Nella finestra di dialogo di conferma digitare il nome del servizio nella casella di testo DIGITARE IL NOME DEL SERVIZIO MIGRAZIONE DEL DATABASE e selezionare Elimina

    Confermare l'eliminazione del servizio di migrazione

Passaggi successivi