基于XtraBackup的备份有效性检查脚本

  

,,,,生产环境的MySQL是通过crontab的方式,定时调度热备脚本备份数据。目前是通过XtraBackup软件实现热备。关于热备脚本方面,请查看我原先的博客《使用壳实现MySQL自动全备,增备,日志备份》:http://linzhijian.blog.51cto.com/1047212/1891745,这里不再展开说明。

,,,,备份存放:通过XtraBackup的流式备份,将备份异地存放到备份服务器上。

,,,,备份策略:

,,,,目前缺漏:这些备份数据未能实现有效性检查,无法探知这些备份是否具有可用性,需要通过一定的机制实现有效性检测。

,,,,

drwxr-xr-x  18, mysql  mysql  4096年,Apr ,, 9, 03:28  mysql01_20170409_023001_full   drwxr-xr-x  18, mysql  mysql  4096年,Apr  10, 03:25  mysql01_20170410_023001_incr   drwxr-xr-x  18, mysql  mysql  4096年,Apr  11, 03:26  mysql01_20170411_023001_incr   drwxr-xr-x  18, mysql  mysql  4096年,Apr  12, 03:25  mysql01_20170412_023001_incr   drwxr-xr-x  18, mysql  mysql  4096年,Apr  13, 03:26  mysql01_20170413_023001_incr   drwxr-xr-x  18, mysql  mysql  4096年,Apr  14, 03:26  mysql01_20170414_023001_incr   drwxr-xr-x  18, mysql  mysql  4096年,Apr  15, 03:27  mysql01_20170415_023001_incr   drwxr-xr-x  18, mysql  mysql  4096年,Apr  16, 03:29  mysql01_20170416_023001_full   drwxr-xr-x  18, mysql  mysql  4096年,Apr  17, 03:26  mysql01_20170417_023001_incr

# !/bin/sh   if [$ #大敌;-ne  1,)   然后   ,,,echo “用法:,“basename  0美元”,[mysql01 | mysql02]“;   ,,,exit  1   fi   主机名=1美元   今天=' date  Y + % % m % d '   sh /home/mysql/壳/mysql_recover.sh  hostname 美元;美元今天

# !/bin/sh      if [$ #大敌;-ne  2,)   然后   ,,,echo “用法:,“basename  0美元”,[mysql01 | mysql02 | mysql03], 20170501,“   ,,,exit  1   fi      主机名=1美元   #主机名=癿ysql02"   #今天=' date  Y + % % m % d '   今天=2美元   #周=' date  w + % '   周=' date  -d  today 美元;+ % w '   time1=' date  + % s '   时间戳=' date  Y + % % m % d % H % m % S '   logdir=?home/mysql/日志/mysqlrecoverlog/主机名/timestamp"美元;   dir=?美元/mysqlbackup/databak/主机名/?   fullname=癲ir/full_backup_file.txt"美元;   incrname=癲ir/incr_backup_file.txt"美元;   datadir=' grep  datadir  |/etc/my . cnf中所做awk  -F  \=, & # 39; {print  $ NF} & # 39;”   errlog=' grep  log-error  |/etc/my . cnf中所做awk  -F  \=, & # 39; {print  $ NF} & # 39;”   n1=?”, # #周几做热备,周一到周六为1 ~ 6周日为0。   n2=?“, # #周几最后一次增备,周一到周六为1 ~ 6周日为0。      mkdir  logdir 美元;# #创建日志目录         function  getdir ()   {   if [,美元week  -eq “n1"美元;,)   然后   ,,,fulldir=癴ind /mysqlbackup/databak/${主机名}/,-type  d  -name “* ${今天}* full"”   ,,,#/mysqlbackup databak/mysql01/mysql01_20170430_023001_full   ,,,if [!大敌;-n “fulldir"美元;,),   ,,,   ,,,,,,,echo “, fulldir  not 存在! ! !“,在祝辞,$ logdir/recover_ ${时间戳}. log   ,,,,,,,exit  1   ,,fi   ,,,num=癴ind /mysqlbackup/databak/${主机名}/,-type  d  -name “* ${今天}* full" | wc  - l ',   ,,,#/mysqlbackup databak/mysql01/mysql01_20170429_023001_incr   ,,,if  [, num 美元;-eq “1“,),   ,,,   ,,,,,,,echo  fulldir 美元;祝辞fullname美元   ,,,   ,,,,,,,echo “there 断开连接;not  only  full  dbbackup 今天,美元拷贝,please 检查! ! !“,在祝辞,$ logdir/recover_ ${时间戳}. log   ,,,,,,,exit  1   ,,fi   ,,,,   其他的   ,,,incrdir=癴ind /mysqlbackup/databak/${主机名}/,-type  d  -name “* ${今天}* incr"”   ,,,if [!大敌;-n “incrdir"美元;,)   ,,,   ,,,,,,,echo “, incrdir  not 存在! ! !“,在祝辞,$ logdir/recover_ ${时间戳}. log   ,,fi   ,,,num=癴ind /mysqlbackup/databak/${主机名}/,-type  d  -name “* ${今天}* incr" | wc  - l '   ,,,if  [, num 美元;-eq “1“,)   ,,,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

基于XtraBackup的备份有效性检查脚本