Condividi tramite


Esercitazione: eseguire la migrazione di MySQL in Database di Azure per MySQL offline mediante Servizio Migrazione del database

È possibile usare Servizio Migrazione del database di Azure per eseguire una migrazione senza problemi dall'istanza di MySQL esterna a Database di Azure per MySQL con capacità di migrazione dei dati ad alta velocità. In questa esercitazione viene 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 nel Servizio Migrazione del database di Azure. Anche se gli articoli presuppongono che l'origine sia un'istanza del database MySQL e che la destinazione sia Database di Azure per MySQL, può essere usata per eseguire la migrazione da un'istanza di Database di Azure per MySQL a un'altra semplicemente modificando il nome e le credenziali del server di origine. Inoltre, è supportata anche la migrazione dai server MySQL versione inferiore (v5.6 e versioni successive) alle versioni successive.

Note

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

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

In questa esercitazione verranno illustrate le procedure per:

  • Creare un'istanza del Servizio Migrazione del database.
  • Creare un progetto di migrazione MySQL nel Servizio Migrazione del database.
  • Eseguire la migrazione di uno schema MySQL tramite il Servizio Migrazione del database.
  • 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.

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

  • 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 della rete virtuale e in particolare gli articoli di avvio rapido con istruzioni dettagliate.

    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 le connessioni dalla rete virtuale per servizio Migrazione del database di Azure per 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 le connessioni dalla rete virtuale per il Servizio Migrazione del database di Azure per accedere ai database di origine per la migrazione.

  • Creare una regola del firewall a livello di server o configurare gli endpoint del servizio di rete virtuale per il Database di Azure per MySQL di destinazione, per consentire al Servizio Migrazione del database di Azure di accedere ai database di destinazione tramite la rete virtuale.

  • 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.

  • Per completare correttamente una migrazione dello schema, nel server di origine l'utente che esegue la migrazione deve disporre dei privilegi seguenti:

    • Privilegio SELECT a livello di server nell'origine.
    • Se si esegue la migrazione delle viste, l'utente deve avere il privilegio SHOW VIEW nel server di origine e il privilegio CREATE VIEW nel server di destinazione.
    • Se si esegue la migrazione dei trigger, l'utente deve avere il privilegio TRIGGER nel server di origine e di destinazione.
    • Se si esegue la migrazione di routine (routine e/o funzioni), l'utente deve disporre dei privilegi CREATE ROUTINE e ALTER ROUTINE concessi a livello di server nella destinazione.
    • Se si esegue la migrazione di eventi, l'utente deve avere il privilegio EVENT nel server di origine e di destinazione.
    • Se si esegue la migrazione di utenti/account di accesso, l'utente deve avere il privilegio CREATE USER nel server di destinazione.
    • Privilegio DROP a livello di server nella destinazione, per eliminare le tabelle che potrebbero già esistere. Ad esempio, quando si ritenta una migrazione.
    • Privilegio REFERENCES a livello di server sulla destinazione, per creare tabelle con chiavi esterne.
    • Se si esegue la migrazione a MySQL 8.0, l'utente deve disporre del privilegio SESSION_VARIABLES_ADMIN nel server di destinazione.
    • Privilegio CREATE a livello di server nella destinazione.
    • Privilegio INSERT a livello di server nella destinazione.
    • Privilegio UPDATE a livello di server nella destinazione.
    • Privilegio DELETE a livello di server nella destinazione.

Ridimensionare l'istanza di Database di Azure per MySQL di destinazione

Per preparare il server Database di Azure per MySQL di destinazione per carichi di dati più rapidi usando Servizio Migrazione del database di Azure, si consiglia di apportare le seguenti modifiche alla configurazione e ai parametri del server.

  • max_allowed_packet : impostato su 1073741824 (ovvero 1 GB) per evitare eventuali problemi di connessione dovuti a righe di grandi dimensioni.

  • slow_query_log: impostare su OFF per disattivare il log delle query lente. In questo modo si elimina il sovraccarico causato dalla registrazione lenta delle query durante il caricamento dei dati.

  • query_store_capture_mode : impostare su NONE per disattivare Query Store. In questo modo si elimina il sovraccarico causato dalle attività di campionamento da Query Store.

  • innodb_buffer_pool_size : Innodb_buffer_pool_size può essere aumentato solo aumentando le risorse di calcolo per il server di Database di Azure per MySQL. Aumentare il numero di SKU per utilizzo generico del server a 64 vCore dal piano tariffario del portale durante la migrazione per aumentare innodb_buffer_pool_size.

  • innodb_io_capacity e innodb_io_capacity_max - Cambiare a 9000 dai parametri del server nel portale di Azure per migliorare l'utilizzo dell'I/O e ottimizzare la velocità di migrazione.

  • innodb_write_io_threads e innodb_write_io_threads - Cambiare a 4 nei Parametri del server nel portale di Azure per migliorare la velocità della 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 flessibile è consigliabile ridimensionare (aumentare o ridurre) le operazioni di I/O al secondo, indipendentemente dalle dimensioni di archiviazione.
    • La dimensione di archiviazione può essere solo aumentata, non ridotta.
  • Selezionare le dimensioni di calcolo e il livello di calcolo per il server flessibile di destinazione in base alla configurazione del server MySQL di origine.

    1 Come procedura consigliata, per la migrazione selezionare Calcolo utilizzo generico 16 vCore o superiore 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.

Una volta completata la migrazione, è possibile ripristinare la configurazione e i parametri del server ai valori richiesti dal carico di lavoro.

Configurare Il Servizio Migrazione del database

Dopo aver distribuito e configurato il server flessibile di destinazione, è quindi necessario configurare il servizio DMS per la migrazione del server MySQL a un server flessibile.

Registrare il provider di risorse

Per registrare il provider di risorse Microsoft.DataMigration, seguire questa procedura.

  1. Prima di creare la prima istanza del DMS, accedere al portale di Azure e quindi cercare e selezionare Sottoscrizioni.

    Screenshot di un comando Seleziona sottoscrizioni da Azure Marketplace.

  2. Selezionare la sottoscrizione da usare per creare l'istanza del Servizio Migrazione del database e quindi selezionare Provider di risorse.

    Screenshot di un comando Seleziona provider di risorse.

  3. Cercare il termine "Migration" e quindi, per Microsoft.DataMigration, selezionare Registra.

    Screenshot di un comando Registra il provider di risorse.

Creare un'istanza del Servizio Migrazione del database

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

    Screenshot di Azure Marketplace.

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

    Screenshot che mostra la creazione di un'istanza del Servizio di migrazione del database 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 capacità di migrazione offline è disponibile solo nel piano tariffario Premium.

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

    Screenshot della configurazione delle impostazioni di base del Servizio Migrazione del database di Azure.

  5. Selezionare una rete virtuale esistente dall'elenco o specificare il nome della nuova rete virtuale da creare. Passare alla schermata Rivedi + 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.

    Screenshot della configurazione delle impostazioni di rete del 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. Rivedere le configurazioni e selezionare Crea per creare il servizio.

    Screenshot della creazione del Servizio Migrazione del database di Azure.

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.

    Screenshot che mostra l'individuazione di tutte le istanze del Servizio di migrazione del database Azure.

  2. Selezionare l'istanza del servizio di migrazione dai risultati della ricerca, quindi selezionare + Nuovo progetto di migrazione.

    Screenshot della creazione di nuovo progetto di migrazione.

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

    Screenshot della creazione di un progetto del Servizio Migrazione del database.

    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 la destinazione >>

    Screenshot della schermata di aggiunta dei dettagli dell'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 >>

    Screenshot della schermata di aggiunta dei dettagli della destinazione.

  3. Nella schermata Seleziona database eseguire il mapping dell'origine e del database di destinazione per la migrazione e selezionare Avanti: Configurare le impostazioni >>di migrazione . È possibile selezionare l'opzione Rendi di sola lettura il server di origine per rendere l'origine di sola lettura, ma prestare attenzione perché è un'impostazione a livello di server. Se 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.

    Screenshot della schermata di selezione dei dettagli del database.

  4. Nella schermata Configura impostazioni di migrazione selezionare le tabelle da inserire nella 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 vengono troncate prima di avviare la migrazione.

    Screenshot della schermata di selezione delle tabelle.

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

    Screenshot del 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. All'avvio delle migrazioni delle tabelle, lo Stato diventa In esecuzione.

    Screenshot dell'esecuzione della migrazione.

Monitorare la migrazione

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

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

    Screenshot del 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.

    Screenshot della migrazione completa.

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 prescritte le attività post-migrazione seguenti:

  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 eliminarlo con questi passaggi:

  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.

    Screenshot della localizzazione di tutte le istanze del Servizio Migrazione del database.

  2. Selezionare l'istanza del servizio di migrazione dai risultati della ricerca, quindi selezionare Elimina servizio.

    Screenshot dell'eliminazione del servizio di migrazione.

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

    Screenshot di conferma dell'eliminazione del servizio di migrazione.