分区表N+1备份清除策略的SHELL实现
作者 :OoNiceDream【转载时请务必以超链接形式标明文章原始出处和作者信息】
链接:http://www.dbaroad.me/archives/2009/03/partition-archive-purge-shell.html
链接: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 —
关键字: Shell


站内搜索