mysql 备份
1.安装innobackup 备份工具
2.次备份脚本一周一个全备,六天是增量备份,脚本如下:
1 #!/bin/bash 2 #Every 14 times the backup for a cycle 3 4 format_time=`date +"%Y-%m-%d_%H:%M:%S"` 5 week=`date +%w` 6 backupbin=/usr/bin/ 7 backdir=/export/mysql_backup 8 tardir=/export/mysql_backup/beifen 9 tarback=`date +"%Y-%m-%d"` 10 file_cnf=/etc/my.cnf 11 user_name=root 12 password=123 13 db="bridge bridgemini xr_wp bridgecharge" 14 out_log=$backdir/xtrabackup_log 15 time_cost=$backdir/timecost.txt 16 tar_cost=$backdir/tarcost.txt 17 bakdate=`date +"%m-%d"` 18 num_file=`ls -1 $tardir|wc -l` 19 ########################################### 20 #yesterday=`date -d "yesterday" +"%m-%d"` # 21 #ENDTIME=`date +"%Y-%m-%d %H:%M:%S"` # 22 #begin_date=`date -d "$BEGINTIME" +%s` # 23 #end_date=`date -d "$ENDTIME" +%s` # 24 #spendtime=`expr $end_date - $begin_date` # 25 ########################################### 26 27 if [ ! -d "$backdir" ];then 28 mkdir -p $backdir 29 fi 30 31 32 if [ ! -d "$tardir" ];then 33 mkdir -p $tardir 34 fi 35 36 if [ -f "$tardir/rec7.tar.gz" ];then 37 mkdir -p $tardir/$tarback 38 mv $tardir/*.tar.gz $tardir/$tarback 39 fi 40 41 42 if [ -d "$backdir/rec7" ];then 43 tar -zcvf $tardir/backup_$bakdate.tar.gz $backdir/* --exclude beifen 44 rm -rf $backdir/full $backdir/rec* $backdir/*.txt 45 fi 46 if [ $num_file -ge 3 ]; then 47 rm -r `ls -rt $tardir/*|head -n1` 48 fi 49 50 51 #Full backup 52 53 if [ ! -d "$backdir/full" ];then 54 BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"` 55 echo "##### Full backup at $BEGINTIME start" >> $time_cost 56 innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --socket=/tmp/mysql.sock $backdir/full 1> $out_log.full_$format_time.txt 2>&1 57 ENDTIME=`date +"%Y-%m-%d %H:%M:%S"` 58 echo " It takes full backup at $ENDTIME END" >> $time_cost 59 begin_date=`date -d "$BEGINTIME" +%s` 60 end_date=`date -d "$ENDTIME" +%s` 61 spendtime=`expr $end_date - $begin_date` 62 echo " Run time full backup $spendtime sec " >> $time_cost 63 `cat $time_cost |mail -s 'mysql backup time' wangshj@quanjing.com` 64 exit 0 65 fi 66 67 i=1 68 while [ ${i} -lt 14 ];do 69 # The No.$i incremental backup!! 70 if [ ! -d "$backdir/rec$i" ];then 71 BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"` 72 echo "##### The No.$i incremental backup at $BEGINTIME Start!" >> $time_cost 73 innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --socket=/tmp/mysql.sock --incremental $backdir\/rec$i --incremental-basedir=$backdir/full 1> $out_log.rec$i.$format_time.txt 2>&1 74 ENDTIME=`date +"%Y-%m-%d %H:%M:%S"` 75 echo "It takes rec$i backup at $ENDTIME END!" >> $time_cost 76 begin_date=`date -d "$BEGINTIME" +%s` 77 end_date=`date -d "$ENDTIME" +%s` 78 spendtime=`expr $end_date - $begin_date` 79 echo "Run time No.$i $spendtime sec! " >> $time_cost 80 `cat $time_cost |mail -s 'mysql backup time' wangshj@quanjing.com` 81 exit 0 82 fi 83 i=`expr $i + 1` 84 done