MySQL增量备份脚本


在MySQL数据库使用过程中为了数据库的安全,我们会对此进行多次备份,来保证数据的完整性。

MySQL备份完整备份脚本:

  1. #!/bin/bash
  2. export LANG=en_US.UTF-8
  3. BackDir=/www/backup/databases
  4. LogFile=/www/backup/database/back.log
  5. Date=`date +%Y%m%d`
  6. Begin=`date +”%Y年%m月%d日 %H:%M:%S”`
  7. cd $BackDir
  8. DumpFile=$Date.sql
  9. GZDumpFile=$Date.sql.tgz
  10. mysqldump -uroot -p<font color=”#ff0000″>数据库的root用户的密码</font> –all-databases –flush-logs –delete-master-logs –single-transaction > $DumpFile
  11. tar -czvf $GZDumpFile $DumpFile
  12. rm $DumpFile
  13. count=$(ls -l *.tgz |wc -l)
  14. if [ $count -ge 5 ]
  15. then
  16. file=$(ls -l *.tgz |awk ‘{print $9}’|awk ‘NR==1’)
  17. rm -f $file
  18. fi
  19. #保留1个月的备份文件
  20. Last=`date +”%Y年%m月%d日 %H:%M:%S”`
  21. echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile
  22. cd $BackDir/daily
  23. rm -f *

复制代码 增量备份的脚本:

增量备份的优点(包含但不限于):

1、对磁盘的空间占用较少

2、备份时间较短

缺点:

1、需要开启二进制日志,倘若磁盘较少,会增加磁盘的开销

2、倘若日志文件有损坏,会出现备份数据不完整的现象

3、恢复起来比较麻烦

  1. #!/bin/bash
  2. export LANG=en_US.UTF-8
  3. BackDir=/www/backup/databases
  4. BinlogDir=/www/server/data
  5. LogFile=/www/backup/database/back.log
  6. BinFile=/www/server/data/mysql-bin.index
  7. mysqladmin -uroot -p数据库的root用户的密码 flush-logs
  8. #这个是用于产生新的mysql-bin.00000*文件
  9. Counter=`wc -l $BinFile |awk ‘{print $1}’`
  10. NextNum=0
  11. #这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的。
  12. for file in `cat $BinFile`
  13. do
  14.     base=`basename $file`
  15.     #basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./
  16.     NextNum=`expr $NextNum + 1`
  17.     if [ $NextNum -eq $Counter ]
  18.     then
  19.         echo $base skip! >> $LogFile
  20.     else
  21.         dest=$BackDir/$base
  22.         if(test -e $dest)
  23.         #test -e用于检测目标文件是否存在,存在就写exist!到$LogFile去。
  24.         then
  25.             echo $base exist! >> $LogFile
  26.         else
  27.             cp $BinlogDir/$base $BackDir
  28.             echo $base copying >> $LogFile
  29.         fi
  30.     fi
  31. done
  32. echo `date +”%Y年%m月%d日 %H:%M:%S”` Bakup succ! >> $LogFile

复制代码


转自   https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=45611&extra=page%3D9%26filter%3Dtypeid%26typeid%3D10