Come effettuare il backup ed il restore dei database gestiti con MySQL.
BACKUP
I principali tool messi a disposizione all'amministratore di MySQL per effettuare il backup dei propri dati sono due: mysqlhotcopy e mysqldump.
mysqlhotcopy
mysqlhotcopy è uno script, scritto in linguaggio Perl, che, basandosi sul comando cp, effettua la copia "grezza" di un database, semplicemente copiando il contenuto della relativa directory dati, in un altro luogo sullo stesso sistema. La sua caratteristica principale è la velocità.
Esempio:
[root@vagante /]# mysqlhotcopy arnaldoz /backup-db/
In questo esempio il contenuto del database arnaldoz presente in /var/lib/mysql/arnaldoz viene copiato nella directory /backup-db
mysqldump
Mysqldump è un'utility che presenta alcuni vantaggi rispetto a mysqlhotcopy, ed quindi è maggiormente utilizzata. Essa genera un file ASCII contentente istruzioni SQL (CREATE TABLE, CREATE DATABASE ecc.) che permettono di ricreare completamente un database. Questo metodo permette di utilizzare lo script su qualsiasi piattaforma, ottenendo quindi una soluzione portabile. La seconda importante caratteristica è la flessibilità, modificando lo script prodotto, è possibile il ripristino anche di una sola tabella. Infine mysqldump permette di effetture il dump di un database da remoto.
Esempi:
[root@vagante backup-db]# mysqldump arnaldoz > arnaldoz_dump_db.sql -u root -p
Enter password: db3mendo
In questo caso viene eseguito il dump del database arnaldoz generando le relative instruzioni nel file arnaldo_dump_db.sql. E' necessario comunicare a mysqldump che si utilizzerà l'utente amministratore -u root con la relativa password -p
[root@vagante backup-db]# mysqldump --database arnaldoz mysql > arnaldoz_mysql_new_db.sql -u root -p
Enter password: db3mendo
Utilizzando l'opzione --database si esegue il dump dei detabase indicati, in questo caso arnaldoz e mysql
[root@vagante backup-db]# mysqldump --all-database > arnaldoz_new_db.sql -u root -p
Enter password: db3mendo
Con l'opzione --all-database viene generato lo script per la creazione di tutti i database presenti sul server
E' importante notare che utilizzando l'opzione --database
o --all-database
nello script sql generato vengono incluse anche le istruzioni per creare il database (CREATE DATABASE), mentre negli altri casi, si presuppone che il database sia gia' esistente, di conseguenza viene generato uno script SQL che si occupa solamente di ricreare le tabelle.
Per effettuare la copia di un database nel modo più veloce ed affidabile possibile, è consigliato di utilizzare l'opzione di mysqldump --opt
, la quale abilita automaticamente diverse altre opzioni quali --quick
, --add-drop-table
,--add-locks
,--extended-insert
, e--locktables
:
[root@vagante backup-db]# mysqldump --opt arnaldoz > arnaldoz_dump_db.sql -u root -p
Enter password: db3mendo
--quick: effettua il dump direttamente sullo standard output;
--add-drop-table: inserisce le istruzioni di eliminare le tabelle esistenti prima di ricrearle;
--add-locks: blocca momentaneamente gli eventuali inserimenti;
--extended-insert: utilizza un metodo per velocizzare l'inserimento dei dati;
--lock-tables: blocca momentanteamente le tabelle in lettura;
RESTORE
Qualora il backup del database sia stato fatto con mysqlhotcopy, il restore avviene, dopo aver fermato il server, copiando il contenuto del file di backup nella directory dati di MySQL:
[root@vagante /]# cp -R /backup-db/arnaldoz /var/lib/mysql
Per il restore di un database di cui si è fatto il backup con mysqldump è possibile utilizzare l'utility di console mysql.
Alcuni esempi:
[root@vagante backup-db]# mysql < arnaldoz_dump_db.sql -u root -p
Enter password: db3mendo
Come utente root, si passa a mysql in input lo script che permette di ripristinare il contenuto del database
[root@vagante backup-db]# mysql --one-database arnaldoz < all_db_joker.sql -u root -p
In questo caso sebbene lo script serva per ripristinare un elenco di database, tramite l'opzione --one-database viene specificato solo un database
debug
Ho bisogno di un file in cui vengano riportati gli eventuali errori durante il dump.
Ci dovrebbe essere l'opzione --debug , ma non mi crea il file, non riesco a capire come funziona.
Qualcuno può aiutarmi??
Piccola integrazione all'INFOBOX
Quando si effettua il restore è necessario specificare anche il database da utilizzare
es:
[root@vagante backup-db]# mysql < arnaldoz_dump_db.sql -u root -p arnaldoz
Re: Backup online
Installa phpMyAdmin e lo potrai fare via Web.
RispondiBackup online
Salve a tutti,
ho sviluppato un portale di vendita articoli per un cliente utilizzando una tecnologia php/mysql. Adesso, su sua espressa richiesta, dovrei consentirgli di effettuare il backup del db ogni qualvolta lo desideri.
Ho visto che è possibile farlo tramite mysqldump, ma, da quanto leggo, le operazioni indicate deve essere essere effettuate dalla shell del server, che, però, nel mio caso, non è visibile al cliente.
Per tale motivo, mi chiedo se sia possibile implementare tale funzionalità direttamente da pagina php del portale di modo che il cliente possa eseguirla online.
Grazie.
Ciao.
Backup in Locale di un sito Remoto
Sto iniziando a sviluppare un programma per il backup locale di database remoti non accessibili dall'esterno localhost
indirizzo
<a href=
http://pianeta.altervista.org/?p=11
Log Msql
è possibile visualizzare i log di un db MySqkl senza aver installato MySql?
Rispondire: rispristino
Se non hai accesso ad una shell, ti serve un webtool tipo phpMyAdmin
Rispondi...Host
Per informazioni adesso il sito è su altervista...
RispondiHost
Salve,io ho un sito in
php nuke e vorrei mettere il tutto su host ( aruba ) solo che
parliamo di oltre 1500
file da scaricare prima nel mio pc e poi upparli su aruba...ce una soluzione + veloce ? tnx !
ripristino
e se non hai accesso ad una shell del server ??
Rispondire: rispristino
Se hai accesso ad una shell del server puoi scrivere: mysql nomedatabase < nomefile.sql
RispondiRipristino Db Forum di 30mb
Salve, devo fare il ripristino di un db di un forum.Ho un file sql di 30mb. Fino ad ora ho dovuto spezzettare il file in tante piccole query da faer via phpmyadmin..ma è un lavoro lungo e abbastanza stressante! Mi hann o detto che esiste un altra soluzione...e mi hanno linkato a questo sito...ma non ho capito bene come procedere! Qualcuno può darmi qualche dritta?
Grazie
MySql: immagine in campo blob
sul dbServer, nel db lavoro ho una tabella (anagrafica) con un campo blob (foto) che contiene il jpg del dipendente. Per motivi di sicurezza non vorrei utilizzare dumpfile, ma cercavo (chiedo)una soluzione mysqldump per scaricare in locale (sul client) l'immagine. Grazie
Rispondidatabase con estensione mdf
devo aprire un file che è stato generato da un dump del database di un sitoweb. il file ha estensione mdf. come posso fare per aprire il database?
Rispondire:ripristino di una tabella da 7,4 MB
se hai accesso via shell, puoi entrare in mysql:
* mysql -unomeutente -p
* a questo punto ti viene chiesta la password;
* selezioni il database che ti interessa con: USE NOMEDATABASE;
*scrivi:
* source nomefileditesto.sql
* fine.
Ciao!
transazioni
c'e qualcuno che sa come sono strutturate in slq le transazioni per mysql??
Rispondire:ripristino di una tabella da 7,4 MB
Ecco la mia configurazione:
Windows XP pro + SP1
Web server: Apache 2.0.52 (Win32)
PHP: 4.3.9
phpMyAdmin: 2.6.0-pl3
Grazie per la collaborazione
re: re:ripristino di una tabella da 7,4 MB
Che web server usi?
Rispondire: re:ripristino di una tabella da 7,4 MB
Ho provato a modificare la stringa nel file php.ini ma la domensione max consentita rimane purtroppo 2048 KB.
La versione del phpMyAdmin è 2.6.0-pl3
Grazie
re:ripristino di una tabella da 7,4 MB
Prova a dare un occhiata a php.ini, il valore di default per gli upload è proprio:
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M