实现MySQL的自动备份
MySQL数据库的备份是非常重要的工作之一 通过MySQL数据库的数据备份就能够实现MySQL数据库中数据的绝对安全 MySQL数据库中的数据不会因为什么小故障而丢失 自动备份则是更为方便的一种备份方式 下文中将给出详细的解析
MySql自动备份是非常关键的 特别是对于DBA来说 这里主要用代码来说明这个问题 希望对各位有所帮助 可以将这个脚本放进crontab 每天凌晨执行一次 自动备份
这个脚本每天最多只执行一次 而且只保留最近五天的备份在服务器上
代码
#!/bin/bash
#ThisisaShellScriptForAutoDBBackup
#Poweredbyaspbiz
#
#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= $BackupPath db$(date+%y%m%d) tgz
DumpFile= $BackupPath db$(date+%y%m%d)
OldFile= $BackupPath db$(date+%y%m%d date= daysago) tgz
echo 》$LogFile
echo$(date+ %y %m %d%H:%M:%S )》$LogFile
echo 》$LogFile
#DeleteOldFile
if[ f$OldFile]
then
rm f$OldFile》$LogFile >&
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》$LogFile >&
echo [$NewFile]BackupSuccess! 》$LogFile
rm rf$DumpFile
;;
mysqlhotcopy)
rm rf$DumpFile
mkdir$DumpFile
if[ z$DBPasswd]
then
mysqlhotcopy u$DBUser$DBName$DumpFile》$LogFile >&
else
mysqlhotcopy u$DBUser p$DBPasswd$DBName$DumpFile》$LogFile >&
fi
tarczvf$NewFile$DumpFile》$LogFile >&
echo [$NewFile]BackupSuccess! 》$LogFile
rm rf$DumpFile
;;
*)
/etc/init d/mysqldstop>/dev/null >&
tarczvf$NewFile$DBPath$DBName》$LogFile >&
/etc/init d/mysqldstart>/dev/null >&
echo [$NewFile]BackupSuccess! 》$LogFile
;;
esac
fi
echo 》$LogFile
lishixinzhi/Article/program/MySQL/201311/29400
2021-03-27 广告