MySQL数据库的备份是非常重要的工作之一通过MySQL数据库的数据备份就能够实现MySQL数据库中数据的绝对安全MySQL数据库中的数据不会因为什么小故障而丢失自动备份则是更为方便的一种备份方式下文中将给出详细的解析
MySql自动备份是非常关键的特别是对于DBA来说这里主要用代码来说明这个问题希望对各位有所帮助可以将这个脚本放进crontab每天凌晨执行一次自动备份
这个脚本每天最多只执行一次而且只保留最近五天的备份在服务器上
代码
#!/bin/bash
#ThisisaShellScriptForAutoDBBackup
#Poweredbyaspbiz
#
#Setting
#设置数据库名数据库登录名密码备份路径日志路径数据文件位置以及备份方式
#默认情况下备份方式是tar还可以是mysqldumpmysqldotcopy
#默认情况下用root(空)登录mysql数据库备份至/root/dbxxxxxtgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/dblog
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%ddate=daysago)tgz
echo》$LogFile
echo$(date+%y%m%d%H:%M:%S)》$LogFile
echo》$LogFile
#DeleteOldFile
if[f$OldFile]
then
rmf$OldFile》$LogFile>&
echo[$OldFile]DeleteOldFileSuccess!》$LogFile
else
echo[$OldFile]NoOldBackupFile!》$LogFile
fi
if[f$NewFile]
then
echo[$NewFile]TheBackupFileisexistsCantBackup!》$LogFile
else
case$BackupMethodin
mysqldump)
if[z$DBPasswd]
then
mysqldumpu$DBUseropt$DBName>$DumpFile
else
mysqldumpu$DBUserp$DBPasswdopt$DBName>$DumpFile
fi
tarczvf$NewFile$DumpFile》$LogFile>&
echo[$NewFile]BackupSuccess!》$LogFile
rmrf$DumpFile
;;
mysqlhotcopy)
rmrf$DumpFile
mkdir$DumpFile
if[z$DBPasswd]
then
mysqlhotcopyu$DBUser$DBName$DumpFile》$LogFile>&
else
mysqlhotcopyu$DBUserp$DBPasswd$DBName$DumpFile》$LogFile>&
fi
tarczvf$NewFile$DumpFile》$LogFile>&
echo[$NewFile]BackupSuccess!》$LogFile
rmrf$DumpFile
;;
*)
/etc/initd/mysqldstop>/dev/null>&
tarczvf$NewFile$DBPath$DBName》$LogFile>&
/etc/initd/mysqldstart>/dev/null>&
echo[$NewFile]BackupSuccess!》$LogFile
;;
esac
fi
echo》$LogFile
关于MySQL数据库的自动备份就为大家介绍到这里大家按照上文中讲解的步骤方法去进行MySQL数据库的自动备份工作相信您一定可以很好的完成MySQL数据库的自动备份工作