Mo 24 Apr 2006
SQL Tabellenoptimierung und Backup leicht gemacht…
Posted by florian.schiessl under ComputerWelt , LinuxHier ein kleines Script, was dazu benutzt werden kann, täglich alle SQL Tabellen zu optimieren und für ein Backup zu archivieren.
Shellscript z.B. per Cronjob täglich ausführbar… Datei sollte auf Read-Only für ROOT gesetzt werden, da das Root-SQL Passwort im Klartext zu entnehmen ist. Übernahme auf eigene Gefahr, keine Gewährleistung auf Funktion!
Cronjob-Zeile (Bsp.): 33 02 * * * sh /root/opt_backup_sql.sh > /dev/null 2>&1
Code für /root/opt_backup_sql.sh:
# little MySQL script - optimize and backup tables...# nothing below has to be changed
b="/tmp/sqlbackup" # backup directory
PWD="blubb" # root passwort for sql table dump statemend
MOVETO=”/backup” # directory where backup should be placed in
logger “sql opt and backup: starting”
export d=$(date +%Y%m%d)
mkdir -p $b
mkdir -p $b/$d
for a in `echo “show databases” | mysql -uroot -p$PWD |grep -v Database`;
do
mkdir -p $b/$d/$a
for i in `echo “show tables” | mysql -uroot -p$PWD $a|grep -v Tables_in_`;
do
echo “optimize table $i” | mysql -uroot -p$PWD $a|grep -v Msg_text;
mysqldump –add-drop-table –allow-keywords -q -a -c -uroot -p$PWD $a $i > $b/$d/$a/$i.sql
rm -f $b/$d/$a/$i.sql.gz
gzip $b/$d/$a/$i.sql
done
done
`tar cf $d.db.tar $b`
`gzip $d.db.tar`
rm -rf $b
mv $d.db.tar.gz $MOVETO
logger “sql opt and backup: done”
