win mysql增量备份吗_MySQL增量备份和全备

全备:

!/bin/bash

export LANG=en_US.UTF-8

BackDir=/www/backup/databases

LogFile=/www/backup/database/back.log

Date=date +%Y%m%d

Begin=date +"%Y年%m月%d日 %H:%M:%S"

cd $BackDir

DumpFile=$Date.sql

GZDumpFile=$Date.sql.tgz

mysqldump -uroot -p数据库的root用户的密码 –all-databases –flush-logs –delete-master-logs –single-transaction > $DumpFile

tar -czvf $GZDumpFile $DumpFile

rm $DumpFile

count=$(ls -l *.tgz |wc -l)

if [ $count -ge 5 ]

then

file=$(ls -l *.tgz |awk !{print $9}!|awk !NR==1!)

rm -f $file

fi

保留1个月的备份文件

Last=date +"%Y年%m月%d日 %H:%M:%S"

echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile

cd $BackDir/daily

rm -f *

增量备份:

!/bin/bash

export LANG=en_US.UTF-8

BackDir=/www/backup/databases

BinlogDir=/www/server/data

LogFile=/www/backup/database/back.log

BinFile=/www/server/data/mysql-bin.index

mysqladmin -uroot -p数据库的root用户的密码 flush-logs

这个是用于产生新的mysql-bin.00000*文件

Counter=wc -l $BinFile |awk !{print $1}!

NextNum=0

这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的。

for file in cat $BinFile

do

base=`basename $file`

#basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./

NextNum=`expr $NextNum + 1`

if [ $NextNum -eq $Counter ]

then

echo $base skip! >> $LogFile

else

dest=$BackDir/$base

if(test -e $dest)

#test -e用于检测目标文件是否存在,存在就写exist!到$LogFile去。

then

echo $base exist! >> $LogFile

else

cp $BinlogDir/$base $BackDir

echo $base copying >> $LogFile

fi

fi

done

echo date +"%Y年%m月%d日 %H:%M:%S" Bakup succ! >> $LogFile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值