设为首页 加入收藏

TOP

xtrabackup自动还原脚本v2(四)
2015-11-21 01:52:09 来源: 作者: 【 】 浏览:8
Tags:xtrabackup 自动 还原 脚本
"%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 "完全备份的LSN:${fetch_full_lastlsn} " echo "增量备份的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 fi ######判断LSN check_full_lastlsn=$FULLBACKUP/xtrabackup_checkpoints fetch_full_lastlsn=`grep -i "^last_lsn" ${check_full_lastlsn} |cut -d = -f 2` echo "完全备份当前的LSN:${fetch_full_lastlsn}" else error "未知的备份类型" fi else echo "查找增量备份文件完成." check_full_lastlsn=$FULLBACKUP/xtrabackup_checkpoints fetch_full_lastlsn=`grep -i "^last_lsn" ${check_full_lastlsn} |cut -d = -f 2` echo -e "\e[31m -------------------------------------------- \e[m" #红色 echo -e "\e[31m 完全备份最终的LSN:${fetch_full_lastlsn} \e[m" #红色 echo -e "\e[31m -------------------------------------------- \e[m" #红色 break fi done fi #################判断还原增量备份部分还是所有################ fi echo echo "prepare:完整备份以及回滚那些未提交的事务..........." $INNOBACKUPEX_PATH --defaults-file=$MY_CNF --apply-log --use-memory=$MEMORY $FULLBACKUP > $TMP_LOG 2>&1 check_innobackupex_fail echo "*****************************" echo "数据库还原中 ...请稍等" echo "*****************************" $INNOBACKUPEX_PATH --defaults-file=$MY_CNF --copy-back $FULLBACKUP > $TMP_LOG 2>&1 check_innobackupex_fail rm -f $TMP_LOG echo "1.恭喜,还原成功!." echo "*****************************"


#修改目录权限
echo "修改mysql目录的权限."
mysqlcnf="/usr/local/mysql/my.cnf"
mysqldatadir=`grep -i "^basedir" $mysqlcnf |cut -d = -f 2`
`echo 'chown -R mysql:mysql' ${mysqldatadir}`
echo "2.权限修改成功!"
echo "*****************************"




#自动启动mysql

INIT_NUM=1
if [ ! -x $MYSQLD_SAFE ]; then
echo "mysql安装时启动文件未安装到$MYSQLD_SAFE或无执行权限"
exit 1 #0是执行成功,1是执行不成功
else
echo "启动本机mysql端口为:$MYSQL_PORT的服务"
$MYSQLD_SAFE --defaults-file=$MY_CNF > /dev/null &
while [ $INIT_NUM -le 8 ]
do
PORTNUM=`netstat -lnt|grep ${MYSQL_PORT}|wc -l`
echo "mysql启动中....请稍等..."
sleep 5
if [ $PORTNUM = 1 ];
then
echo -e "\e[32m mysql ****启动成功**** \e[m"
exit 0
fi
INIT_NUM=$(($INIT_NUM +1))
done
echo -e "\e[31m mysql启动失败或启动时间过长,请检查错误日志 `echo 'cat ' ${ERRORLOG}` \e[m"
echo "*****************************************"
exit 0
fi









END_RESTORE_TIME=`date +%F' '%T' '%w`
echo "数据库还原完成于: $END_RESTORE_TIME"
exit 0








************************************************************************************************
执行结果:
************************************************************************************************

# ./restore.sh /backup/incre/
输入截止增量备份名[默认所有]:2015-04-10_14-10-49


输入截止增量备份名为:2015-04-10_14-10-49
----------------------------


./restore.sh: MySQL还原脚本
数据库
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇遗传算法在走迷宫游戏中的应用 下一篇HBase写请求分析

评论

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