如何在linux下实现mysql数据库每天自动备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在linux下实现mysql数据库每天自动备份相关的知识,希望对你有一定的参考价值。

方法/步骤

1. 在根目录下新建定时备份存储文件夹mkdir /mysql_backup
2.新建备份的脚本vim /root/mysql_backup.sh
3.在mysql_backup.sh中输入内容:
backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqldump -uroot -proot abc | gzip > $backupdir/abc$time.sql.gzfind $backupdir -name “abc*.sql.gz" -type f -mtime +5 -exec rm \; > /dev/null 2>&1

——————————————————————————————
说明:
backupdir = 备份文件存储文件夹time = 获取当前时间 年月日时(2014111417)2014年11月14日17点mysqldump 备份数据库指令 abc要备份的数据库find $backupdir -name “abc*.sql.gz" -type f -mtime +5 -exec rm \; > /dev/null 2>&1 删除5天前的备份文件
3 :wq 文件保存成功后

先按一下键盘上的 " esc " 然后输入 ” :wq “
执行一下脚本,看根目录下的mysql_backup文件夹是否有.sql.gz后缀名的文件

./mysql_backup.sh
写入每天的定时任务 修改 /etc/crontabvi /etc/crontab
按键盘上的"i",开始输入

02 4 * * * root /root/mysql_backup.sh

表示每天4点2分执行备份任务

先按一下键盘上的 " esc " 然后输入 ” :wq “ 表示保存
8
重新启动crond

service crond restart 或 /etc/rc.d/init.d/crond restart
参考技术A 怎么写代码和脚本不知道,个人用的是第三方工具,多备份来实现的。下载一个多备份Linux客户端,界面化操作就可以实现了,非常方便,每天定时自动备份;另外还可以直接在线备份 参考技术B 用工具多备份吧,下载一个多备份Linux客户端或者直接使用在线备份都可以,设置一下参数就可以实现每天自动备份了,非常方便

干货Linux 下如何实现 MySQL 数据库每天自动备份定时备份

【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!


【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份
备份是什么
【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份
为什么要备份
【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份
容灾方案建设
【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份
存储介质
【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份


光盘 
磁带 
硬盘 
磁盘阵列 
DAS:直接附加存储 
NAS:网络附加存储 
SAN:存储区域网络 
云存储

这里主要以本地磁盘为存储介质讲一下计划任务的添加使用,基本的备份脚本,其它存储介质只是介质的访问方式可能不大一样。


1、查看磁盘空间情况:

既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!

存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质;

# df -hFilesystem


2、创建备份目录:

上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件;

cd /home
mkdir backupcd backup


3、创建备份Shell脚本:

注意把以下命令中的DatabaseName换为实际的数据库名称;当然,你也可以使用其实的命名规则!

vi bkDatabaseName.sh


输入/粘贴以下内容:

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql


对备份进行压缩:

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz


注意:

把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 DatabaseName 替换为实际的数据库名;


4、添加可执行权限:

chmod u+x bkDatabaseName.sh


添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

./bkDatabaseName.sh


5、添加计划任务

检测或安装 crontab

确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

# crontab
-bash: crontab: command not found


如时没有安装 crontab,需要先安装它,具体步骤请参考:

CentOS下使用yum命令安装计划任务程序crontab 
https://blog.csdn.net/testcs_dn/article/details/48780971

使用rpm命令从CentOS系统盘安装计划任务程序crontab
https://blog.csdn.net/testcs_dn/article/details/48781553


添加计划任务

执行命令:

crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑。


输入以下内容并保存:

*/1 * * * * /home/backup/bkDatabaseName.sh


具体是什么意思呢?

意思是每一分钟执行一次shell脚本“/home/backup/bkDatabaseName.sh”。

【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份
测试任务是否执行
【干货】Linux 下如何实现 MySQL 数据库每天自动备份定时备份

很简单,我们就执行几次“ls”命令,看看一分钟过后文件有没有被创建就可以了!


如果任务执行失败了,可以通过以下命令查看任务日志:

# tail -f /var/log/cron


输出类似如下:

Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2503]: starting 0anacron
Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2512]: finished 0anacron
Sep 30 15:01:01 bogon CROND[3092]: (root) CMD (run-parts /etc/cron.hourly)
Sep 30 15:01:01 bogon run-parts(/etc/cron.hourly)[3092]: starting 0anacron
Sep 30 15:01:02 bogon run-parts(/etc/cron.hourly)[3101]: finished 0anacron
Sep 30 15:50:44 bogon crontab[3598]: (root) BEGIN EDIT (root)
Sep 30 16:01:01 bogon CROND[3705]: (root) CMD (run-parts /etc/cron.hourly)
Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3705]: starting 0anacron
Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3714]: finished 0anacron
Sep 30 16:15:29 bogon crontab[3598]: (root) END EDIT (root)





以上是关于如何在linux下实现mysql数据库每天自动备份的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何实现mysql数据库每天自动备份定时备份

linux下如何实现mysql数据库每天自动备份定时备份

干货Linux 下如何实现 MySQL 数据库每天自动备份定时备份

如何在生产环境下实现每天自动备份mysql数据库

如何实现Mysql数据库每天自动备份定时备份?

如何实现Mysql数据库每天自动备份定时备份