Perché salvare il database?

Backup regolari del database ti proteggono da:

  • Cancellazioni accidentali di dati
  • Intrusioni o attacchi con programmi dannosi
  • Aggiornamenti o migrazioni andati male
  • Guasti dell'hardware
  • Errori umani
Buona abitudine: fai un backup prima di ogni cambiamento importante, come un aggiornamento, una migrazione o l'installazione di un plugin.

Backup da phpMyAdmin

Esporta il database

  1. Apri phpMyAdmin da EGPNL
  2. Scegli il tuo database dal riquadro di sinistra
  3. Apri la scheda Esporta
  4. Scegli il metodo di esportazione:
    • Rapida: impostazioni predefinite, vanno bene quasi sempre
    • Personalizzata: più opzioni, per chi sa il fatto suo
  5. Formato: SQL
  6. Fai clic su Vai per scaricare il file .sql

Opzioni dell'esportazione personalizzata

Nell'esportazione personalizzata valuta queste opzioni:

  • Compressione: gzip, riduce parecchio la dimensione del file
  • Aggiungi DROP TABLE: utile quando sostituisci tutto
  • Solo dati: esporta i dati senza la struttura
  • Solo alcune tabelle: scegli soltanto quelle che ti servono

Importazione da phpMyAdmin

  1. Apri phpMyAdmin
  2. Scegli il database di destinazione (o creane uno nuovo e vuoto)
  3. Apri la scheda Importa
  4. Fai clic su Scegli file e seleziona il file .sql o .sql.gz
  5. Lascia le altre impostazioni come sono
  6. Fai clic su Vai
Attenzione all'importazione: sovrascrive le tabelle esistenti con lo stesso nome. Assicurati di importare nel database giusto.

Importare file grandi

Se il file di backup supera il limite di caricamento:

  • Comprimilo nel formato .sql.gz
  • Caricalo con il gestore dei file e importalo dal server
  • Oppure importalo da riga di comando (vedi sotto)
  • Spezzalo in file più piccoli

Backup da riga di comando

Per database grandi o per automatizzare, usa SSH:

Esportazione (mysqldump)

# Basic export
mysqldump -u username -p database_name > backup.sql

# With compression
mysqldump -u username -p database_name | gzip > backup.sql.gz

# Specific tables only
mysqldump -u username -p database_name table1 table2 > backup.sql

# All databases
mysqldump -u username -p --all-databases > all_databases.sql

Importazione (mysql)

# Import SQL file
mysql -u username -p database_name < backup.sql

# Import gzipped file
gunzip < backup.sql.gz | mysql -u username -p database_name

# Import with progress (for large files)
pv backup.sql | mysql -u username -p database_name

Il sistema di backup di EGPNL

Backup a mano

  1. Vai su Backup in EGPNL
  2. Scegli Backup dei database
  3. Indica quali database salvare
  4. Fai clic su Crea backup
  5. Scaricalo a operazione conclusa

Backup automatici

  1. Vai su BackupBackup programmati
  2. Attiva i backup automatici
  3. Scegli la frequenza (ogni giorno, ogni settimana)
  4. Decidi per quanto conservarli
  5. Includi i database nel backup
Spazio occupato: i backup automatici usano lo spazio del tuo hosting. Tieni d'occhio le dimensioni e regola di conseguenza per quanto conservarli.

Ripristinare da un backup

Da EGPNL

  1. Vai su Backup in EGPNL
  2. Trova il tuo backup nell'elenco
  3. Fai clic su Ripristina
  4. Scegli il ripristino del database
  5. Conferma e attendi la fine

Da phpMyAdmin

  1. Elimina le tabelle esistenti (se ripristini tutto)
  2. Importa il file di backup
  3. Verifica che i dati siano integri

Buone pratiche per i backup

  • Con regolarità: ogni giorno per i siti attivi
  • Prima delle modifiche: salva sempre prima di un aggiornamento
  • Fuori dal server: tieni delle copie in uno spazio cloud
  • Prova i ripristini: ogni tanto verifica che i backup funzionino
  • Più copie: conserva diverse versioni dei backup
  • Anche i file: salva sia il database SIA i file
La regola del 3-2-1: tieni 3 copie dei dati, su 2 tipi diversi di supporto, con 1 copia fuori sede.

Risoluzione dei problemi

L'importazione fallisce per tempo scaduto

Le importazioni grandi possono superare il tempo massimo. I rimedi:

  • Importa da riga di comando
  • Spezza il file SQL in parti più piccole
  • Importa una tabella alla volta

Problemi di codifica dei caratteri

Se dopo l'importazione il testo è illeggibile:

  • Assicurati che esportazione e importazione usino la stessa codifica (UTF-8)
  • Aggiungi --default-character-set=utf8mb4 ai comandi