-
Aiutino per uno script.
Avrei bisogno di creare uno scriptino (o sistema equivalente) da mettere in cron per effettuare il backup a caldo di alcuni database MySQL.
Quello che vorrei fare è ottenere uno script in grado di elencarsi i db attivi (sono tutti dentro /var/lib/MySQL ma poter impostare questo percorso come variabile o leggere direttamente da MySQL l'elenco dei db presenti sarebbe anche meglio in modo da non dover modificare lo script ogni volta che si aggiunge un database) e utilizzare mysqldump per indirizzare i backup dei singoli database in singoli file compressi, magari denominati con un timestamp.
Poter impostare in qualche modo un sistema di scavenging dei backup più vecchi sarebbe proprio il top. Anche poter indirizzare i backup in 7 directory denominate con i giorni della settimana in modo che lo script lanciato ogni due ore mi dia qualcosa del tipo nomedb_08.sql, nomedb_10.sql, ... all'interno della directory "Lunedì" sarebbe più che sufficiente.
Attualmente utilizzo la schedula messa a disposizione dll'interfaccia di Webmin che lancia uno script perl per generare un file .sql per ogni db e comprime il file in un tar.bz2 ma è un pò limitata in quanto non posso intervenire manualmente sulle opzioni da assegnare a mysqldump (che tra l'altro non credo neppure utilizzi questo tool ma qualcos'altro e cmq il restore funziona lo stesso piuttosto bene) ma il nuovo backup sovrascrive il precedente (quindi non storicizza nulla).
Probabilmente si può fare qualcosa anche con phpmyadmin ma, a dire la verità, ancora non l'ho provato.
Tempo fà ho realizzato una cosa analoga per Sharepoint 2007 (uno script batch che tramite stsadm si legge i siti personali esistenti all'interno della raccolta e ne fà il backup singolarmente con gli utenti divisi per dominio all'interno in una directory denominata con il giorno della settimana) ma su Linux non sò proprio neppure da che parte iniziare...
Avevo iniziato tempo fa a guardare qualcosa ma di programmazione non so una sega e non ho avuto tempo di andare avanti...
-
Per il server di NextHardware chiaramente abbiamo un sistema di backup giornaliero "a caldo" come dici te... La cosa pero' non e' cosi' semplice come la descrivi: il dump veramente "a caldo" e' relativamente difficile da realizzare, quantomeno con mysql. Dal momento in cui lanci mysqldump alla fine del dump il db puo' essere modificato e questo potrebbe portare ad una situazione inconsistente del db. Se poi il backup e' molto frequente, forse ti conviene utilizzare feature piu' avanzate come il binary logging di mysql
[EDIT]: non avevo colto che era un sistema linux.
-
Perchè? Su Linux non funziona?
Fino a poco tempo fà prevedevo una finestra notturna con l'arresto MySQL per il backup ma avevo capito che mysqldump prevedeva la possibilità appunto di evitare questo stop. Potrebbe quindi darmi dei backup inconsistenti?
-
No è all'inizio del messaggio chiedevo se era una macchina windows o linux, poi rileggendo ho capito che era linux ed ho tolto quella parte.
mysqldump ti fa il backup a caldo. Ma per ovvie ragioni di prestazioni usa lock su parziali sulle tabelle. Quindi mentre fai il dump il db viene modificato, e con modifiche a tabelle multiple puoi benissimo trovarti alcune tabelle in versione precedente alla modifica e altre in versione successiva.
-
Ah, ok.
Per questo vorrei poter agire sui parametri di mysqldump invece che utilizzare l'attuale sistema... Se non sbaglio è possibile agire con diversi tipi di lock.
E cmq si tratta di db piuttosto contenuti, almeno per ora.