Home
Home
Tutorials
   PHP
   Java
   Tutti...
Manuali
SmartImage
Marketing
Downloads
Contatti
Affiliati

  Da vedere
Hosting
Statistiche per siti
Corsi per webmaster
Hardware
Processori


  OnFocus
HTML con PHP

Ajax Autocompleter nei nostri form

Backup di un database mysql command line, con compressione

  Siti Amici
Miki News
Giochi gratis
Areagratis
Baratto Online
AI Machines
Guide e Manuali Gratis
Egregio Directory
ScambioLink.org
Suonerie
Elenco Domini .it
Animali in montagna
Ricerca Internet
Add to Technorati Favorites

Tutti i siti amici
Diventa Affiliato

 


Autore: Alessandro Coscia
Categoria: mysql
Livello: normale Livello normale

Backup di un database mysql command line, con compressione

Come backuppare un db mysql e comprimerlo in un archivio .tar.gz o .tar.bz2

A tutti sarà capitato di dover fare un backup di un database o di una tabella, il modo più immediato per farlo è attraverso l'esporta di phpMyAdmin che però a volte non è sufficiente per le nostre esigenze.
Se avete bisogno di un backup via riga di comando, o di backuppare grandi moli di dati mysqldump fa al caso vostro.
In realtà esiste un tool più veloce che è mysqlhotcopy ma non è altrettanto versatile, per esempio si possono salvare solo tabelle MyIsam, quindi noi andremo a vedere solo mysqldump.

MySqlDump
Il suo utilizzo è molto semplice, ecco un esempio:
mysqldump dbname nome_file.sql -u tuo_username -p

Questo esempio fa il dump del database "dbname" sul file "nome_file.sql" con username "tuo_username". Vi verrà richiesto l'username.

Se fate il backup di grandi tabelle vi consiglio di usare queste due opzioni:
mysqldump dbname tablename --skip-extended-insert --quick file_name.sql -u root -p

--skip-extended-insert serve per far creare un singolo insert per ogni record, questo renderà il dump di dimensioni maggiori ma vi sarà molto comodo per reimportare il db, per esempio attraverso bigdump.
--quick è un'opzione indispensabile per tabelle molto grandi (per esempio 2 Gb), infatti evita di mettere in cache i record prima di salvarli sul file di dump, e li scrive direttamente. Questo aiuta molto per la RAM.
tablename: questa non è un'opzione ma è solo per farvi vedere che è possibile specificare quale tabella del db bisogna salvare. E' una cosa comoda per tabelle di applicazioni diverse o di grandi dimensioni.

Per importare un backup che avete fatto potete eseguire il comando:
mysql nome_file.sql -u root -p


Se un errore vi segnala che nel dump non è selezionato il database bisogna specificarlo in questo modo:
mysql nome_file.sql --database db_name -u root -p


Inoltre se state utilizzando windows dovete entrare tramite riga di comando nella cartella bin all'interno della folder in cui è installato mysql e quindi specificare la root completa del file da importare, per esempio:
mysql C:nome_file.sql --database db_name -u root -p


Potete trovare altri esempi su come copiare l'intero db o come importare i dati da qui: MySql: Backup e Restore
Qui trovate la documentazione ufficiale di mysqldump.


Compressione .tar
Arriviamo ad una parte interessante, meno per altri che hanno già usato questa utility, la compressione con tar.
Prima di tutto vi segnalo che tar di default crea un "archivio" per i file indicati ma non li comprime se non lo specificate!

Compressione .tar.gz (gzip)
tar -czvf nome_archivio_compresso.tar.gz file_da_comprimere.sql

tar è l'utility che stiamo utilizzando per l'archiviazione
-c indica che bisogna creare un nuovo archivio
z indica che vogliamo una compressione gzip
v ci aggiorna sull'andamento della compressione (utile se archiviamo più di un file)
f indica che andreamo a specificare il nome del file
Se non ci fosse stata la z il file sarebbe stato archiviato senza compressione, nel nostro caso sarebbe stato totalmente inutile.

Compressione .tar.bz2 (bzip2)
tar -cjvf nome_archivio_compresso.tar.bz2 file_da_comprimere.sql

j indica che questo file dovrà essere compresso in bzip2

Decompressione
tar -xvfz nome_archivio.tar.gz

x indica che stiamo estraendo un archivio
z indica che stiamo decomprimendo da gzip, togli z e metti j se invece l'archivio era bz2

Meglio gzip o bzip2?
Grazie ai preziosi benchmarks di Lasse Collin possiamo trovare una risposta a questa domanda.
Come al solito... dipende! Direi che in generale gzip è la migliore forma di compressione visto la sua velocità mentre bzip2, che risulta notevolmente più lento come metodo, riesce ad ottenere risultati di compressione migliori, seppur in più tempo.
Se avete bisogno di prestazioni direi gzip, se non vi preoccupate della CPU optate per bzip2 ma avrete una compressione migliore del solo 5%.


Bene, ora sarete in grado di fare un backup tramite mysqldump, comprimerlo e metterlo dove volete.
Buon lavoro!



Far cercare parole corte a MySql Full-Text Precedente Indice Successivo Importare un file mysql (.sql) da riga di comando
Far cercare parole corte a MySql Full-Text Importare un file mysql (.sql) da riga di comando
 
 VertoWeb - Aggregatore RSS - Etichettatrici - Codice Facile - Arte Modellistica