You are here

Bigdump.php - utility essenziale per cms

Inviato da giovanninews on Mar, 21/04/2009 - 15:53

phpMyAdmin-icona Come forse faranno tutti gli amministratori dei siti web che utilizzano un cms/cmf, per fare le prove con nuovi moduli e testare la funzionalità del cms, utilizzo una copia in locale del sito, ottenuta con un backup dei files e del database di produzione e l' installazione sul mio computer di XAMPP.

Io utilizzo Drupal, ma potrebbe essere lo stesso per chi utilizza Joomla, Wordpress o altri cms.

Naturalmente, per poter effettuare test più reali e quindi applicare sul sito in produzione i nuovi moduli e le diverse funzionalità, ogni tanto devo anche aggiornare il sito locale, e lo faccio semplicemente rimpiazzando i files ed il database del sito locale con un backup dei files ed un backup del database del sito remoto, naturalmente modificando il mio settings.php.

Problema: il dump del database troppo grande

Nella mia inesperienza, trasferire i dati del backup database del sito in produzione nel database vuoto creato in locale, è sempre stato un grosso problema e impiegavo diverso tempo.

Ho finora sempre utilizzato phpMyAdmin, creando prima un database vuoto e trasferendoci i dati del backup del database in produzione con la funzione "IMPORTA".

Inizialmente, quando i dati di backup del database da importare erano pochi, andava tutto bene, ma quando i dati  di backup del sito in produzione hanno iniziato ad essere più voluminosi sono cominciati i problemi, sia per il tempo impiegato dalla funziona "Importa" che per i numerosi errori che si creavano.

Ho cominciato quindi ad importare il backup del database spezzandolo in varie parti, dalla tabella ... alla tabella ... Immaginate quanto tempo e noia nel fare tutto questo ! Finchè sono arrivato al punto che anche questo metodo non funzionava.

Backup del database: il ripristino con Bigdump.php

Non mi ero ancora accorto che esisteva un metodo notevolmente superiore, indicato, tra l' altro dal phpMyAdmin, nel momento che andava in errore perchè il dump ( backup ) del database da trasferire era troppo grosso.

phpMyAdmin-import-error-R

Bisogna utilizzare una piccolissima e velocissima utility in php, chiamata Bigdump.php. Tanti già la conosceranno, ma tanti inesperti come me forse no, per cui ritengo di fare una cosa gradita ad alcuni nel segnalarla.

Bigdump.php è una utility gratuita che può essere utilizzata per trasferire backup di database sia nei siti in produzione localizzati su server remoti e sia nei siti in locale utilizzati appunto come ambienti per test.

Bigdump.php è un piccolissimo file di 34Kb ed è distribuito in formato Zip. Utilizzarlo è semplicissimo. Per l' utilizzo nel sito locale, quindi in localhost, seguire questi passi:

  1. creare la cartella dump sotto la cartella principale del nostro sito locale
  2. estrarre nella cartella dump appena creata il contenuto del file zippato appena scaricato (il file Bigdump.zip contiene appunto il nostro bigdump.php)
  3. copiare, sempre nella cartella dump, il backup del database di produzione che potrebbe essere ad esempio miodb.sql
  4. editare, configurandolo al nostro scopo, il file bigdump.php, mettendo le informazioni di configurazione del nostro database, ad esempio
  • $db_server   = 'localhost';
  • $db_name    = 'nomedeldatabase';
  • $db_username = 'userdeldatabase';
  • $db_password = 'passworddeldatabase';

editare inoltre la seguente riga del bigdump.php
$linespersession  = 300;
Io ho messo come valore 3000.

     5.  eseguire bigdump.php con un web browser; nel caso dell' esempio sarà:

          xxxx://localhost/dir_principale_installazione_locale/dump/bigdump.php

          (naturalmente http e non xxxx)

Nel mio caso, ha trasferito correttamente il backup del database , circa 120MB in un minuto.

Utilizzare bigdump.php su server remoto per trasferirci backup di database, significa che il database in produzione è corrotto ed il nostro sito in produzione non va più; con bigdump.php vogliamo quindi ripristinare un precedente backup di una situazione funzionante.

Per fortuna io non sono ancora arrivato a questa situazione, anche se naturalmente effettuo costantemente i mei backup.

Dopo la premessa vediamo come fare:

naturalmente la procedura precedentemente indicata per utilizzare bigdump.php in locale, va modificata nel modo dovuto se dobbiamo ripristinare in remoto il backup del database (creare la cartella dump in remoto tramite FTP sotto la cartella principale, trasferire, via FTP, nella cartella dump il file bigdump.php adeguatamente configurato ed il backup del database, eliminare (drop) tutte le tabelle del database corrotto, eseguire il nostro bigdump.php con il solito web browser (ma il comando adesso sarà http://www.miosito.xxx/ecc...).

Alla fine della nostra esecuzione, dopo aver controllato il funzionamento del sito e del database, è IMPORTANTE eliminare la cartella dump con tutto il suo contenuto (backup compreso).

Gli interessati possono scaricare l' utility Bigdump.php da questo indirizzo:

http://www.ozerov.de/bigdump/