当前位置: DBARoad > Unix | Shell > 文章正文

分区表N+1备份清除策略的SHELL实现

                    作者 :OoNiceDream【转载时请务必以超链接形式标明文章原始出处和作者信息】
                    链接:http://www.dbaroad.me/archives/2009/03/partition-archive-purge-shell.html

总结一下分区表N+1备份清除策略的SHELL实现(关键就是如何得到分区名),针对的是按时间分区的range分区表,分区命名规则一般如下:

分区名前缀+年份+月份

例如:PAR_TAB_NAME_2009_03、PAR_TAB_NAME_2009_MAR 等形式。

这类分区表,数据一般按月存放、递增,因而需要定期备份清理以前的数据。
N+1策略,也就是指保留以前N个月+在线一个月的数据,在此之前的数据,进行备份清理。
一般SHELL中实现方式如下,以6+1策略为例:

A[1]=01        或        A[1]=JAN       
A[2]=02                  A[2]=FEB 
A[3]=03                  A[3]=MAR 
A[4]=04                  A[4]=APR 
A[5]=05                  A[5]=MAY 
A[6]=06                  A[6]=JUN 
A[7]=07                  A[7]=JUL 
A[8]=08                  A[8]=AUG 
A[9]=09                  A[9]=SEP 
A[10]=10                 A[10]=OCT
A[11]=11                 A[11]=NOV
A[12]=12                 A[12]=DEC
 
YEAR=`date +%Y`
CURR_MONTH=`date +%m`
if [ ${CURR_MONTH} -lt 8 ]
then
B=`expr ${CURR_MONTH} + 5`
YEAR0=`expr $YEAR - 1`
else
B=`expr ${CURR_MONTH} - 7`
YEAR0=$YEAR
fi
 
TARGET_MONTH=`echo ${A[$B]}`
 
TARGET_PAR=PAR_TAB_NAME_${YEAR0}_${TARGET_MONTH}

得到分区名后,就可以进行备份清理了

— The End —

关键字:
喜欢DBARoad的文章,那就通过 RSS Feed 功能订阅阅读吧!

我要评论

*

* 绝不会泄露


  • 订阅


      抓虾
      google reader
      my yahoo
      bloglines
      鲜果
      有道

站内搜索



返回首页 | 关于我 | 联系我 | 广告合作 | 网站地图 | 友情链接 | 版权声明 |