设为首页 加入收藏

TOP

xtrabackup自动还原脚本v2(二)
2015-11-21 01:52:09 来源: 作者: 【 】 浏览:2
Tags:xtrabackup 自动 还原 脚本
en FULL=`ls -t $FULLBACKUP_DIR |head -1` FULLBACKUP=${intpu_res}/$FULL echo "还原完全备份:`basename $FULLBACKUP`" echo else ################判断还原增量备份部分还是所有################ if [ "$ipname" = '' ];then if [ $PARENT_DIR = $INCRBACKUP_DIR ]; then FULL=`ls -t $FULLBACKUP_DIR |head -1` FULLBACKUP=$FULLBACKUP_DIR/$FULL if [ ! -d $FULLBACKUP ]; then error "全备:$FULLBACKUP不存在." fi INCR=`ls -t $INCRBACKUP_DIR/$FULL/ |sort -nr | head -1 ` #查找最后一个增量备份文件 echo "还原将从全备全备$FULL开始,到增量$INCR结束." echo echo "Prepare:完整备份..........." echo "*****************************" $INNOBACKUPEX_PATH --defaults-file=$MY_CNF --apply-log --redo-only --use-memory=$MEMORY $FULLBACKUP > $TMP_LOG 2>&1 check_innobackupex_fail # Prepare增量备份集,即将增量备份应用到全备目录中,按照增量备份顺序即按照时间从旧到最新 for i in `find $PARENT_DIR/$FULL -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort -n `; do #判断最新全备的lsn #check_full_file=`find $FULLBACKUP/ -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort -nr | head -1` check_full_lastlsn=$FULLBACKUP/xtrabackup_checkpoints fetch_full_lastlsn=`grep -i "^last_lsn" ${check_full_lastlsn} |cut -d = -f 2` ######判断增量备份中第一个增量备份的LSN #check_incre_file=`find $PARENT_DIR/$FULL -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort -n | head -1` check_incre_lastlsn=$PARENT_DIR/$FULL/$i/xtrabackup_checkpoints fetch_incre_lastlsn=`grep -i "^last_lsn" ${check_incre_lastlsn} |cut -d = -f 2` echo "完全备份$FULLBACKUP的LSN值:${fetch_full_lastlsn} " echo "增量备份$i的LSN值:${fetch_incre_lastlsn} " if [ "${fetch_incre_lastlsn}" -eq "${fetch_full_lastlsn}" ];then echo "*****************************************" echo "LSN相等,不需要prepare!" echo "*****************************************" echo break else echo "Prepare:增量备份集$i........" echo "*****************************" $INNOBACKUPEX_PATH --defaults-file=$MY_CNF --apply-log --redo-only --use-memory=$MEMORY $FULLBACKUP --incremental-dir=$PARENT_DIR/$FULL/$i > $TMP_LOG 2>&1 check_innobackupex_fail if [ $INCR = $i ]; then break fi fi ######判断LSN done else error "未知的备份类型" fi else FULL=`ls -t $FULLBACKUP_DIR |head -1` FULLBACKUP=$FULLBACKUP_DIR/$FULL echo "Prepare:完整备份..........." echo "*****************************" $INNOBACKUPEX_PATH --defaults-file=$MY_CNF --apply-log --redo-only --use-memory=$MEMORY $FULLBACKUP > $TMP_LOG 2>&1 check_innobackupex_fail ipt=`stat -c=%Z $PARENT_DIR/$FULL/$ipname |cut -d = -f 2` echo "还原的指定增量目录文件$ipname的纪元时间为:$ipt" for i in `find $PARENT_DIR/$FULL -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort -n `; do f01=`stat -c=%Z $PARENT_DIR/$FULL/$i |cut -d = -f 2` if [ "$f01" -le "$ipt" ]; then if [ $PARENT_DIR = $INCRBACKUP_DIR ]; then if [ ! -d $FULLBACKUP ]; then error "全备:$FULLBACKUP不存在." fi #INCR=`ls -t $INCRBACKUP_DIR/$FULL/ |sort -nr | head -1` echo "还原将从全备$FULL开始,到增量$ipname结束." echo #判断最新全备的lsn #check_full_file=`find $FULLBACKUP/ -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort -nr | head -1` check_full_lastlsn=$FULLBACKUP/xtrabackup_checkpoints fetch_full_lastlsn=`grep -i "^last_lsn" ${check_full_lastlsn} |cut -d = -f 2` ######判断增量备份中第一个增量备份的LSN check_incre_file=`find $PARENT_DIR/$FULL -mindepth 1 -maxdepth 1 -type d -printf
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇遗传算法在走迷宫游戏中的应用 下一篇HBase写请求分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: