Eseguire la migrazione del database MariaDB a Database di Azure per MariaDB tramite dump e ripristino

Importante

Database di Azure per MariaDB è sul percorso di ritiro. È consigliabile eseguire la migrazione a Database di Azure per MySQL. Per altre informazioni sulla migrazione a Database di Azure per MySQL, vedere What's happening to Database di Azure per MariaDB?.

Questo articolo illustra due modi comuni per eseguire il backup e il ripristino di database nel database di Azure per MariaDB:

  • Eseguire il dump e il ripristino usando uno strumento da riga di comando (usando mysqldump).
  • Eseguire il dump e il ripristino con phpMy Amministrazione.

Prerequisiti

Prima di iniziare la migrazione del database, eseguire le operazioni seguenti:

Usare strumenti comuni

Usare utilità e strumenti comuni, ad esempio MySQL Workbench o mysqldump, per connettersi e ripristinare in remoto i dati nel database di Azure per MariaDB. Usare questi strumenti nel computer client con una connessione Internet per connettersi al database di Azure per MariaDB. Usare una connessione crittografata SSL come procedura consigliata per la sicurezza. Per altre informazioni, vedere Configurare la connettività SSL in Database di Azure per MariaDB. Non è necessario spostare i file di dump in un percorso cloud speciale quando si esegue la migrazione dei dati al database di Azure per MariaDB.

Usi comuni per il dump e ripristino

È possibile usare le utilità MySQL, ad esempio mysqldump e mysqlpump, per eseguire il dump e il caricamento dei database in un server di Database di Azure per MariaDB in diversi scenari comuni.

  • Usare i dump del database quando si esegue la migrazione di un intero database. Questa raccomandazione è valida quando si sposta una grande quantità di dati o quando si vuole ridurre al minimo l'interruzione del servizio per siti o applicazioni live.

  • Assicurarsi che tutte le tabelle nel database usino il motore di archiviazione InnoDB quando si caricano dati nel database di Azure per MariaDB. Database di Azure per MariaDB supporta solo il motore di archiviazione InnoDB e nessun altro motore di archiviazione. Se le tabelle sono configurate con altri motori di archiviazione, convertirle nel formato del motore InnoDB prima di eseguirne la migrazione al database di Azure per MariaDB.

    Ad esempio, se si dispone di un'app WordPress o di un'app Web che usa tabelle MyISAM, convertire prima di tutto tali tabelle eseguendo la migrazione in formato InnoDB prima di ripristinarle nel database di Azure per MariaDB. Usare la clausola ENGINE=InnoDB per impostare il motore da usare per la creazione di una nuova tabella e quindi trasferire i dati nella tabella compatibile prima di ripristinarli.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    
  • Per evitare problemi di compatibilità quando si esegue il dump dei database, assicurarsi di usare la stessa versione di MariaDB nei sistemi di origine e di destinazione. Ad esempio, se il server MariaDB esistente è la versione 10.2, è necessario eseguire la migrazione al database di Azure per MariaDB configurato per l'esecuzione della versione 10.2. Il mysql_upgrade comando non funziona in un server Database di Azure per MariaDB e non è supportato. Se è necessario eseguire l'aggiornamento tra le versioni di MariaDB, eseguire prima di tutto il dump o esportare il database versione precedente in una versione successiva di MariaDB nel proprio ambiente. È quindi possibile eseguire mysql_upgrade prima di provare a eseguire la migrazione nel database di Azure per MariaDB.

Considerazioni sulle prestazioni

Per ottimizzare le prestazioni quando si esegue il dump di database di grandi dimensioni, tenere presenti le considerazioni seguenti:

  • Usare l'opzione exclude-triggers in mysqldump. Escludere i trigger dai file di dump per evitare che i comandi trigger vengano attivati durante il ripristino dei dati.
  • Usare l'opzione single-transaction per impostare la modalità di isolamento delle transazioni su REPEATABLE READ e inviare un'istruzione SQL START TRANSACTION al server prima di eseguire il dump dei dati. Il dump di molte tabelle all'interno di una singola transazione comporta l'utilizzo di spazio di archiviazione aggiuntivo durante il ripristino. L'opzione single-transaction e l'opzione lock-tables si escludono a vicenda. Ciò è dovuto al fatto che LOCK TABLES causa il commit implicito di tutte le transazioni in sospeso. Per eseguire il dump di tabelle di grandi dimensioni, combinare l'opzione single-transaction con l'opzione quick.
  • Usare la sintassi a più righe extended-insert che include vari elenchi VALUES. Questo approccio comporta un file di dump più piccolo e velocizza gli inserimenti quando il file viene ricaricato.
  • Usare l'opzione order-by-primary in mysqldump quando si esegue il dump dei database, in modo che i dati vengano inseriti nello script nell'ordine delle chiavi primarie.
  • Usare l'opzione disable-keys in mysqldump quando si esegue il dump dei dati per disabilitare i vincoli di chiave esterna prima del caricamento. La disabilitazione dei controlli delle chiavi esterne consente di migliorare le prestazioni. Abilitare i vincoli e verificare i dati dopo il caricamento per garantire l'integrità referenziale.
  • Usare le tabelle partizionate quando appropriato.
  • Caricare i dati in parallelo. Evitare un eccessivo parallelismo, che potrebbe causare un limite di risorse e monitorare le risorse usando le metriche disponibili nella portale di Azure.
  • Usare l'opzione defer-table-indexes in mysqlpump quando si esegue il dump dei database, in modo che la creazione dell'indice venga eseguita dopo il caricamento dei dati della tabella.
  • Copiare i file di backup in un archivio BLOB di Azure ed eseguire il ripristino da questa posizione. Questo approccio dovrebbe essere molto più veloce rispetto all'esecuzione del ripristino in Internet.

Creare un file di backup

Per eseguire il backup di un database MariaDB esistente nel server locale o in una macchina virtuale, eseguire il comando seguente usando mysqldump:

mysqldump --opt -u <uname> -p<pass> <dbname> > <backupfile.sql>

I parametri da specificare sono:

  • <uname>: nome utente del database
  • <pass>: la password per il database (si noti che non vi è spazio tra -p e la password)
  • <dbname>: nome del database
  • <backupfile.sql>: nome del file per il backup del database
  • <--opt>: opzione mysqldump

Ad esempio, per eseguire il backup di un database denominato testdb nel server MariaDB con il nome utente testuser e senza password in un file testdb_backup.sql, usare il comando seguente. Il comando esegue il backup del database testdb in un file denominato testdb_backup.sql, che contiene tutte le istruzioni SQL necessarie per ricreare il database.

mysqldump -u root -p testdb > testdb_backup.sql

Per selezionare tabelle specifiche di cui eseguire il backup nel database, elencare i nomi delle tabelle, separati da spazi. Ad esempio, per eseguire il backup solo di tabelle table1 e table2 dal database di test, seguire questo esempio:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

Per eseguire il backup di più database contemporaneamente, usare l'opzione --database ed elencare i nomi dei database, separati da spazi.

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Creare un database sul server di destinazione

Creare un database vuoto nel database di Azure per il server MariaDB di destinazione in cui si vuole eseguire la migrazione dei dati. Usare uno strumento come MySQL Workbench per creare il database. 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, individuare le informazioni di connessione nel riquadro Panoramica del database di Azure per MariaDB.

Screenshot of the Overview pane for an Azure database for MariaDB server in the Azure portal.

In MySQL Workbench aggiungere le informazioni di connessione.

Screenshot of the MySQL Connections pane in MySQL Workbench.

Ripristinare il database di MariaDB

Dopo aver creato il database di destinazione, è possibile usare il comando mysql o MySQL Workbench per ripristinare i dati nel database appena creato dal file di dump.

mysql -h <hostname> -u <uname> -p<pass> <db_to_restore> < <backupfile.sql>

In questo esempio si ripristinano i dati nel database appena creato nel server di Database di Azure per MariaDB di destinazione.

mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Esportare il database MariaDB usando phpMy Amministrazione

Per esportare, è possibile usare lo strumento comune phpMy Amministrazione, che potrebbe essere già installato localmente nell'ambiente. Per esportare il database MariaDB, eseguire le operazioni seguenti:

  1. Aprire phpMyAdmin.
  2. Nel riquadro sinistro selezionare il database e quindi selezionare il collegamento Esporta . Viene visualizzata una nuova pagina per eseguire il dump del database.
  3. Nell'area Esporta selezionare il collegamento Seleziona tutto per scegliere le tabelle nel database.
  4. Nell'area Opzioni SQL selezionare le opzioni appropriate.
  5. Selezionare l'opzione Salva come file e l'opzione di compressione corrispondente e quindi selezionare Vai. Al prompt, salvare il file in locale.

Importare il database usando phpMy Amministrazione

Il processo di importazione è simile al processo di esportazione. Effettua le operazioni seguenti:

  1. Aprire phpMyAdmin.
  2. Nella pagina di installazione di phpMy Amministrazione selezionare Aggiungi per aggiungere il server Database di Azure per MariaDB.
  3. Immettere i dettagli di connessione e le informazioni di accesso.
  4. Creare un database denominato in modo appropriato e quindi selezionarlo nel riquadro sinistro. Per riscrivere il database esistente, selezionare il nome del database, selezionare tutte le caselle di controllo accanto ai nomi delle tabelle e selezionare Elimina per eliminare le tabelle esistenti.
  5. Selezionare il collegamento SQL per visualizzare la pagina in cui è possibile immettere i comandi SQL o caricare il file SQL.
  6. Selezionare il pulsante Sfoglia per trovare il file di database.
  7. Selezionare il pulsante Vai per esportare il backup, eseguire i comandi SQL e ricreare il database.

Passaggi successivi