Datenbanken kopieren und sichern mit mysqldump

15. Mai 2014

Oftmals muss man Datenbanken kopieren und sichern. Die eigentliche Funktion ist simpel. Mit einem Script kann man sich regelmäßigkeit natürlich auch sparen. Installation: sudo apt-get install mysqldump Datenbanksicherung: Mit einem simplen Befehl kann man es sichern: mysqldump -u DATENBANKUSERNAME -p DATENBANKNAME > SQLfile.sql Info: Option –opt: ist standardmäßig aktiviert. Option -u: Benutzername Option -p: Password […]

Datenbanken kopieren und sichern mit mysqldump
Oftmals muss man Datenbanken kopieren und sichern. Die eigentliche Funktion ist simpel. Mit einem Script kann man sich regelmäßigkeit natürlich auch sparen. Installation: sudo apt-get install mysqldump Datenbanksicherung: Mit einem simplen Befehl kann man es sichern: mysqldump -u DATENBANKUSERNAME -p DATENBANKNAME > SQLfile.sql Info:
  • Option --opt: ist standardmäßig aktiviert.
  • Option -u: Benutzername
  • Option -p: Password verwenden
Datenbank Sicherung zurückspielen Die Sicherung wird anschließend dem gleichen Befehl zurückgespielt, der einzige Unterschied ist die Ausgaberichtung: mysql -u DATENBANKUSERNAME -p DATENBANKNAME < SQLfile.sql Automatisierung: Möchte man das ganze automatisieren kann man das als Script realisieren: #!/bin/bash #Variablen # Anzahl, der max. Speicherungen SAFE=2 #Pfad PATH="/home/$USER" #Datenbank DATABASE=db_xyz DBUSER=MyUser DBPW=MyPw BACKUPS=`find $PATH -name "mysqldump-*.gz" | wc -l | sed 's/\ //g'` while [ $BACKUPS -ge $SAFE] do ls -tr1 $PATH/mysqldump-*.gz | head -n 1 | xargs rm -f BACKUPS=`expr $BACKUPS - 1` done DATE=`date +%Y%m%d%H%M%S` rm -f $PATH/.mysqldump-${DATE}.gz_INPROGRESS /usr/syno/mysql/bin/mysqldump --opt -u$DBUSER -p$DBPW $DATABASE | gzip -c -9 > $PATH/.mysqldump-${DATE}.gz_INPROGRESS mv -f $PATH/.mysqldump-${DATE}.gz_INPROGRESS $PATH/mysqldump-${DATE}.gz exit 0 Cronjob: # Command jede Minute ausführen: * * * * * root sh /home/$USER/mysqlbackup.sh # Jeden Tag um 22:00 h ausführen 0 22 * * * root sh /home/$USER/mysqlbackup.sh # Jeden Sa. um 22:00 h ausführen 0 22 * * 6 root sh /home/$USER/mysqlbackup.sh # Alle 5 min ausführen */5 * * * * root sh /home/$USER/mysqlbackup.sh # Alle 2 Std. ausführen 00 */2 * * * root sh /home/$USER/mysqlbackup.sh # Von Mo. bis Fr. um 01:00 h ausführen 0 1 * * 1-5 root sh /home/$USER/mysqlbackup.sh

Kommentare

Kommentare werden geladen...

Weitere Beiträge