Condividi tramite


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

Il server singolo del Database di Azure per MySQL è in fase di ritiro. È consigliabile eseguire l'aggiornamento al server flessibile del Database di Azure per MySQL. Per altre informazioni sulla migrazione a un server flessibile del Database di Azure per MySQL, vedere Che cosa sta succedendo al server singolo del Database di Azure per MySQL?

È possibile usare varie utilità, ad esempio l'esportazione/importazione di MySQL Workbench, il Servizio Migrazione del database di Azure 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. Essa consente anche di visualizzare i log del server per identificare gli errori e i colli di bottiglia in tempo reale. Di conseguenza, è possibile revisionare e modificare tabelle o strutture e oggetti di database durante il processo di migrazione quando viene rilevato un errore e quindi riprendere la migrazione senza dover ricominciare 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 diversi parametri e funzionalità siano stati configurati correttamente, 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 che si vuole importare o di cui si vuole eseguire la migrazione.

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

  • Verificare che tutte le tabelle usino InnoDB, poiché Database di Azure per il server MySQL 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 privilegi di Utente con privilegi avanzati). Per sostituire gli identificatori con il nome dell'utente amministratore che sta effettuando 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 siano 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 eliminarle usando la query seguente:

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

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

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.

    Viene visualizzata la pagina Panoramica della Migrazione guidata.

  3. Determinare se si disponga di un driver ODBC per MySQL Server installato selezionando Apri amministratore ODBC.

    Se non si dispone di un driver ODBC MySQL installato, 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 Amministratore origine dati ODBC 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 Connessione archiviata, selezionare una delle impostazioni di connessione salvate per quel RDBMS.

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

  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 Testa connessione per controllare la connessione all'istanza del server MySQL.

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

  9. Selezionare 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 che una connessione sia riuscita, selezionare Testa connessione.

  3. Selezionare Avanti.

Selezionare gli schemi di cui eseguire la migrazione

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

  1. Selezionare Mostra log per visualizzare questa operazione. La pagina Fetch Schemas List mostra come vengono recuperati gli schemi dal server di database di origine.

  2. Selezionare Avanti per verificare che tutti gli schemi siano stati recuperati correttamente. La pagina Selezione schemi mostra l'elenco degli schemi recuperati. È possibile eseguire solo la migrazione degli schemi visualizzati in questo elenco.

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

Migrazione oggetto

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.

  2. Selezionare Avanti.

Modificare dati

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

  1. Nella pagina Modifica manuale è disponibile un menu a discesa Visualizza nell'angolo in alto a destra.

    Il menu a discesa Visualizza include tre voci:

    • Tutti gli oggetti: mostra tutti gli oggetti. Con questa opzione, è possibile modificare manualmente gli SQL generati prima di applicarli al server di database di destinazione. A tale scopo, selezionare l'oggetto e quindi Mostra codice e messaggi. È possibile visualizzare (e modificare!) il codice MySQL generato che corrisponde all'oggetto selezionato.
    • Problemi di migrazione: mostra eventuali problemi verificatisi durante la migrazione che è possibile esaminare e verificare.
    • Mapping colonne: mostra informazioni sul mapping delle colonne. È possibile utilizzare questa visualizzazione per modificare il nome e la colonna dell'oggetto di destinazione.
  2. Selezionare 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.

    È possibile 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. Selezionare Avanti.

Eseguire lo script MySQL per creare gli oggetti di database

Poiché è stato scelto di creare lo schema nel RDBMS di destinazione, lo script SQL migrato verrà eseguito nel server MySQL di destinazione.

  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.

  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 fallisce, potrebbe essere necessario modificare lo script generato. Sarà quindi possibile correggere manualmente lo script SQL ed eseguire nuovamente l’intera operazione. In questo articolo non verrà modificato alcun elemento, quindi lo script verrà lasciato invariato.

  6. Selezionare Avanti.

Trasferire i dati

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

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. È presente un indicatore di stato per il trasferimento dei dati.

    Nota

    La durata del processo di trasferimento dei dati è direttamente proporzionale alle dimensioni del database di cui si sta eseguendo la migrazione. Maggiori sono le dimensioni del database di origine, maggiore sarà il tempo necessario per il processo, potenzialmente fino a qualche ora per database più grandi.

  2. Al termine del trasferimento, selezionare Avanti.

    Viene visualizzata la pagina Report di migrazione, che fornisce un report che riepiloga l'intero processo.

  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, items, customer, clothes, world e world_x) dal database Amazon RDS per MySQL: MyjolieDB sono stati migrati correttamente nel 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;

    Il numero di righe previsto per Amazon RDS MySQL è 200, che corrisponde all'istanza di Database di Azure per MySQL.

    Anche se è possibile eseguire la query precedente su ogni singolo schema e tabella, l’operazione risulterà lunga e laboriosa se si gestiscono centinaia di migliaia o persino milioni di tabelle. È possibile usare le query seguenti per verificare invece le dimensioni dello schema (database) e 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;
    

    Le dimensioni dello schema (database) dell'istanza di Amazon RDS MySQL di Origine devono corrispondere a quella della Database di Azure per MySQL istanza di destinazione.

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

    A questo punto, si è 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.