北京SEO

mysql数据库完美增量备份脚本

2019/10/10/17:32:39  阅读:2318  来源:谷歌SEO算法  标签: Google

增量备份的意思就是在以前数据上进行增加备份了,这样的数据备份无需大量的操作,只需要小小的变动就可以实现数据备份了,下面给各位整理了一段mysql数据库完美增量备份脚本,希望对大家有帮助.

是否因为mysql太大,来回备份浪费资源带宽而发愁,如果想解决这个麻烦就需要增量备份,下面是张小三资源网修改的一份mysql的增量备份脚本,我已做了相关注释,大家自行修改下就可以用了.

vi /etc/my.cnf开启日志及定期清理日志:

  1. log-bin=mysql-bin
  2. binlog_format=mixed
  3. //二进制日志自动删除的天数。默认值为0,表示“没有自动删除”
  4. expire_logs_days=5

全备份脚本:

  1. #!/bin/bash
  2. #Name:qbk全备份脚本
  3. #mysqlqbkscripts
  4. #Byzxsdw.com
  5. #LastModify:2015-01-21
  6. #定义脚本存放路径
  7. #scriptsDir=/usr/sbin
  8. #定义用户名及密码
  9. user=root
  10. userPWD=密码
  11. #定义要备份的数据库
  12. database=数据库
  13. #定义完全备份文件存放路径
  14. bakDir=/backup/mysql
  15. #eMailFile=$bakDir/email.txt
  16. #eMail=admin@zxsdw.com
  17. #定义日志文件
  18. LogFile=$bakDir/mysqlbak.log
  19. DATE=`date+%Y%m%d`
  20. echo"">>$LogFile
  21. echo"">>$LogFile
  22. echo"--------------------------">>$LogFile
  23. echo$(date+"%y-%m-%d%H:%M:%S")>>$LogFile
  24. echo"-----------------">>$LogFile
  25. cd$bakDir
  26. DumpFile=$DATE.sql.gz
  27. mysqldump--flush-logs-u$user-p$userPWD--quick$database|gzip>$DumpFile
  28. echo"DumpDone">>$LogFile
  29. echo"[$DumpFile]BackupSuccess!">>$LogFile
  30. daily_databakDir=$bakDir/daily_backup
  31. cd$bakDir/daily_backup
  32. find$daily_databakDir-name"daily*"-typef-mtime+35-execrm{}\;>/dev/null2>&1
  33. 增量备份脚本:
  34. #!/bin/bash
  35. #Name:zbk增量备份
  36. #mysqlzbkscripts
  37. #Byzxsdw.com
  38. #Lastmodify:2015-01-21
  39. #定义数据库用户名及密码
  40. user=root
  41. userPWD=密码
  42. #定义数据库
  43. database=数据库
  44. #生成一个新的mysql-bin.00000X文件,如果err日志被清除,则自动新建一个。
  45. /usr/local/mysql/bin/mysqladmin-u$user-p$userPWDflush-logs
  46. #定义增量备份位置
  47. daily_databakDir=/backup/mysql/daily_backup
  48. #定义MYSQL数据日志目录
  49. mysqlDataDir=/usr/local/mysql/var
  50. #定义增量日志及目录
  51. eMailFile=$daily_databakDir/email.txt
  52. #eMail=admin@zxsdw.com
  53. #定义变量DATE格式为20150127
  54. DATE=`date+%Y%m%d`
  55. #定义一个总的logFile日志
  56. logFile=$daily_databakDir/mysql$DATE.log
  57. #美化日志模板
  58. echo"">$eMailFile
  59. echo"-----------------------">>$eMailFile
  60. #时间格式为15-01-2701:06:17
  61. echo$(date+"%y-%m-%d%H:%M:%S")>>$eMailFile
  62. echo"-------------------------">>$eMailFile
  63. #定义删除bin日志的时间范围,格式为20150124010540
  64. TIME=$(date"-d3dayago"+%Y%m%d%H%M%S)
  65. #定义需要增量备份数据的时间范围,格式为2015-01-2601:04:11
  66. StartTime=$(date"-d1dayago"+"%Y-%m-%d%H:%M:%S")
  67. ###########开始删除操作美化日志标题##############
  68. echo"Delete3daysbeforethelog">>$eMailFile
  69. #删除三天前的bin文件,及更新index里的索引记录,美化日志标题
  70. mysql-u$user-p$userPWD-e"purgemasterlogsbefore${TIME}"&&echo"delete3daysbeforelog"|tee-a$eMailFile
  71. #查找index索引里的bin2进制文件并赋值给i。
  72. filename=`cat$mysqlDataDir/mysql-bin.index|awk-F"/"'{print$2}'`
  73. foriin$filename
  74. do
  75. #########开始增量备份操作,美化日志标题###########
  76. echo"$StartTimestartbackupbinlog">>$eMailFile
  77. #利用mysqlbinlog备份1天前增加的数据,并gzip压缩打包到增量备份目录
  78. /usr/local/mysql/bin/mysqlbinlog-u$user-p$userPWD-d$database--start-datetime="$StartTime"$mysqlDataDir/$i|gzip>>$daily_databakDir/daily$DATE.sql.gz|tee-a$eMailFile
  79. done
  80. #如果以上备份脚本执行成功,接着运行下面的删除脚本
  81. if[$?=0]
  82. then
  83. #删除mtime>32的增量日志备份文件
  84. find$daily_databakDir-name"*.log"-typef-mtime+32-execrm{}\;>/dev/null2>&1
  85. cd$daily_databakDir
  86. echo"Dailybackupsucceed">>$eMailFile
  87. else
  88. echo"Dailybackupfail">>$eMailFile
  89. #mail-s"MySQLBackup"$eMail<$eMailFile#备份失败之后发送邮件通知
  90. #fi结束IF判断
  91. fi
  92. #把变量eMailFile的内容替换logFile内容
  93. cat$eMailFile>$logFile
  94. #如果上面的IF判断失败,再次运行删除mtime>32的增量日志备份文件
  95. find$daily_databakDir-name"*.log"-typef-mtime+32-execrm{}\;>/dev/null2>&1--phpfensi.com
  96. rsync-vzrtopg--delete--progress--password-file=/usr/local/rsync/rsync.passwdroot@$ip:/zxs/allimg/$(date-d-1day+%y%m%d)/zxs/allimg/
  97. gunzip</backup/mysql/daily_backup/ceshi.sql.gz|/usr/local/mysql/bin/mysql-u用户名-p密码数据库名--force
  98. --force参数忽略错误

广告内容

mysql数据库完美增量备份脚本 mysql数据库完美增量备份脚本 mysql数据库完美增量备份脚本

相关阅读

热门评论

卢松松博客 卢松松博客

关注创业者、自媒体人和站长的网站

总篇数167

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法