il backup giornaliero del debian mysql auto

Ho bisogno di eseguire il backup del mio database Mysql quotidianamente sotto un server Debian. So che ci sono un sacco di script là fuori, ma la mia necessità è il backup quotidianamente come file sql e mettere each backup in modo separato (forse la data corrente come nome file?) Sotto la stessa cartella in modo da non sovrascrivere un singolo file a each backup.

Saluti

  • HAproxy con MySQL Master-Master Replication incredibilmente lento
  • mysql client strace di accesso lento
  • Che cosa causa l'errore MySQL 1062 - duplica la voce quando si avvia lo slave?
  • Ripristinare il backup di linux a nuovo hardware
  • Perché le query MySQL si accumulano nello stato "Invio dati"?
  • mongod: errore di ricerca di simboli: mongod: simbolo non definito: _ZN5boost6detail13once_epoch_cvE
  • 8 Solutions collect form web for “il backup giornaliero del debian mysql auto”

    Io uso costantemente automysqlbackup.sh fa un mysqldump each giorno, li tiene intorno per una settimana, mantiene un backup settimanale per un mese e mensilmente per un anno – o così … tutto molto senza problemi!

    Qualcosa di simile a:

    for db in $(mysql -e "show databases" -B --skip-column-names); do mysqldump --opt --databases "$db" \ | gzip -3 --rsyncable > "/var/backup/$db-$(date +%Y-%m-%d).sql.gz" done 

    Puoi quindi utilizzare questo in un process cron per eseguire i tuoi backup each giorno.

    È ansible rendere mysqldump tutti i database in un unico file, ma questo rende molto difficile ripristinare un solo database se qualcosa va storto. Se stai copiando il file su un altro server tramite rsync, vuoi veramente l'opzione –risyncable. Lo spreco di diskspace in cambio di performance migliori rispetto a rsync. È soprattutto per quanto riguarda il modo in cui rsync calcola i blocchi di dati da trasferire.

    Utilizziamo qualcosa di molto simile allo script precedente, a less che non utilizziamo una data nel nome del file, in quanto ciò provoca di avere a che fare con la pulizia di vecchi backup. Noi utilizziamo backuppc per trattare le vecchie copie. A less che tu non abbia già una soluzione di backup remota, consiglio vivamente di guardare a backuppc.

    L'aspetto di David è buono per me, ma un paio di più per il tuo riferimento (il secondo support tutti i database, ma le opzioni mysql di David sono meglio del command sed che penso):

    Esempio 1:

     #!/bin/bash #Create local backups of the mysql drupal database for easy restore #KMB 2008 dumpdir='/root/drupaldumps' backupdir='/root/drupal_backups' myuser='drupal' mypass='SECRET' dumpfile="${dumpdir}/drupal-$(date +%s).sql" mysqldump -udrupal -p${mypass} drupal > $dumpfile mv $dumpfile ${backupdir}/ find $backupdir -name '*.sql*' -type f -mtime +7 -exec rm {} + 

    Esempio 2:

     #!/bin/bash #KMB March 2009 umask u=rw,g=,o= dumpdir='/root/db_backups' backupdir='/root/db_backups/dumps' myuser='backup_user' mypass='SUPER_SECRET' while read database; do dumpfile="${dumpdir}/${database}-$(date +%s).sql.bz2" mysqldump -u $myuser -p${mypass} $database | bzip2 > $dumpfile mv $dumpfile ${backupdir}/ done < <(mysql -u $myuser -p${mypass} -e 'show databases' -s | sed '1d;$d') find $backupdir -name '*.sql.bz2*' -type f -mtime +7 -exec rm {} \; 

    Non dimenticare di aggiungere script a crontab

    15 0 * * * /path/to/script.sh

    Oppure, se si desidera solo tutti i database in un singolo file SQL:

      mysqldump -u -p -opt -all-database> / path / to / backup / $ (data -Imin) .sql 

    e quindi solo mantenere una settimana di backup:

      trovare / path / to / backup -type -f -mtime +7 -delete 

    Potresti anche provare a Zmanda Recovery Manager (zrm-mysql).

    Mentre può sembrare troppo complicato a prima vista, ho creato una soluzione di backup centralizzata ben gestita totalmente crittografata per un certo numero di server MySQL remoti usando Community Edition di ZRM.

    Per esempio, su HowtoForge è ansible trovare maggiori informazioni su argomenti:

    http://www.howtoforge.com/mysql-backups-with-zrm-2.0

    Saluti

    Una cosa che ho fatto era quello di submit con la posta elettronica il file di backup fuori server dopo che fosse stato generato. In questo modo, anche se il server è morto, avrei ancora l'ultimo backup su un altro server. È inoltre ansible utilizzare rsync o un altro metodo per spostare l'archivio di backup su un'altra macchina.

    Utilizza rsnapshot da RSNAPSHOT.org. È disponibile tramite "apt-get install rsnapshot".

    Funziona come un fascino e su SSH dopo aver impostato le chiavi della macchina SSH … Il sito offre alcuni script per avere anche MySQL backup. Puoi modificarli a qualunque esigenza specifica.

    rsnapshot è un'utilità di snapshot del filesystem per eseguire il backup dei sisthemes locali e remoti.

    Utilizzando rsync e collegamenti duri, è ansible mantenere immediatamente disponibili backup multipli e completi. Lo spazio su disco richiesto è solo un po 'più dello spazio di un backup completo, più gli incrementi.

    A seconda della configuration, è ansible configurare in pochi minuti. I file possono essere ripristinati dagli utenti che li possiedono, senza che l'utente principale si coinvolga.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.