Esercitazione: Eseguire la migrazione di MySQL in Database di Azure per MySQL offline mediante il Servizio Migrazione del database
È possibile usare il 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, si esegue la migrazione di un database di esempio da un'istanza locale di MySQL 5.7 al Database di Azure per MySQL (v5.7) utilizzando 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 il Database di Azure per MySQL, può essere usata per eseguire la migrazione da un Database di Azure per MySQL a un altro semplicemente modificando il nome e le credenziali del server di origine. Inoltre, la migrazione da server MySQL di versione inferiore (v5.6 e successive) a versioni successive è supportata.
Nota
Per una versione scriptabile 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 apprenderai a:
- 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.
Bisogna avere un database MySQL locale con la versione 5.7. Altrimenti, scaricare e installare l'Edizione MySQL Community 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 sulla 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 il firewall di Windows per consentire alle connessioni della rete virtuale per il Servizio Migrazione del database di Azure Database di accedere al server MySQL di origine, che per impostazione predefinita è la porta TCP 3306.
Quando si usa un’appliance firewall all’ingresso dei database di origine, potrebbe essere necessario aggiungere regole firewall per consentire le connessioni da 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 di servizio della rete virtuale per i server di Database di Azure per MySQL di origine e di destinazione e consentire alla rete virtuale per il Servizio Migrazione del database di Azure di accedere 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.
Per completare correttamente una migrazione dello schema, nel server di origine l'utente che esegue la migrazione richiede i privilegi seguenti:
- Privilegio "SELECT" a livello di server nell'origine.
- Se si esegue la migrazione delle viste, l'utente deve disporre del privilegio "SHOW VIEW" nel server di origine e del privilegio "CREATE VIEW" nel server di destinazione.
- Se si esegue la migrazione dei trigger, l'utente deve disporre del privilegio "TRIGGER" nel server di origine e di destinazione.
- Se si esegue la migrazione di routine (procedure 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 disporre del privilegio "EVENT" nel server di origine e di destinazione.
- Se si esegue la migrazione di utenti/account di accesso, l'utente deve disporre del 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 a carichi di dati più rapidi usando Servizio Migrazione del database di Azure, si consiglia di apportare le seguenti modifiche ai parametri e alla configurazione del server.
max_allowed_packet: impostarlo su 1073741824 (ad esempio, 1GB) per evitare eventuali problemi di connessione causati da 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 Query Store. In questo modo si eliminerà l'overhead causato dalle attività di campionamento di Query Store.
È possibile aumentare innodb_buffer_pool_size – Innodb_buffer_pool_size solo aumentando il 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 & innodb_io_capacity_max: passare a 9000 dai parametri server nel 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 nel 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ù veloci, è consigliabile aumentare il livello di archiviazione per aumentare il provisioning di operazioni di I/O al secondo.
- 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 del'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 al piano tariffario del server singolo di origine e ai vCore in base ai dettagli della tabella seguente.
Piano tariffario Server singolo vCore Server singolo Dimensioni di calcolo Server flessibile Livello di calcolo Server flessibile Basic 1 1 Utilizzo generico Standard_D16ds_v4 Basic 1 2 Utilizzo generico Standard_D16ds_v4 Per utilizzo generale: 1 4 Utilizzo generico Standard_D16ds_v4 Per utilizzo generale: 1 8 Utilizzo generico Standard_D16ds_v4 Utilizzo generico 16 Utilizzo generico Standard_D16ds_v4 Utilizzo generico 32 Utilizzo generico Standard_D32ds_v4 Utilizzo generico 64 Utilizzo generico Standard_D64ds_v4 Con ottimizzazione per la memoria 4 Business Critical Standard_E4ds_v4 Con ottimizzazione per la memoria 8 Business Critical Standard_E8ds_v4 Con ottimizzazione per la memoria 16 Business Critical Standard_E16ds_v4 Con ottimizzazione per la memoria 32 Business Critical Standard_E32ds_v4 1 Per la migrazione selezionare Calcolo 16 vCore per utilizzo generico per il server flessibile di destinazione per migrazioni più veloci. Tornare alle dimensioni di calcolo desiderate per il server di destinazione dopo il completamento della migrazione seguendo la raccomandazione sulle dimensioni di calcolo nella sezione Esecuzione di attività post-migrazione più avanti in questo articolo.
Una volta completata la migrazione, è possibile ripristinare i parametri del server e la configurazione ai valori richiesti dal carico di lavoro.
Configurare Il Servizio Migrazione del database
Dopo aver distribuito e configurato il server flessibile di destinazione, è necessario configurare il Servizio Migrazione del database per eseguire la migrazione del server singolo a un server flessibile.
Registrare il provider di risorse
Per registrare il provider di risorse Microsoft.DataMigration, seguire questa procedura.
Prima di creare la prima istanza del Servizio Migrazione del database, accedere al portale di Azure e quindi cercare e selezionare Sottoscrizioni.
Selezionare la sottoscrizione da usare per creare l'istanza del Servizio Migrazione del database e quindi selezionare Provider di risorse.
Cercare il termine "Migration" e quindi, per Microsoft.DataMigration, selezionare Registra.
Creare l'istanza del Servizio Migrazione del database
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.
Nella schermata Servizio Migrazione del database di Azure selezionare Crea.
Nella schermata Crea servizio Migrazione specificare un nome per il servizio, la sottoscrizione e un gruppo di risorse nuovo o esistente.
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.
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 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.
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.
Rivedere le configurazioni e selezionare Crea per creare il servizio.
Creare un progetto di migrazione
Dopo aver creato il servizio, individuarlo nel portale di Azure, aprirlo e creare un nuovo progetto di migrazione.
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.
Selezionare l'istanza del servizio di migrazione nei risultati della ricerca e selezionare + Nuovo progetto di migrazione.
Nella schermata Nuovo progetto di migrazione, specificate 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à di migrazione, selezionare Migrazione di dati. Selezionare Crea ed esegui attività.
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
Nella schermata Seleziona origine, specificare i dettagli di connessione per l'istanza di SQL Server di origine e selezionare Avanti: selezionare destinazione>>
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>>
Sulla schermata Seleziona i 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 Rendi di sola lettura server di origine per rendere l'origine di sola lettura, ma fare attenzione: si tratta di 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.
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.
Nella schermata Riepilogo, nella casella di testo Nome attività, specificare un nome per l'attività di migrazione e rivedere il riepilogo per verificare che i dettagli dell'origine e della destinazione corrispondano a quanto specificato in precedenza.
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.
Monitorare la migrazione
Nella schermata attività di migrazione, selezionare Aggiorna per aggiornare la visualizzazione e vedere lo stato di avanzamento del numero di tabelle completate.
È 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.
Completare la migrazione
Nella schermata dell'attività di migrazione selezionare Aggiorna per aggiornare la visualizzazione finché nel campo Stato della migrazione non viene indicato Completata.
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:
- Creare accessi, ruoli e autorizzazioni in base ai requisiti dell'applicazione.
- Ricreare tutti i trigger nel database di destinazione come estratto durante il passaggio di pre-migrazione.
- 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 seguendo questa procedura:
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.
Selezionare l'istanza del servizio di migrazione nei risultati della ricerca e selezionare Elimina servizio.
Nella casella di testo DIGITARE IL NOME DEL SERVIZIO MIGRAZIONE DEL DATABASE della finestra di dialogo di conferma specificare il nome del servizio e quindi selezionare Elimina.
Contenuto correlato
- Risolvere i problemi e gli errori comuni del Servizio Migrazione del database di Azure (versione classica)
- Risolvere gli errori del Servizio Migrazione del database di Azure durante la connessione a database di origine
- Che cos'è il Servizio Migrazione del database di Azure?
- Che cos'è il Database di Azure per MySQL?
- Eseguire la migrazione di MySQL a Database di Azure per MySQL offline con PowerShell e Servizio Migrazione del database di Azure