MySQL Datenbank Bakup

Aufgabe
Es ist unter UNIX oder Cygwin von der MySQL Datenbank als Backup regelmässig ein SQL-Dump zu ziehen. Die Sicherung sei erst nach einer gewissen Anzahl Folgesicherungen zu überschreiben.

Lösungsvorschlag
Das untenstehende csh-Script ist von cron regelmässig aufgerufen. Das Passwort für den Datenbankzugang schreibt man besser nicht als Option von mysqldump ins Script, sondern hinterlegt es in die Konfigurationsdatei von MySQL:

#!/bin/csh -f
#
#
# Set passwd in $HOME/.my.cnf: 
# ...
# [client]
# password       = your_password
# ...
#
set dumpdir = ( ' /dbdump' )
set rotnum = ( '5' )  # file rotation level
set host = ( `uname -n ` )
#
set dumpfile = ( "$dumpdir/mysqldump_${host}.sql.bz2" )
set opts = '  --opt --all-databases --lock-tables '
#
while ( $rotnum > 0 )
  @ mvnum = $rotnum - 1
  if ( -e ${dumpfile}-$mvnum ) then
     mv ${dumpfile}-$mvnum ${dumpfile}-$rotnum
  endif
  @ rotnum = $rotnum - 1
end
mysqldump $opts | bzip2 -9 -c > ${dumpfile}-0
#
# EOF

Der gesicherte Datensatz enthält dekomprimiert SQL-Anweisungen die im Falle eines Falles von mysql mit source direkt wieder eingelesen werden können.To top

Nach Oben