标签 增量备份 下的文章

备份策略制定

数据量&需求备份策略恢复所需文件
数据量100G 一下一天做一次level 0的备份(全备)恢复的时候,会使用最新的那一 份备份和归档进行恢复
数据量100G -500G周日做一次level 0的备份,其它工作日做level 1的增量备份恢复的时候,会使用周日的那一次level 0的做恢复,再加上工作日的 level 1的增量以及归档恢复到最新状态
数据量500G -1T对恢复时间要求高周日做一次level 0的备份,其它工作日做level 1的增量备份恢复的时候,会使用周日的那一次 level 0的做恢复,再加上工作日的 level 1的增量以及归档恢复到最新状态
数据量500G以上对恢复时间无要求每月初的周日做一次 level 0的备份,其它周日做level 1的增量备份,其它工作日做level 2 的增量备份。例:2021- 10-01 做 level 0 的备份,7、14、21、28 号做 level 2的 incremental level 1 的备份,其它日做 incremental level 2的备份假如 10 月 29 号发生数据库损 坏,可以使用月初周末的 1 号那 天的 level0 的做恢复,然后依次 使用 7、14、21、28 号做 level2 的 incremental level 1 的备份恢 复,再使用 29 号的 incremental level 2 备份恢复,最 后使用归档恢复到最新状态

- 阅读剩余部分 -

#!/bin/bash  
#根据项目同重命名该脚本  
#例 amountebak.sh or pandawillsbak.sh  
#该脚本放 $bakpp定义绝路径部  
#$bakpp找相应备份文件  
#例 /usr/backup/amountebak.sh or /usr/backup/pandawillsbak.sh  
########## Init Path ########  
# 面参数必须定义参数 $bakpp、$project、$projectpp  
TAR=/bin/tar  
# 存放备份文件项目名称区  
bakpp=/apps/beifen/"$project"  
# 需要备份文件夹文件夹路径  
project=djk  
projectpp=/apps/apache-tomcat-8.5.9/webapps/vlis/ 
# parament for varible  
ym=`date +%Y%m`  
ymd=`date +%Y%m%d`
# 存储备份文件目录月份区级目录$bakpp定义  
monthbakpp=$bakpp/$ym  
gidpp=$monthbakpp  
gidshot=gid$project$ym  
# 完全备份文件名  
fullname=$ym  
# 增量备份文件名  
incrementalname=$ymd  
# Record the location of the log  
log=$bakpp/$project.log  
############ chk_full #######################  
# 检查完全备份否存存创建  
#this function check fullbackup file exist or not , if not then create fullbackup now  
chk_full()  
{  
if [ -e "$monthbakpp"/"$project"_"$ym"_full.tar.gz ];then  
echo ""$project"_"$ym"_full.tar.gz file exist!! ====`date +%Y-%m-%d-%T` " >>$log  
else  
tar_full  
fi  
}  
######### chk_incremental ########  
# 检查增量备份否存  
chk_incremental()  
{  
while [ -e "$monthbakpp"/"$project"_"$incrementalname"_incremental.tar.gz ]  
do  
incrementalname=`echo "$incrementalname + 0.1" | bc `  
done  
}  
######## tar_incremental #######  
# 执行增量备份  
tar_incremental()  
{  
cd $projectpp  
echo "BEIGIN_TIME=====`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $log  
sleep 3  
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$incrementalname"_incremental.tar.gz $project  
echo "END_TIME========`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $log  
}  
######## tar_full ###########  
tar_full()  
{  
touch $gidpp/$gidshot  
cd $projectpp  
echo "BEIGIN_TIME=====`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$fullname"_full.tar.gz" >> $log  
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$fullname"_full.tar.gz $project  
echo "END_TIME========`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$fullname"_full.tar.gz" >> $log  
}  
########### backup ##############################  
# 总体调用备份做相应检查确保备份前提准备充  
backup()  
{  
if [ -d $monthbakpp ]; then  
   chk_full  
   chk_incremental  
   tar_incremental  
else  
mkdir -p $bakpp/$ym  
tar_full  
fi  
}  
########### let's begin #############  
# 先检查$bakpp否存存先创建备份  
if [ -d $bakpp ];then  
backup  
else  
mkdir -p $bakpp  
backup  
fi  
#advice you can create a file for put backup file, eg /usr/cctcc  
#crontab  
#mini hours day month week command  
# */5 * * * * /home/mmroot/zbb/aaa.sh  
# 44 11 * * * /usr/tmp/vcan.sh  
# tar -ztf test.tar.gz 查看备份文件面文件  

- 阅读剩余部分 -