备份
1.数据库定时备份工作脚本:(日期时间作为名称的压缩文件,解压开是sql脚本)
/root/backup/script/backup_mysql.sh
2.备份输出路径:
/root/backup/mysql
3.执行计划任务的命令:
#crontab -e 打开计划任务编辑器
#增加如下内容(指定于周日和周四00:00开始执行backup_mysql.sh备份脚本)
0 0 * * 0,4 /root/backup/script/backup_mysql.sh
4.如果对库新增了数据,也可以手动执行一次备份
#登陆192.168.20.101,命令行下./root/backup/script/backup_mysql.sh  执行脚本
5.文件生产在 /root/backup/mysql/年份日期时间.tar.gz
 
backup_mysql.sh脚本内容:
#========================start shell 脚本============================
#!/bin/bash #定义有备份的数据库名
dbname=**** #定义备份数据库时使用的用户名和密码
dbuser=****
dbpasswd=****
#数据库备份的路径
backuppath=/root/backup/mysql/ #数据库备份日志文件存储的路径
logfile=/root/backup/log/mysql.log #以当前的时间作为备份的数据库命名。
dumpfile=$(date +%y%m%d%H%M) #这个函数用来备份数据库
back_db() {
#将备份的时间、数据库名存入日志
echo "------"$(date +%Y-%m-%d%t%A%t%T)" Beginning database "${dbname}" backup--------" >>${logfile} #备份数据库,如果有错误信息也记入日志。默认utf8编码
#--skip-opt (mysql服务运行时备份,请加此参数,防止表损坏,mysqldump可选参数)
#--quick --force --routines --add-drop-database --add-drop-table (存储过程也会一起备份,mysqldump可选参数)
/usr/bin/mysqldump --skip-opt -u${dbuser} -p${dbpasswd} --default-character-set=utf8 --quick --force --routines --add-drop-database --add-drop-table ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile} #开始压缩数据文件
echo $(date +%Y-%m-%d%t%A%t%T)" Beginning zip ${backuppath}${dumpfile}.sql" >>${logfile} #将备份数据库文件库压成ZIP文件,并删除先前的SQL文件。如果有错误信息也记入日志。
tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql && rm ${dumpfile}.sql 2>> ${logfile} #将压缩后的文件名存入日志。
echo "backup file name:"${dumpfile}".tar.gz" >>${logfile}
echo -e "-------"$(date +%Y-%m-%d%t%A%t%T)" Ending database "${dbname}" backup-------\n" >>${logfile}
} #发送邮件
#cat ${logfile} | mutt -s "Blog数据库备份" -a ${dumpfile}.tar.gz 8chf@163.com } #这个函数用来删除90天前的数据,注意,这个脚本会删除当前目录下所有的早于七天前的文件
rm_oldfile() {
#查找出当前目录下90天前生成的文件,并将之删除
find /root/backup/mysql -type f -mtime +90 -exec rm {} \;
} #切换到数据库备份的目录。如果不做这个操作,压缩文件时有可能会错误
cd ${backuppath} #运行备份数据函数
back_db #运行删除文件函数
rm_oldfile #====================end shell 脚本======================

恢复

1. 恢复备份的数据库
注:数据库备份为"年份日期时间.tar.gz"的压缩文件,解压后为sql文件。如:201206271633.tar.gz :代表2012年06月27日16点33分.tar.gz
#1 winscp 登陆mysql服务器 取出/root/backup/mysql/下的最后备份的.tar.gz
#2 解压
#3 使用数据库管理工具navicat 新建一个“数据库”,然后打开,右键“表”,弹出菜单选
择“运行批次任务文件”导入sql文件,选择utf8编码,执行即可还原表结构数据(默认utf8编码)。
#test数据库为测试数据库,随便导入测试
 
上面的脚本可能因为多余空格之类的原因无法运行,附上脚本下载链接:点击此处下载
******************************************************
如果备份失败,可能是由于目录不可写造成的
mysql是以mysql用户身份运行的,对/root/backup/mysql不可写也会失败 

chmod 777 /root/backup/mysql 尝试能否解决问题

Linux下mysql定时备份及恢复的更多相关文章

  1. linux下mysql定时备份数据库

    linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...

  2. linux下mysql定时备份

    1. 在服务器上建立备份文件的存放文件夹 sudo mkdir /usr/local/dbbackup 2. 编写备份脚本 vi dbbackup.sh 在里面编写如下内容 mysqldump -ur ...

  3. linux下mysql定时备份,数据保存周期一周

    以下脚本来自网络,版权归原作者所有(推荐放在夜间自动备份,用cron制定计划任务) crontab -e 0 3 * * * /var/erp/data/mysql_backup.sh #!/bin/ ...

  4. Linux下MySQL的备份与还原

    Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...

  5. Linux下MySQL定时按日期备份数据

    一.使用mysql内置命令 mysqldump Usage: mysqldump [OPTIONS] database [tables] mysqldump [OPTIONS] --databases ...

  6. Linux下Mysql数据库备份

    今天一同事的电脑无缘无故坏了,找了IT部门检测说是硬盘坏了,数据无法恢复.好悲剧.自己博客也写了好久不容易,要是突然间数据丢了那怎么办!于是写了个数据库自动备份脚本,并创建任务计划,实现每天22:30 ...

  7. [转载]linux下mysql 自动备份

    ySQL :: Linux 下自动备份数据库的 shell 脚本Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其 ...

  8. windows下mysql定时备份

    场景:一套B/S小系统,租用了一个虚拟服务器windows 2003,数据库是mysql,做每天的数据库备份 1.关于windows下的定时任务执行     * 命令说明 - /sc 指定计划类型,取 ...

  9. linux下mongodb定时备份指定的集合

    目标:把一台linux机上mongodb的数据定时备份到另一台机上: 过程: 一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了m ...

随机推荐

  1. sql查询将列里面的值替换为别的值但是实际值不变

    数据库有一张表BUG(缺陷记录表) 里面有字段severity(严重程度): severity的值实际为1,2,3,4,但希望在查询结果中将severity的1,2,3,4值显示为其他的值,但seve ...

  2. Matlab2012a下配置LibSVM—3.18

    1.下载最新版LibSVM 点击此处打开网页,点击zip file下载最新版的文件并解压放在任何目录下,建议放在安装目录便于查找.如我的文件解压在路径C:\ProgramFiles\MATLAB\R2 ...

  3. shutdown-用于关闭/重启计算机

    Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执行shutdown命令时,系统会给每个终端(用户)发送一条屏显,提 ...

  4. shell script-条件语句、循环语句

    条件语句 #!/bin/bash read -p "input your name:" name #第一种判断 if [ "$name" == "Mi ...

  5. 27、BLASTN的参数

    转载:http://blog.sina.com.cn/s/blog_5ecfd9d90100ksui.html http://www.docin.com/p-704735699.html 与之前的bl ...

  6. 阶段2-新手上路\项目-移动物体监控系统\Sprint2-摄像头子系统开发\第2节-V4L2图像编程接口深度学习

    参考资料: http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.htmlhttp://blog.csdn.net/eastmoon5021 ...

  7. 网页游戏开发秘笈 PDF扫描版

    精选10种常见的游戏类型,透过典型实例,深入剖析游戏引擎及工具的选用技巧,详细讲解每款游戏的制作过程,为快速掌握网页游戏开发提供系统而实用的指南. 网页游戏开发秘笈 目录: 译者序  前 言  导 言 ...

  8. gitlab 502解决方案

    gitlab突然出现502 尝试gitlab-ctl restart.gitlab-ctl reconfigure 无效. 之后做法: #查看git日志 gitlab-ctl tail发现日志报错:端 ...

  9. Boost Python官方样例(一)

    配置环境 $ cat /etc/os-release NAME="Ubuntu" VERSION="16.04 LTS (Xenial Xerus)" ID=u ...

  10. qemu-nbd使用教程

    服务端 服务器环境 已经安装过qemu-img的32位ubuntu ubuntu@ubuntu-virtual-machine:~/laboratory$ uname -a Linux ubuntu- ...