码迷,mamicode.com
首页 > 数据库 > 详细

mysql自动备份

时间:2015-11-03 10:44:52      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:mysql   自动化   备份   

前言:《mysql自动备份》,在安装完mysql,需要的就是对mysql进行自动化备份,以免项目运行过程中数据丢失造成不可挽回的后果,那么这篇文章就来手把手的教你如何进行自动化备份,注意啊,睁大眼睛了,哈哈,这可是不可多得的秘密!

经常不经意间就发现文章被扣到各式各样的网站上面,甚是可恶!
那么人生何处不爬虫,爬虫请标http://blog.csdn.net/qing_gee
见贤思齐焉,见不贤而内自省也!

库文件备份

库文件备份,我建议一周一次(当然,我的项目规模一般,然后至于怎么一周一次,稍候我们再聊了)

#!/bin/bash
date_now=`date +%Y_%m_%d_%H%M%S`
mysqldump -uroot -plixiaoli --flush-logs --master-data=2 maweiqing>/home/backup/${date_now}.sql &&
zip -r /home/backup/${date_now}.zip /home/backup/${date_now}.sql
rm -f /home/backup/${date_now}.sql
  1. 获取当前日期,作为库文件备份的文件名
  2. mysqldump命令对数据库maweiqing备份到20151030.sql中
  3. zip命令对文件压个缩。
  4. rm命令删除sql文件

二进制日志备份

二进制文件备份,我建议早晚各一次了。


#!/bin/bash
date_now=`date +%Y_%m_%_d_%H%M%S`
filename=mysql-bin
filesuffix_max=0
filesuffix_lastbutone=0
mysqlpath=/var/lib/mysql/
backuppath=/home/backup/mysqlbinarylog/
mysqladmin -uroot -plixiaoli flush-logs &&
for fname in `ls $mysqlpath`
do
filesuffix=${fname##*.}
isnum=`expr match ${filesuffix} ‘[0-9][0-9]*$‘`

if [ $isnum ] && [ $isnum -ne 0 ] && [ $filesuffix -gt $filesuffix_max ]
   then
       filesuffix_lastbutone=$filesuffix_max
       filesuffix_max=$filesuffix
fi
done &&
filefullname=${filename}.${filesuffix_lastbutone}
cp $mysqlpath$filefullname $backuppath &&
zip ${backuppath}${date_now}${filefullname}.zip $backuppath$filefullname &&
echo "done"


1. 注意,二进制日志备份,需要mysql开启二进制日志。
2. 其文件路径是在/var/lib/mysql/路径下面。
3. mysqladmin 命令进行二进制日志备份。

说到这,我觉得我要提醒你点什么,以免你照做后出现错误来找我(如果你要来找我,我觉得挺乐意的)。

  • 上面两个文件列出的路径,你一定要检查是否存在,如果不存在,就mkdir一下。
  • zip命令如果在服务器上没有安装的话,我稍候也会告诉你怎么做的。
  • mysql日志文件的事情,我的另一篇文章会说明的,请参见
  • 至于在Linux上怎么编辑文件,我想你可以问问“vim”大人。
  • 还有什么忘记说的?对了,你在看这篇文章之前最好看看mysql配置

这两个文件是搞好了,接下来要做什么?“元芳,你怎么看?”“大人,你觉得呢?”

测试一下呗

首先,要想让两个文件运行,肯定是要赋予他们灵魂的,不然,怎么搞。

[root@iZ23gsv94suZ soft]# chmod 700 flushlog_and_copy.sh 
[root@iZ23gsv94suZ soft]# chmod 700 backuplixiaoli.sh 

flushlog_and_copy.sh这个是二进制文件备份。
那么另外一个就是备份库文件了。

测试一下吧!

[ot@iZ23gsv94suZ soft]# sh backuptiangong.sh 
mysqldump: [Warning] Using a password on the command line interface can be insecure.
  adding: home/backup/2015_10_30_105545.sql (deflated 77%)

[root@iZ23gsv94suZ backup]# ll
total 28
-rw-r--r-- 1 root root 23948 Oct 30 10:55 2015_10_30_105545.zip

看到了吧,文件备份好了!既然有zip文件,这说明zip命令也有了,还不错!

测试二进制文件

[root@iZsuZ soft]# sh flushlog_and_copy.sh 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
expr: syntax error
  adding: home/backup/mysqlbinarylog/mysql-bin.000002 (deflated 36%)
done

[root@iZ23gZ soft]# cd /home/backup/mysqlbinarylog/
[root@iZ23 mysqlbinarylog]# ll
total 8
-rw-r--r-- 1 root root 343 Oct 30 10:59 2015_10_30_105901mysql-bin.000002.zip
-rw-r----- 1 root root 167 Oct 30 10:59 mysql-bin.000002

不知道这样的写作风格是否符合你的阅读习惯,如果你觉得还可以,那么继续吧!先来看看Linux的自动化服务!

到这呢,你可能需要先看看Linux:时间同步,了解一下Linux的自动化服务!

先看看crontab有没有列表

[root@iZ23gsv94suZ mysqlbinarylog]# crontab -l
-bash: crontab: command not found

什么?竟然没有安装crontab,不过也没有什么大不了的嘛,安装下就OK!

[root@iZ23gsv94suZ mysqlbinarylog]# yum install -y vixie-cron
Loaded plugins: security
Setting up Install Process
Resolving Dependencies
Installed:
  cronie.x86_64 0:1.4.4-15.el6                                                                                                                                                                                                  

Dependency Installed:
  cronie-anacron.x86_64 0:1.4.4-15.el6                                            crontabs.noarch 0:1.10-33.el6                                            exim.x86_64 0:4.72-7.el6                                           

Complete!

不过以上,我觉得没什么大不了的,不过我觉得很重要的是一定要启动crontab服务,然后设置为开机启动,这些怎么做到?别忘了我已经告诉你了,查看Linux:时间同步.

将下面这两个自动化任务加入到crontab中吧!

30 12,17,23 * * 1-5 sh /home/soft/flushlog_and_copy.sh
40 23 * * 6 sh /home/soft/backuplixiaoli.sh

注意,文件的路径啊。

稍微解释一下,全凭我一时记忆。

  1. 周一到周五12点半、17点半、23点半进行二进制文件备份
  2. 周六23点40分进行库文件备份。

然后,我们crontab -l查看一下,是否已经命令加入到自动化任务中!

最后的最后,请你一定要注意观察,备份有没有自动化开始,如果你有麻烦的话,请麻烦我,哈哈!

结语:我要做技术路上的清道夫,为你为我为大家扫清我遇到的困惑!有没有发现,我是很有理想的,哈哈!

版权声明:这是自封为qing_gee的挨踢工作者,用文字打造的一个高品质的博客栏目。让你拥有一段快乐的阅读时光,不再是奢侈的梦想!

mysql自动备份

标签:mysql   自动化   备份   

原文地址:http://blog.csdn.net/qing_gee/article/details/49506313

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!