Il modo più veloce per migrare database MySQL su un altro server con Mysqldump

Migrare un database MySQL su un altro server può essere una sfida, soprattutto se punti a tempi di inattività minimi e a prestazioni elevate.

Uno degli strumenti più popolari per svolgere questo compito è mysqldump, un’utility fornita da MySQL per il backup e il ripristino dei database. In questo articolo ti guideremo nell’uso di mysqldump per migrare il tuo database e nella creazione di uno script per automatizzare il processo.

Prerequisiti

  • Server di origine e di destinazione con MySQL installato
  • Credenziali root di MySQL o un account con privilegi sufficienti su entrambi i server
  • Accesso SSH a entrambi i server oppure il server DB deve consentire connessioni in ingresso (se non sulla stessa macchina)

Esportare il database usando mysqldump

Il primo passo nel processo di migrazione è creare un backup del database di origine. Useremo mysqldump per farlo. Mysqldump crea uno script SQL contenente tutti i comandi necessari per ricreare la struttura del database e i dati sul server di destinazione.

Accedi al server di origine ed esegui il seguente comando per creare un backup compresso del tuo database:

Sostituisci [username], [database_name] e [backup_file] rispettivamente con il tuo nome utente MySQL, il nome del database che vuoi migrare e il nome desiderato del file di backup.

Questo comando utilizza il flag --single-transaction per garantire la coerenza dei dati, --quick per ridurre l’uso di memoria e –lock-tables=false per evitare il blocco delle tabelle durante il processo di esportazione.

Il parametro più importante è –extended-insert. Questo renderà l’importazione del file SQL esportato da 10 a 15 volte più veloce sul server di destinazione.

Trasferire il file di backup sul server di destinazione

Dopo aver creato il backup, puoi importarlo sull’altro server di database.

  • Copia il file gzip compresso sul server e importalo
  • Decomprimi il file e caricalo con MySQL via SSH sul server DB

Per trasferirlo sul server di destinazione, puoi utilizzare uno strumento come SCP, SFTP o rsync. Ad esempio, per usare SCP:

Sostituisci [backup_file], [destination_user], [destination_ip] e /path/to/destination con i valori appropriati.

Importare il database sul server di destinazione

Una volta trasferito il file di backup, accedi al server di destinazione ed esegui il seguente comando per importare il database:

Sostituisci [username], [database_name] e [backup_file] rispettivamente con il tuo nome utente MySQL, il nome del database che vuoi migrare e il nome del file di backup.

Scaricare lo script di migrazione del database

Per automatizzare il processo di migrazione del database MySQL, puoi usare questo script bash che abbiamo utilizzato qui su wp-staging.com per migrare il nostro database verso un managed DB ospitato su DigitalOcean. (Non viene più usato perché WP Staging può ora eseguire la migrazione del database):

Sostituisci i valori delle credenziali del database in cima al file con le informazioni appropriate per i tuoi database di origine e di destinazione.

Prima di eseguire lo script, assicurati che i database di origine e di destinazione siano accessibili.

Successivamente, assegna allo script i permessi di esecuzione:

Esegui lo script per effettuare la migrazione:

Questo script esporta il database di origine usando mysqldump, importa il database sul server di destinazione utilizzando il comando mysql e infine ripulisce rimuovendo il file di backup.

Articoli correlati

Rene Hermenau

Autore: Rene Hermenau

Informazioni sull'autore: René Hermenau è il fondatore di WP STAGING. Si occupa di backup WordPress, staging, migrazioni, gestione dei database e flussi di deployment sicuri.