Eseguire la migrazione di Amazon RDS per MySQL a Database di Azure per MySQL usando MySQL Workbench

SI APPLICA A: Database di Azure per MySQL - Server singolo

Importante

Database di Azure per MySQL server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per MySQL server flessibile. Per altre informazioni sulla migrazione a Database di Azure per MySQL server flessibile, vedere Che cosa accade a Database di Azure per MySQL server singolo?

È possibile usare varie utilità, ad esempio l'esportazione/importazione di MySQL Workbench, Servizio Migrazione del database di Azure (DMS) e il dump e il ripristino di MySQL, per eseguire la migrazione di Amazon RDS per MySQL a Database di Azure per MySQL. Tuttavia, l'uso della Migrazione guidata mySQL Workbench offre un modo semplice e pratico per spostare i database Amazon RDS per MySQL in Database di Azure per MySQL.

Con la Migrazione guidata è possibile selezionare facilmente gli schemi e gli oggetti di cui eseguire la migrazione. Consente anche di visualizzare i log del server per identificare gli errori e i colli di bottiglia in tempo reale. Di conseguenza, è possibile modificare e modificare tabelle o strutture di database e oggetti durante il processo di migrazione quando viene rilevato un errore e quindi riprendere la migrazione senza dover riavviare da zero.

Nota

È anche possibile usare la Migrazione guidata per eseguire la migrazione di altre origini, ad esempio Microsoft SQL Server, Oracle, PostgreSQL, MariaDB e così via, che non rientrano nell'ambito di questo articolo.

Prerequisiti

Prima di avviare il processo di migrazione, è consigliabile assicurarsi che siano configurati e configurati correttamente diversi parametri e funzionalità, come descritto di seguito.

  • Assicurarsi che il set di caratteri dei database di origine e di destinazione sia lo stesso.

  • Impostare il timeout di attesa su un tempo ragionevole a seconda della quantità di dati o del carico di lavoro di cui si vuole importare o eseguire la migrazione.

  • Impostare su max_allowed_packet parameter una quantità ragionevole a seconda delle dimensioni del database di cui si vuole importare o eseguire la migrazione.

  • Verificare che tutte le tabelle usino InnoDB, perché Database di Azure per MySQL Server supporta solo il motore di Archiviazione InnoDB.

  • Rimuovere, sostituire o modificare tutti i trigger, le stored procedure e altre funzioni contenenti identificatori utente radice o utente con privilegi avanzati (Database di Azure per MySQL non supporta il privilegio utente con privilegi avanzati). Per sostituire i definer con il nome dell'utente amministratore che esegue il processo di importazione, eseguire il comando seguente:

    DELIMITER; ;/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`127.0.0.1`*/ /*!50003
    DELIMITER;
    /* Modified to */
    DELIMITER;
    /*!50003 CREATE*//*!50017 DEFINER=`AdminUserName`@`ServerName`*/ /*!50003
    DELIMITER;
    
    
  • Se le funzioni definite dall'utente (UDF) sono in esecuzione nel server di database, è necessario eliminare il privilegio per il database mysql. Per determinare se nel server sono in esecuzione funzioni definite dall'utente, usare la query seguente:

    SELECT * FROM mysql.func;
    

    Se si scopre che le funzioni definite dall'utente sono in esecuzione, è possibile eliminare le funzioni definite dall'utente usando la query seguente:

    DROP FUNCTION your_UDFunction;
    
  • Assicurarsi che il server in cui è in esecuzione lo strumento e infine il percorso di esportazione disponga di spazio su disco e potenza di calcolo (vCore, CPU e memoria) per eseguire l'operazione di esportazione, soprattutto quando si esporta un database di dimensioni molto grandi.

  • Creare un percorso tra l'istanza locale o AWS e Database di Azure per MySQL se il carico di lavoro si trova dietro firewall o altri livelli di sicurezza di rete.

Avviare il processo di migrazione

  1. Per avviare il processo di migrazione, accedere a MySQL Workbench e quindi selezionare l'icona home.

  2. Nella barra di spostamento a sinistra selezionare l'icona Migrazione guidata, come illustrato nello screenshot seguente.

    MySQL Workbench start screen

    Viene visualizzata la pagina Panoramica della Migrazione guidata, come illustrato di seguito.

    MySQL Workbench Migration Wizard welcome page

  3. Determinare se è installato un driver ODBC per MySQL Server selezionando Apri Amministrazione istrator ODBC.

    In questo caso, nella scheda Driver si noterà che sono già installati due driver ODBC di MySQL Server.

    ODBC Data Source Administrator page

    Se non è installato un driver ODBC MySQL, usare il programma di installazione di MySQL usato per installare MySQL Workbench per installare il driver. Per altre informazioni sull'installazione del driver ODBC mySQL, vedere le risorse seguenti:

  4. Chiudere la finestra di dialogo Origine dati ODBC Amministrazione istrator e quindi continuare con il processo di migrazione.

Configurare i parametri di connessione del server di database di origine

  1. Nella pagina Panoramica selezionare Avvia migrazione.

    Verrà visualizzata la pagina Selezione origine. Usare questa pagina per fornire informazioni sul servizio RDBMS da cui si esegue la migrazione e sui parametri per la connessione.

  2. Nel campo Sistema di database selezionare MySQL.

  3. Nel campo Stored Connessione ion selezionare una delle impostazioni di connessione salvate per il servizio RDBMS.

    È possibile salvare le connessioni contrassegnando la casella di controllo nella parte inferiore della pagina e specificando un nome della preferenza.

  4. Nel campo Metodo di Connessione selezionare TCP/IP standard.

  5. Nel campo Nome host specificare il nome del server di database di origine.

  6. Nel campo Porta specificare 3306 e quindi immettere il nome utente e la password per la connessione al server.

  7. Nel campo Database immettere il nome del database di cui si vuole eseguire la migrazione se lo si conosce. In caso contrario, lasciare vuoto questo campo.

  8. Selezionare Test Connessione ion per controllare la connessione all'istanza del server MySQL.

    Se sono stati immessi i parametri corretti, viene visualizzato un messaggio che indica un tentativo di connessione riuscito.

    Source database connection parameters page

  9. Seleziona Avanti.

Configurare i parametri di connessione del server di database di destinazione

  1. Nella pagina Selezione destinazione impostare i parametri per connettersi all'istanza del server MySQL di destinazione usando un processo simile a quello per configurare la connessione al server di origine.

  2. Per verificare una connessione riuscita, selezionare Test Connessione ion.

    Target database connection parameters page

  3. Seleziona Avanti.

Selezionare gli schemi di cui eseguire la migrazione

La Migrazione guidata comunicherà all'istanza del server MySQL e recupererà un elenco di schemi dal server di origine.

  1. Selezionare Mostra log per visualizzare questa operazione.

    Lo screenshot seguente mostra come vengono recuperati gli schemi dal server di database di origine.

    Fetch schemas list page

  2. Selezionare Avanti per verificare che tutti gli schemi siano stati recuperati correttamente.

    Lo screenshot seguente mostra l'elenco degli schemi recuperati.

    Schemas selection page

    È possibile eseguire la migrazione solo degli schemi visualizzati in questo elenco.

  3. Selezionare gli schemi di cui si vuole eseguire la migrazione e quindi selezionare Avanti.

Migrazione di oggetti

Specificare quindi gli oggetti di cui si vuole eseguire la migrazione.

  1. Selezionare Mostra selezione e quindi, in Oggetti disponibili, selezionare e aggiungere gli oggetti di cui si vuole eseguire la migrazione.

    Dopo aver aggiunto gli oggetti, questi verranno visualizzati in Oggetti da migrare, come illustrato nello screenshot seguente.

    Source objects selection page

    In questo scenario sono stati selezionati tutti gli oggetti tabella.

  2. Seleziona Avanti.

Modificare i dati

In questa sezione è possibile modificare gli oggetti di cui si vuole eseguire la migrazione.

  1. Nella pagina Modifica manuale osservare il menu a discesa Visualizza nell'angolo in alto a destra.

    Manual Editing selection page

    La casella a discesa Visualizza include tre elementi:

    • Tutti gli oggetti : visualizza tutti gli oggetti. Con questa opzione, è possibile modificare manualmente il codice SQL generato prima di applicarli al server di database di destinazione. A tale scopo, selezionare l'oggetto e selezionare Mostra codice e messaggi. È possibile visualizzare (e modificare!) il codice MySQL generato che corrisponde all'oggetto selezionato.
    • Problemi di migrazione: visualizza eventuali problemi che si sono verificati durante la migrazione, che è possibile esaminare e verificare.
    • Mapping colonne : visualizza le informazioni sul mapping delle colonne. È possibile utilizzare questa visualizzazione per modificare il nome e modificare la colonna dell'oggetto di destinazione.
  2. Seleziona Avanti.

Creare il database di destinazione

  1. Selezionare la casella di controllo Crea schema in RDBMS di destinazione.

    È anche possibile scegliere di mantenere gli schemi già esistenti, in modo che non vengano modificati o aggiornati.

    Target Creation Options page

    In questo articolo è stato scelto di creare lo schema in RDBMS di destinazione, ma è anche possibile selezionare la casella di controllo Crea un file script SQL per salvare il file nel computer locale o per altri scopi.

  2. Seleziona Avanti.

Eseguire lo script MySQL per creare gli oggetti di database

Poiché è stato scelto di creare lo schema nel servizio RDBMS di destinazione, lo script SQL migrato verrà eseguito nel server MySQL di destinazione. È possibile visualizzarne lo stato come illustrato nello screenshot seguente:

Create Schemas page

  1. Al termine della creazione degli schemi e dei relativi oggetti, selezionare Avanti.

    Nella pagina Crea risultati di destinazione viene visualizzato un elenco degli oggetti creati e notifica di eventuali errori rilevati durante la creazione, come illustrato nello screenshot seguente.

    Create Target Results page

  2. Esaminare i dettagli in questa pagina per verificare che tutti gli elementi siano stati completati come previsto.

    Per questo articolo non sono presenti errori. Se non è necessario risolvere alcun messaggio di errore, è possibile modificare lo script di migrazione.

  3. Nella casella Oggetto selezionare l'oggetto da modificare.

  4. In SQL CREATE script per l'oggetto selezionato modificare lo script SQL e quindi selezionare Applica per salvare le modifiche.

  5. Selezionare Ricrea oggetti per eseguire lo script, incluse le modifiche.

    Se lo script non riesce, potrebbe essere necessario modificare lo script generato. È quindi possibile correggere manualmente lo script SQL ed eseguire di nuovo tutto. In questo articolo non verrà modificato alcun elemento, quindi lo script verrà lasciato invariato.

  6. Seleziona Avanti.

Trasferire i dati

Questa parte del processo sposta i dati dall'istanza del database mySQL Server di origine all'istanza del database MySQL di destinazione appena creata. Usare la pagina Configurazione trasferimento dati per configurare questo processo.

Data Transfer Setup page

Questa pagina offre opzioni per la configurazione del trasferimento dei dati. Ai fini di questo articolo, verranno accettati i valori predefiniti.

  1. Per avviare il processo effettivo di trasferimento dei dati, selezionare Avanti.

    Lo stato del processo di trasferimento dei dati viene visualizzato come illustrato nello screenshot seguente.

    Bulk Data Transfer page

    Nota

    La durata del processo di trasferimento dei dati è direttamente correlata alle dimensioni del database di cui si esegue la migrazione. Maggiore è il database di origine, maggiore sarà il tempo necessario per il processo, potenzialmente fino a poche ore per i database di dimensioni maggiori.

  2. Al termine del trasferimento, selezionare Avanti.

    Viene visualizzata la pagina Report di migrazione, che fornisce un report che riepiloga l'intero processo, come illustrato nello screenshot seguente:

    Migration Progress Report page

  3. Selezionare Fine per chiudere la Migrazione guidata.

    La migrazione è stata completata correttamente.

Verificare la coerenza degli schemi e delle tabelle di cui è stata eseguita la migrazione

  1. Accedere quindi all'istanza del database di destinazione MySQL per verificare che gli schemi e le tabelle migrati siano coerenti con il database di origine MySQL.

    In questo caso, è possibile notare che tutti gli schemi (sakila, moda, elementi, clienti, vestiti, mondo e world_x) dal database Amazon RDS per MySQL: MyjolieDB sono stati migrati correttamente all'istanza di Database di Azure per MySQL: azmysql.

  2. Per verificare il numero di tabelle e righe, eseguire la query seguente in entrambe le istanze:

    SELECT COUNT (*) FROM sakila.actor;

    Lo screenshot seguente mostra che il numero di righe per Amazon RDS MySQL è 200, che corrisponde all'istanza di Database di Azure per MySQL.

    Table and Row size source database

    Table and Row size target database

    Anche se è possibile eseguire la query precedente su ogni singolo schema e tabella, questo sarà un po' di lavoro se si gestiscono centinaia di migliaia o persino milioni di tabelle. È possibile usare le query seguenti per verificare invece lo schema (database) e le dimensioni della tabella.

  3. Per controllare le dimensioni del database, eseguire la query seguente:

    SELECT table_schema AS "Database", 
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" 
    FROM information_schema.TABLES 
    GROUP BY table_schema;
    
  4. Per controllare le dimensioni della tabella, eseguire la query seguente:

    SELECT table_name AS "Table",
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
    FROM information_schema.TABLES
    WHERE table_schema = "database_name"
    ORDER BY (data_length + index_length) DESC;
    

    Gli screenshot seguenti visualizzano le dimensioni dello schema (database) dell'istanza Di Amazon RDS MySQL di Origine uguale a quella dell'istanza di Database di Azure per MySQL di destinazione.

    Database size source database

    Database size target database

    Poiché le dimensioni dello schema (database) sono uguali in entrambe le istanze, non è davvero necessario controllare le singole dimensioni della tabella. In ogni caso, è sempre possibile usare la query precedente per controllare le dimensioni della tabella, se necessario.

    A questo punto è stato confermato che la migrazione è stata completata correttamente.

Passaggi successivi

  • Per altre informazioni sulla migrazione dei database in Database di Azure per MySQL, vedere Database Migration Guide (Guida alla migrazione di database).
  • Visualizzare il video Easily migrate MySQL/PostgreSQL apps to Azure managed service (Eseguire la migrazione di app MySQL/PostgreSQL nel servizio gestito di Azure in tutta semplicità), che contiene una demo che mostra come migrare app MySQL in Database di Azure per MySQL.