定期清理binlog日志脚本(一次清理5个binlog日志,清理完成后睡眠3秒钟)
2016-06-21 15:15
357 查看
#对于每天只产生少量binlog的服务器来说,可以通过设置expire_logs_days来自动删除。否则,为了避免导致大量磁盘IO,数据库抖动,需要写脚本来完成这一操作(分批删除binlog) #一次清理5个binlog日志,清理完成后睡眠3秒钟。 #调用该脚本需要传入一个参数,如:sh clear_binlog.sh mysql-bin.000025,表示清理mysql-bin.000025前所有的binlog日志 User='root' Password='system@123' Port=3307 Host='10.192.203.202' Group=5 #一次清理多少个binlog String1='purge binary logs to ' arg=$(echo $1 | awk -F "." '{print $2}') #取出传入参数binlog后面的数值,清空该日志前的所有binlog日志,如要清空mysql-bin.000033前的日志,则会取出000033 #echo $arg logs=(`mysql -u $User -p$Password -h $Host -P$Port -e "show binary logs" | grep -v 'Log_name' | cut -f 1`) #echo $logs for ((i=$Group; i< ${#logs[*]}; i=i+$Group)) #i+$Group这里表示一次清空几个binlog do num=$(echo ${logs[$i]} | awk -F "." '{print $2}') #取出binlog后面的值,与传进来的参数进行比较 v2=$(echo $num-$arg | bc) # echo $num # echo $v2 if (( $v2 > 0 )) then break else String2=$String1\'${logs[$i]}\'';' echo $String2 mysql -u $User -p$Password -h $Host -P $Port -e "$String2" echo '睡眠三秒钟 sleep(3)'';' mysql -u $User -p$Password -h $Host -P $Port -e "select sleep(3);" > /dev/null fi done String3=$String1\'$1\'';' echo $String3 mysql -u $User -p$Password -h $Host -P $Port -e "$String3" #退出上面的for循环后但小于传入的参数的binlog,在这里进行处理。比如binlog日志从mysql-bin.000030~mysql-bin.000035,Group=2.i=2,4,6.logs[4]=000034,logs[6]=000036,传入的000035<000036,因此退出了,故只能purge binary logs to 000034,就少了purge binary logs to 000035.所以在这里进行处理 #echo "array len:${#logs[*]}"
相关文章推荐
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 第十二周项目一复数类中的运算符重载二
- 自定义控件-----逐个显示文字
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- Mybatis解决字段名与实体类属性名不相同的冲突
- js的基本数据类型有哪些?
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- mysql经典查询
- 关于java堆栈的理解
- broadleaf电商文档翻译 特点和体系结构
- 使用httpclient必须知道的参数设置及代码写法、存在的风险
- vim退出后终端不显示文件内容
- 用wget做站点镜像
- Maven - 生命周期
- [JQuery,HTML/JS,.Net码农]Jquery获得控件值的方法