mysql的mysqldump数据备份和增量备份
本文主要讨论如何使用shell实现完整的MySQL和增量备份,增量备份将在星期一和星期六上午3点将MySQL bin 00000复制到指定目录。全量备份将出口到所有数据库使用mysqldump,并将每星期日上午3点举行,而00000×MySq为宾。上周离开将被删除。然后MySQL备份操作将被保存在bak.log文件如下:开始:05 2013 02月05 2013的15:10:57结束:02 15:12:16 20130502.sql.tgz成功是由DBFullyBak.sh制作,每周备份;mysql-bin.000001复制;mysql-bin.000002跳过;05 2013 02年七月!16:53:15成功读取BAKUP.!是由DBDailyBak.sh,一天一次。
实现uff1a
1。编写完整备份脚本
复制代码代码如下所示:
# VIM / / / dbfullybak.sh根/添加以下
# /斌/狂欢!
#程序
使用mysqldump完全备份MySQL数据每周#!
#历史
# 2013-04-27 Guo first
#路径
#的…
bakdir = / / /备份MySQL的家
日志= / / /家MySQL备份 / bak.log
日期=
开始日期+%。
CD bakdir美元
date.sql dumpfile = $
gzdumpfile = $ date.sql.tgz
/ usr /局部/ MySQL /斌/就p123456 --中-快,所有数据库--刷新日志--删除主日志--单交易> dumpfile美元
/斌/焦油czvf gzdumpfile dumpfile美元美元
/斌/ RM dumpfile美元
最后=日期+。
回声开始:开始结束:美元美元美元美元gzdumpfile最后成功> >日志
CD bakdir美元/日
RM
2。编写增量备份脚本
复制代码代码如下所示:
猫 / / / dbdailybak.sh根/内容#
# /斌/狂欢!
#程序
使用CP备份MySQL数据#每天!
#历史
# 2013-05-02 Guo first
#路径
#的…
bakdir = / / /备份MySQL的家/日
BINDIR = / / /家MySQL数据
日志= / / /家MySQL备份 / bak.log
binfile = / / /家MySQL数据/ mysql-bin.index
/ usr /局部/ MySQL /斌/ mysqladmin -中- p123456刷新日志
这#是用来生成一个新的MySQL 00000 *文件箱。
反= ` WC L binfile美元| awk {打印1美元的` }
nextnum = 0
对于为反比例#周期,美元的两值来确定文件不存在或新nextnum。
文件在`猫binfile美元`
做
基地= ` basename文件`
# basename用于拦截MySQL仓。00000 *文件名,删除的前面。 / mysql-bin.000005。
nextnum = ` expr nextnum美元+ 1 `
如果{ $ nextnum -情商$反}
然后
回波跳过!> >为日志文件
其他的
dest = bakdir美元/美元基础
如果(测试为目的)
#测试是用来检测目标是否文件是否存在,以及存在的存在!为日志文件。
然后
回波$基存在!> >为日志文件
其他的
CP美元/美元美元bakdir BINDIR基地
回波基地复制> >日志美元美元
FI
FI
多恩
回声`日期+% % m月%:% H M:%s`美元成功下读取BAKUP.!> > >为日志文件
三.设置crontab任务和执行每天的备份脚本
复制代码代码如下所示:
crontab - # L / /内容
#每个星期日早上3:00进行一次全备份脚本
03 * 0 /根/ dbfullybak.sh > / dev /空2 > 1
#星期一至星期六凌晨3:00做增量备份
03××6 /根/ dbdailybak.sh > / dev /空2 > 1
附录:
sh n /根/ dbfullybak.sh可以用来检测是否有shell的语法是正确的