Backup
I veri backup si vedono nel momento del bisogno. L'attività di backup periodico dei dati è strettamente legata alla sicurezza di un database. Attraverso i backup vengono eseguite copie dei dati in un preciso momento temporale al fine di porre rimedio a "dolorose" perdite dovute a guasti o manomissioni.
Esistono essenzialmente tre metodologie per portare a termine una procedura di backup.
mysqldump
È un'utility di backup da riga di comando che opera in interazione col server MySQL e restituisce un file con istruzioni in sintassi SQL per la (ri)creazione delle tabelle. Si occupa automaticamente di porre e rilasciare i lock per evitare inconsistenze sui dati di backup.
Esempio di backup di un intero database:
mysqldump --opt -uutente_root -p database > percorso_a/db_dump <password_utente_root>
Esempio di ripristino:
mysql -uutente_root -p database < percorso_a/db_dump <password_utente_root>
Allo scopo è altresì possibile utilizzare phpMyAdmin.
Copia fisica
Per database che utilizzano gli engine InnoDB e MyISAM, i quali usano un formato di memorizzazione dei dati indipendente dall'architettura hardware, è possibile copiare fisicamente le directory contenenti i database via filesystem (ovviamente se la piattaforma hardware non cambia anche per i rimanenti engine la tecnica funziona). Bisogna tuttavia assicurarsi che il server non operi in scrittura sulle tabelle di cui s'intende fare il backup, pena ovvie inconsistenze sui dati. Allo scopo generalmente si programmano i backup in ore notturne (per applicazioni aziendali) o si arresta momentaneamente il server.
Per le directory copiate fisicamente, il ripristino avviene manualmente, a server database inattivo.
mysqlhotcopy
È uno script Perl per la copia diretta dei file via filesystem ma che si occupa nel contempo dei lock sulle tabelle, selettivamente, quindi non è necessario fermare MySQL. Per il ripristino vale quanto sopra.