Linux 怎么shell脚本定时备份mysql数据库

Linux 怎么shell脚本定时备份mysql数据库,第1张

每天定时备份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数据库自动备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10089423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存