bitscn.com
mysql数据库的备份是非常重要的工作之一,通过mysql数据库的数据备份就能够实现mysql数据库中数据的绝对安全,mysql数据库中的数据不会因为什么小故障而丢失,自动备份则是更为方便的一种备份方式,下文中将给出详细的解析。
mysql自动备份是非常关键的,特别是对于dba来说。这里主要用代码来说明这个问题,希望对各位有所帮助。可以将这个脚本放进crontab,每天凌晨执行一次,自动备份。
这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
代码:
#!/bin/bash
#thisisashellscriptforautodbbackup
#poweredbyaspbiz
#2004-09
#setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
dbname=mysql
dbuser=root
dbpasswd=
backuppath=/root/
logfile=/root/db.log
dbpath=/var/lib/mysql/
#backupmethod=mysqldump
#backupmethod=mysqlhotcopy
#backupmethod=tar
#settingend
newfile=$backuppathdb$(date+%y%m%d).tgz
dumpfile=$backuppathdb$(date+%y%m%d)
oldfile=$backuppathdb$(date+%y%m%d--date=5daysago).tgz
echo------------------------------------------->>$logfile
echo$(date+%y-%m-%d%h:%m:%s)>>$logfile
echo-------------------------->>$logfile
#deleteoldfile
if[-f$oldfile]
then
rm-f$oldfile>>$logfile2>&1
echo[$oldfile]deleteoldfilesuccess!>>$logfile
else
echo[$oldfile]nooldbackupfile!>>$logfile
fi
if[-f$newfile]
then
echo[$newfile]thebackupfileisexists,cantbackup!>>$logfile
else
case$backupmethodin
mysqldump)
if[-z$dbpasswd]
then
mysqldump-u$dbuser--opt$dbname>$dumpfile
else
mysqldump-u$dbuser-p$dbpasswd--opt$dbname>$dumpfile
fi
tarczvf$newfile$dumpfile>>$logfile2>&1
echo[$newfile]backupsuccess!>>$logfile
rm-rf$dumpfile
;;
mysqlhotcopy)
rm-rf$dumpfile
mkdir$dumpfile
if[-z$dbpasswd]
then
mysqlhotcopy-u$dbuser$dbname$dumpfile>>$logfile2>&1
else
mysqlhotcopy-u$dbuser-p$dbpasswd$dbname$dumpfile>>$logfile2>&1
fi
tarczvf$newfile$dumpfile>>$logfile2>&1
echo[$newfile]backupsuccess!>>$logfile
rm-rf$dumpfile
;;
*)
/etc/init.d/mysqldstop>/dev/null2>&1
tarczvf$newfile$dbpath$dbname>>$logfile2>&1
/etc/init.d/mysqldstart>/dev/null2>&1
echo[$newfile]backupsuccess!>>$logfile
;;
esac
fi
echo------------------------------------------->>$logfile
关于mysql数据库的自动备份就为大家介绍到这里,大家按照上文中讲解的步骤方法去进行mysql数据库的自动备份工作,相信您一定可以很好的完成mysql数据库的自动备份工作。
bitscn.com