Eseguire la migrazione del database di Database di Azure per MySQL - Server flessibile usando l'importazione e l'esportazione
In questo articolo vengono illustrati due approcci comuni per importare ed esportare i dati in un’istanza del server flessibile di Database di Azure per MySQL con MySQL Workbench.
Per indicazioni dettagliate e complete sulla migrazione, vedere le risorse della guida alla migrazione.
Per altri scenari di migrazione, vedere la Guida alla migrazione del database.
Prerequisiti
Prima di iniziare la migrazione del database MySQL, è necessario:
- Creare un’istanza del server flessibile di Database di Azure per MySQL con il portale di Azure.
- Scaricare e installare MySQL Workbench o un altro strumento MySQL di terze parti per l'importazione e l'esportazione.
Creare un database sull’istanza del server flessibile di Database di Azure per MySQL
Creare un database vuoto nell’istanza del server flessibile di Database di Azure per MySQL usando MySQL Workbench, Toad o Navicat. Il database può avere lo stesso nome del database che contiene i dati di dump; in alternativa, è possibile creare un database con un nome diverso.
Per connettersi, eseguire le operazioni seguenti:
Nel portale di Azure, cercare le informazioni di connessione nel riquadro Panoramica dell’istanza del server flessibile di Database di Azure per MySQL.
Aggiungere le informazioni di connessione a MySQL Workbench.
Determinare quando usare le tecniche di importazione ed esportazione
Suggerimento
Per gli scenari in cui si vuole eseguire il dump e il ripristino dell'intero database, usare invece l'approccio di dump e ripristino.
Negli scenari seguenti, usare gli strumenti di MySQL per importare ed esportare database nel database MySQL. Per altri strumenti, passare alla sezione "Metodi di migrazione" (pagina 22) della guida alla migrazione di MySQL al database di Azure.
- Quando è necessario scegliere in modo selettivo alcune tabelle da importare da un database MySQL esistente al database del server flessibile di Database di Azure per MySQL, è consigliabile usare la tecnica di importazione ed esportazione. In questo modo, è possibile omettere tutte le tabelle non necessarie dalla migrazione per risparmiare tempo e risorse. Ad esempio, usare l'istruzione
--include-tables
o--exclude-tables
con mysqlpump e l'istruzione--tables
con mysqldump. - Quando si spostano oggetti del database diversi dalle tabelle, crearli in modo esplicito. Includere vincoli (chiave primaria, chiave esterna e indici), viste, funzioni, procedure, trigger e altri oggetti di database per i quali si intende eseguire la migrazione.
- Quando si esegue la migrazione di dati da origini dati esterne diverse da un database MySQL, creare un file flat e importarli usando mysqlimport.
Importante
Sia il server singolo di Database di Azure per MySQL che il server flessibile di Database di Azure per MySQL supportano solo il motore di archiviazione InnoDB. Verificare che tutte le tabelle nel database usino il motore di archiviazione InnoDB quando si caricano dati nell’istanza del server flessibile di Database di Azure per MySQL.
Se il database di origine usa un altro motore di archiviazione, eseguire la conversione nel motore InnoDB prima di eseguire la migrazione del database. Se ad esempio si possiede un'app Web o WordPress che usa il motore MyISAM, convertire prima le tabelle eseguendo la migrazione dei dati in tabelle InnoDB. Usare la clausola ENGINE=INNODB
per impostare il motore per la creazione di una tabella e trasferire i dati nella tabella compatibile prima della migrazione.
INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
Consigli relativi alle prestazioni per l'importazione ed esportazione
Per ottenere prestazioni ottimali di importazione ed esportazione dei dati, è consigliabile eseguire le operazioni seguenti:
- Creare indici cluster e chiavi primarie prima di caricare dati. Caricare i dati nell'ordine delle chiavi primarie.
- Ritardare la creazione di indici secondari fino al termine del caricamento dei dati.
- Disabilitare i vincoli di chiave esterna prima di caricare i dati. La disabilitazione dei controlli della chiave esterna offre miglioramenti significativi delle prestazioni. Abilitare i vincoli e verificare i dati dopo il caricamento per garantire l'integrità referenziale.
- Caricare i dati in parallelo. Evitare un eccessivo parallelismo che comporterebbe il raggiungimento del limite di risorse e monitorare le risorse con le metriche offerte nel portale di Azure.
- Usare le tabelle partizionate quando appropriato.
Importare ed esportare i dati con MySQL Workbench
Esistono due modi per esportare e importare dati in MySQL Workbench: dal menu di scelta rapida del visualizzatore oggetti o dal riquadro Strumento di navigazione. Ogni metodo ha uno scopo diverso.
Nota
Se si aggiunge una connessione al server singolo di Database di Azure per MySQL o al server flessibile di Database di Azure per MySQL in MySQL Workbench, eseguire le operazioni seguenti:
- Per il server singolo di Database di Azure per MySQL, assicurarsi che il nome utente sia nel formato <username@servername>.
- Per il server flessibile di Database di Azure per MySQL, usare solo il <nome utente>. Se si usa <username@servername> per connettersi, la connessione avrà esito negativo.
Eseguire le procedure guidate di esportazione e importazione dei dati della tabella tramite il menu di scelta rapida del visualizzatore oggetti
Le procedure guidate per i dati delle tabelle supportano le operazioni di importazione ed esportazione tramite i file CSV e JSON. Le procedure guidate includono diverse opzioni di configurazione, ad esempio separatori, selezione colonne e selezione di codifica. È possibile eseguire ogni procedura guidata su server MySQL connessi in modalità remota o locale. L'operazione di importazione include tabelle, colonne e mapping dei tipi.
Per accedere alle procedure guidate dal menu di scelta rapida del visualizzatore oggetti, fare clic con il tasto destro su una tabella e scegliereEsportazione guidata di tabelle o Importazione guidata di tabelle.
Esportazione guidata di tabelle
Per esportare una tabella in un file CSV:
- Fare clic con il pulsante destro del mouse sulla tabella del database da esportare.
- Selezionare Table Data Export Wizard (Esportazione guidata di tabelle). Selezionare le colonne da esportare, l'offset di riga (se presente) e il conteggio (se presente).
- Nel riquadro Seleziona dati per l'esportazione selezionare Avanti. Selezionare il percorso del file, il tipo di file CSV o JSON. Selezionare anche separatore di riga, metodo di inclusione delle stringhe e separatore di campo.
- Nel riquadro Selezionare la posizione del file di output, selezionare Avanti.
- Nel riquadro Esporta dati, selezionare Avanti.
Importazione guidata di tabelle
Per importare una tabella da un file CSV:
- Fare clic con il pulsante destro del mouse sulla tabella del database da importare.
- Cercare e selezionare il file CSV da importare, quindi selezionare Avanti.
- Selezionare la tabella di destinazione (nuova o esistente), selezionare o deselezionare la casella di controllo Tronca tabella prima dell'importazione, quindi selezionare Avanti.
- Selezionare la codifica e le colonne da importare, quindi selezionare Avanti.
- Nel riquadro Importa dati, selezionare Avanti. La procedura guidata importa i dati.
Eseguire l’esportazione e l’importazione guidata di dati SQL dal riquadro Strumento di navigazione
Usare una procedura guidata per esportare o importare dati SQL generati da MySQL Workbench o tramite il comando mysqldump. È possibile accedere alle procedure guidate dal riquadro Strumento di navigazione oppure selezionando Server dal menu principale.
Esportare dati
È possibile usare il riquadro Esporta dati per esportare i dati di MySQL.
In MySQL Workbench, nel riquadro Strumento di navigazione, selezionare Esportazione dati.
Nel riquadro Esportazione dati, selezionare ogni schema da esportare.
Per ogni schema, è possibile selezionare oggetti o tabelle dello schema specifici da esportare. Le opzioni di configurazione includono l'esportazione in una cartella di progetto o in un file SQL autonomo, eventi e routine di dump archiviati o consentono di ignorare i dati della tabella.
In alternativa, usare Export a Result Set (Esporta un set di risultati) per esportare uno specifico set di risultati nell'editor SQL in un altro formato, come ad esempio CSV, JSON, HTML e XML.
Selezionare gli oggetti del database da esportare e configurare le opzioni correlate.
Selezionare Aggiorna per caricare gli oggetti correnti.
Facoltativamente, selezionare Opzioni avanzate in alto a destra per perfezionare l'operazione di esportazione. Ad esempio, aggiungere blocchi di tabella, usare istruzioni
replace
anzichéinsert
e indicare gli identificatori con i caratteri di apice inverso.Selezionare Avvia esportazione per iniziare il processo di esportazione.
Importare dati
È possibile usare il riquadro Importa dati per importare o ripristinare i dati esportati tramite l'operazione di esportazione dati o con il comando mysqldump.
- In MySQL Workbench, nel riquadro Strumento di navigazione, selezionare Importa/Ripristina.
- Selezionare la cartella di progetto o il file SQL autonomo, selezionare lo schema in cui eseguire l'importazione o selezionare il pulsante Nuovo per definire un nuovo schema.
- Selezionare Inizia importazione per avviare il processo di importazione.