Home  >  Article  >  Database  >  MySQl备份恢复策略(完全+增量备份策略)

MySQl备份恢复策略(完全+增量备份策略)

WBOY
WBOYOriginal
2016-06-07 15:52:511209browse

#!/bin/sh # Name:mysqlFullBackup.sh # PS:MySQL DataBase Full Backup. # Write by:i.Stone # Last Modify:2007-11-17 # # Use mysqldump --help get more detail. # # 定义变量,请根据具体情况修改 # 定义脚本目录 scriptsDir=`pwd` # 定义数据库目录 my

#!/bin/sh


# Name:mysqlFullBackup.sh


# PS:MySQL DataBase Full Backup.


# Write by:i.Stone


# Last Modify:2007-11-17


#


# Use mysqldump --help get more detail.


#


定义变量,请根据具体情况修改


定义脚本目录


scriptsDir=`pwd`


定义数据库目录


mysqlDir=/usr/local/mysql


定义用于备份数据库的用户名和密码


user=root


userPWD=111111


定义备份目录


dataBackupDir=/tmp/mysqlbackup


定义邮件正文文件


eMailFile=$dataBackupDir/email.txt


定义邮件地址


eMail=alter@somode.com


定义备份日志文件


logFile=$dataBackupDir/mysqlbackup.log


DATE=`date -I`



echo "" > $eMailFile


echo $(date +"%y-%m-%d %H:%M:%S"MySQl备份恢复策略(完全+增量备份策略) >> $eMailFile


cd $dataBackupDir


定义备份文件名


dumpFile=mysql_$DATE.sql


GZDumpFile=mysql_$DATE.sql.tar.gz



使用mysqldump备份数据库,请根据具体情况设置参数


$mysqlDir/bin/mysqldump -u$user -p$userPWD \


--opt --default-character-set=utf8 --extended-insert=false \


--triggers -R --hex-blob --all-databases \


--flush-logs --delete-master-logs \


--delete-master-logs \


-x > $dumpFile



压缩备份文件


if [[ $? == 0 ]]; then



tar czf $GZDumpFile $dumpFile >> $eMailFile 2>&1



echo "BackupFileNameMySQl备份恢复策略(完全+增量备份策略)GZDumpFile" >> $eMailFile



echo "DataBase Backup Success!" >> $eMailFile



rm -f $dumpFile



# Delete daily backup files.



cd $dataBackupDir/daily



rm -f *



# Delete old backup files(mtime>2).



$scriptsDir/rmBackup.sh



如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉


# Move Backup Files To Backup Server.


#适合Linux(MySQL服务器)到Linux(备份服务器)



$scriptsDir/rsyncBackup.sh



if (( !$? )); then


    echo "Move Backup Files To Backup Server Success!" >> $eMailFile


    else


    echo "Move Backup Files To Backup Server Fail!" >> $eMailFile


  fi



else



echo "DataBase Backup Fail!" >> $emailFile


fi


写日志文件


echo "--------------------------------------------------------" >> $logFile


cat $eMailFile >> $logFile


发送邮件通知


cat $eMailFile | mail -s "MySQL Backup" $eMail



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn