Mysql远程定时备份数据

Mysql远程定时备份数据

前提条件:

  • 首先在备份机上安装mysql的客户端,或者直接安装mysql也可以。

开始备份

1、 创建备份路径

mkdir /data/backup/test/

2、创建备份脚本

vim backup.sh

写入shell:

mysqldump -h 需要备份数据库所在机器ip -u用户名 -p密码 备份的数据库名 --opt -Q -R --skip-lock-tables > 备份文件所在路径

实例:

mysqldump -h 192.168.0.11 -uroot -p123456 test --opt -Q -R --skip-lock-tables > /data/backup/test/test_$(date +%Y%m%d_%H%M%S).sql

在创建成功之后可以先运行测试一下看看,相应的路径下面是否有备份的sql文件生成。

3、创建定时任务

3.1安装 crontab
#查看crontab是否安装
crontab -l
#no crontab for root  未安装
#安装crontab
yum -y install vixie-cron     # crontabs的核心依赖
yum install crontabs
#服务状态控制
/sbin/service crond start //启动服务 
/sbin/service crond stop //关闭服务 
/sbin/service crond restart //重启服务 
/sbin/service crond reload //重新载入配置 
/sbin/service crond status //查看状态
#或者使用
service crond start 
service crond stop 
service crond restart 
service crond reload 
service crond status
#开机启动
vim /etc/rc.d/rc.local
/sbin/service crond start
3.2加入计划任务
crontab -e
0 1 * * * sh /data/backup.sh

查看计划任务是否执行:

#命令类似tomcat的日志查看
tail -f /var/log/cron

至此,其实定时备份已经完成了,不过还可以有个小优化,在每次执行备份的时候检查一下,多长时间之外的备份文件就不要了,不然备份文件日积月累会越来越多,把磁盘挤爆。。。。

在backup.sh中加入下面语句:

rm -rf $(find /data/backup/ -mtime +30 -name "*.sql")

这样就能只备份最近一个月的文件了。

你可能感兴趣的:(数据库)