每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;
需求:
1,每天4点备份mysql数据;
2,为节省空间,删除超过3个月的所有备份数据;
3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据;
#创建shell文件
vim backup_mysqlsh
mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`sql
find /data/dbdata/mysqlbak/ -mtime +7 -name '[1-9]sql' -exec rm -rf {} \;
find /data/dbdata/mysqlbak/ -mtime +92 -name 'sql' -exec rm -rf {} \;
#创建定时任务
crontab –e
0 4 /data/dbdata/backup_mysqlsh
假想环境:
1 MySQL安装位置:D:\Program Files\MySQL\MySQL\MySQL Server 50
2 数据库名称:mlsite
3 数据库备份目的地:E:\db_backup\mlsite
*** 作原理:
1 在MySQL的安装文件夹下,有data文件夹,data文件夹中存放数据库中的数据,这里以mlsite数据库为例,因此data文件夹下有mlsite这个文件夹,mlsite文件夹下是mlsite数据库的所有数据表的结构信息。在data文件夹下有一个idbata1这个文件是真正的数据文件。因此在备份时一定要对此文件进行备份。
2 编写批处理文件,实现上面的文件备份工作。利用Windows 的任务计划功能定时启动批处理文件进行备份。
*** 作步骤:
1 编写批处理文件dabakbat,实现备份文件的拷贝功能。源程序见附件。
2 选择开始->控制面板->任务计划……请自己按说明 *** 作。
代码部分:
1 源程序:[1、2、3、4、5是为了注释而用]
1)net stop mysql
2)mkdir E:\db_backup\mlsite\"%date:~4,10%"
3)xcopy D:\"Program Files"\MySQL\"MySQL Server 50"\data\ibdata1 E:\db_backup\mlsite\"%date:~4,10%"\/y
4)xcopy D:\"Program Files"\MySQL\"MySQL Server 50"\data\mlsite\ E:\db_backup\mlsite\"%date:~4,10%"\/y
5)net start mysql
特别说明,需要使用引号。
2 解释:
1) 关闭Mysql服务
2) 创建备份目录
3) 拷贝ibadata1到备份目录下,注意Program Files上打了引号,是因为若不打引号会出现参数错误,原因是因为xcopy的参数是前面是源地址+空格+目标地址,如果不打引号,Program Files上有空格,会对这个命令产生影响
4) 拷贝mlsite其它文件到备份目录下
5) 开启mysql服务
打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。
双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。
点击保存,d出个命名对话框,给这个任务取个名字,点击“确定”。
点击“设置”计划任务。
d出的对话框,选择“计划”,再点击“新建”。
这里设置为从2014年1月24号起每天早上九点备份该数据库。如果你想提高备份频率、或者设置备份截止日期,请点击“高级”。
高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次。加上前面的基本设置,任务计划就是:从2014年1月24号开始,每天九点,每隔2小时备份一次,每天的备份都持续24小时。
最后,输入电脑密码就大功告成。
remrem C:\Program Files\WinRAR 需要放到 path 下,才能调用rar cli工具remrem 跳转到工作目录下f:cd f:\DBBAK
rem 设置变量:备份文件名
SET BAK_FILE=MY_DBBAK_%date:~0,-4%sql
rem 设置变量:日志文件名
SET LOG_FILE=MY_DBBAKlog
rem 记录日志
echo "%date%" 》 %LOG_FILE%
rem 开始做备份
mysqldump --default-character-set=utf8 -hlocalhost -uroot -R --triggers --single-transaction -B mydb %BAK_FILE%
rem 压缩备份文件
rar a %BAK_FILE%rar %BAK_FILE%
rem 删除源文件
del /F %BAK_FILE%
echo "%date%" 》 %LOG_FILE%
部署完脚本后,剩下的就是在系统中添加计划任务项目了。
以上就是关于Linux 怎么shell脚本定时备份mysql数据库全部的内容,包括:Linux 怎么shell脚本定时备份mysql数据库、怎样定时进行mysql数据库流水日志数据备份、如何进行mysql数据库自动备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)