Mysql入门mysql mysqldump数据备份和增量备份
发布时间:2020-12-12 01:26:28 所属栏目:MySql教程 来源:网络整理
导读:《Mysql入门mysql mysqldump数据备份和增量备份》要点: 本文介绍了Mysql入门mysql mysqldump数据备份和增量备份,希望对您有用。如果有疑问,可以联系我们。 本篇文章主要讲如何使用shell实现mysql全量,增量备份.增量备份在周一-周六凌晨3点,会复制mysql-bi
《Mysql入门mysql mysqldump数据备份和增量备份》要点: 开始:2013年05月02日 15:10:57 结束:2013年05月02日 15:12:16 20130502.sql.tgz succ是由DBFullyBak.sh产生的,每周备份一次;mysql-bin.000001 copying;mysql-bin.000002 skip!;2013年05月02日 16:53:15 Bakup succ!则是由DBDailyBak.sh产生的,每天一次. 实现: 1.编写全量备份脚本 代码如下: # vim /root/DBFullyBak.sh //添加以下内容 #!/bin/bash # Program #??? use mysqldump to Fully backup mysql data per week! # History #??? 2013-04-27 guo???? first # Path #??? .... BakDir=/home/mysql/backup LogFile=/home/mysql/backup/bak.log Date=`date +%Y%m%d` Begin=`date +"%Y年%m月%d日 %H:%M:%S"` cd $BakDir DumpFile=$Date.sql GZDumpFile=$Date.sql.tgz /usr/local/mysql/bin/mysqldump -uroot -p123456 --quick --all-databases --flush-logs --delete-master-logs --single-transaction > $DumpFile /bin/tar czvf $GZDumpFile $DumpFile /bin/rm $DumpFile Last=`date +"%Y年%m月%d日 %H:%M:%S"` echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile cd $BakDir/daily rm -f * 2.编写增量备份脚本 代码如下: # cat /root/DBDailyBak.sh //内容为下 #!/bin/bash # Program #??? use cp to backup mysql data everyday! # History #??? 2013-05-02 guo???? first # Path #??? .... BakDir=/home/mysql/backup/daily BinDir=/home/mysql/data LogFile=/home/mysql/backup/bak.log BinFile=/home/mysql/data/mysql-bin.index /usr/local/mysql/bin/mysqladmin -uroot -p123456 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=$BakDir/$base ??????????????? if(test -e $dest) ??????????????? #test -e用于检测目标文件是否存在,存在就写exist!到$LogFile去. ??????????????? then ??????????????????????? echo? $base exist! >> $LogFile ??????????????? else ??????????????????????? cp $BinDir/$base $BakDir ??????????????????????? echo $base copying >> $LogFile ??????????????? fi ??????? fi done echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next Bakup succ! >> $LogFile 3.设置crontab任务,每天执行备份脚本 代码如下: # crontab -l //内容为下 #每个星期日凌晨3:00执行完全备份脚本 0 3 * * 0 /root/DBFullyBak.sh >/dev/null 2>&1 #周一到周六凌晨3:00做增量备份 0 3 * * 1-6 /root/DBDailyBak.sh >/dev/null 2>&1 附录: sh -n /root/DBFullyBak.sh可以用于检测shell语法是否正确 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案
- MySQL重做日志(redo log)
- php – 如何在codeigniter中引用数据库连接?
- MYSQL数据库MySQL5.6.31 winx64.zip 安装配置教程详解
- PhpMyAdmin 配置文件现在需要一个短语密码的解决方法
- php-即使有错误,PDO错误代码也总是00000
- Mysql学习MySQL timestamp自动更新时间分享
- MySQL主从复制读写分离
- Mysql实例MySQL利用AES_ENCRYPT()与AES_DECRYPT()加解密的正
- java – 复杂的order-by子句到.hbm hibernate文件中