1 #function:MYSQL自动全备
2 #version:1.0.0
3 #author:wangyanlin
4 #date:2017/08/03
5 #-----------------------------------------------------------------------------------------------
6 #!/bin/sh
7 #创建目录
8 MAIN=`cd / && mkdir -p mysql_bak`
9 MAIN1=`mkdir -p /mysql_bak/all_data`
10 LOGS=`mkdir -p /mysql_bak/logs`
11 #指定参数
12 DATE=`date +%Y%m%d%H%M%S`
13 DATE1=`date +%Y%m%d`
14 DB_user=root
15 DB_password=123456
16 #MySQL全备使用mysqldump命令
17 start_time=`date +'%Y-%m-%d %H:%M:%S'`
18 echo "$DATE数据库全备开始......" >> /mysql_bak/logs/Full_Bak_$DATE1.log
19 /usr/bin/mysqldump --all-databases --default-character-set=utf8 --flush-logs -u$DB_user -p$DB_password > /mysql_bak/all_data/Full_Bak_$DATE.sql
20 if [ $? -eq 0 ]
21 then
22 echo "$DATE数据库备份成功......" >> /mysql_bak/logs/Full_Bak_$DATE1.log
23 cd /mysql_bak/all_data/
24 /usr/bin/tar -zcvf Full_Bak_$DATE.sql.tar.gz Full_Bak_$DATE.sql > /dev/null
25 if [ $? -eq 0 ]
26 then
27 echo "$DATE数据库备份打包成功......" >> /mysql_bak/logs/Full_Bak_$DATE1.log
28 /usr/bin/find /mysql_bak/all_data/ -name "Full_Bak_*.*" -mtime +7 -exec rm -rf {} \;
/usr/bin/find /mysql_bak/logs/ -name "Full_Bak_*.log" -mtime +7 -exec rm -rf {} \;
29 else
30 echo "$DATE数据库备份打包失败......" >> /mysql_bak/logs/Full_Bak_$DATE1.log
31 exit 0
32 fi
33 else
34 echo "$DATE数据库备份失败......" >> /mysql_bak/logs/Full_Bak_$DATE1.log
35 cd /mysql_bak/all_data/
36 rm -rf Full_Bak_$DATE.sql
37 exit 0
38
39 fi
40 end_time=`date +'%Y-%m-%d %H:%M:%S'`
41 start_seconds=$(date --date="$start_time" +%s);
42 end_seconds=$(date --date="$end_time" +%s);
43 echo "本次备份运行时间: "$((end_seconds-start_seconds))"s" >> /mysql_bak/logs/Full_Bak_$DATE1.log

添加计划任务:

crontab -e

00 00 * * 6 /root/MySQL_allbak.sh    #每周六的凌晨00点开始全备

logs日志打印出来的效果:

使用前请将备份的路径自行更改,后期会更新MySQL数据库自动增量备份的脚本代码和手动交互式备份数据库的代码,有问题请指出,新手刚写,大神勿喷!

MySQL数据库全备的更多相关文章

  1. mysql数据库全备和全备还原(使用Xtrabackup)

    一.使用innobackupex创建全备 语法 innobackupex --user=DBUSER --password=DBUSERPASS /path/to/backup/dir/ innoba ...

  2. mysql数据库的增量备份和全备

    还有一种简单的方法 参考 https://blog.csdn.net/u010098331/article/details/50932064 (注意:5.6版本以上新加了gtid 功能,gtid开启之 ...

  3. 使用xtrabackup备份mysql数据库

    数据在一个企业里非常重要,因此经常需要备份数据库,确保出线故障时,可以立刻恢复数据到最新状态,目前常见的备份工具有mysqldump和xtrabackup,数据量较少时可以使用mysqldump,但随 ...

  4. 使用 xtrabackup 进行MySQL数据库物理备份

    0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...

  5. mysql数据库误删除后的数据恢复操作说明

    在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办 ...

  6. MYSQL数据库自动本地/异地双备份/MYSQL增量备份

    构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...

  7. MySQL数据库备份还原(基于binlog的增量备份)

    MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份      增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...

  8. MySQL 数据库增量数据恢复案例

    MySQL 数据库增量数据恢复案例 一.场景概述 MySQL数据库每日零点自动全备 某天上午10点,小明莫名其妙地drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢 ...

  9. mysql数据库误删除操作说明

    在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办 ...

随机推荐

  1. 每周.NET前沿技术文章摘要(2017-05-10)

    汇总国内外.NET社区相关文章,覆盖.NET ,ASP.NET和Docker容器三个方面的内容: .NET Debugging .NET core with SOS everywhere 链接:htt ...

  2. 10本Java书籍推荐

    1. <深入理解Java虚拟机>是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中 ...

  3. ArcGIS 网络分析[8.3] 设置IDENetworkDataset的属性及INetworkDataset的对比/创建网络数据集

    创建网络数据集就得有各种数据和参数,这篇文章很长,慎入. 网络分析依赖于网络数据集的质量,这句话就在这里得到了验证:复杂.精确定义. 本节目录如下: 1. INetworkDataset与IDENet ...

  4. 回顾2017系列篇(一):最佳的11篇UI/UX设计文章

    2017已经接近尾声,在这一年中,设计领域发生了诸多变化.也是时候对2017年做一个总结,本文主要是从2017设计文章入手,列出了个人认为2017设计行业里最重要的UI/UX文章的前11名,供大家参考 ...

  5. js功能代码大全

    1.日期格式化 //化为2017-08-14 function formatDate (date) { var y = date.getFullYear(); var m = date.getMont ...

  6. 微信扫码支付功能详细教程————Java

    前言  首先声明 我并非原创 原创是 http://blog.csdn.net/wangqiuyun/article/details/51241064 我只是在前辈的基础 加以解释说明 还有自己的一些 ...

  7. 海外ubuntu,lamp,ftp,phpmyadmin配置

    海外ubuntu,lamp,ftp,phpmyadmin配置 1. 更换源 1.1 clean /etc/apt/sources.list file 1.2 Ubuntu Sources List G ...

  8. Linux下防火墙配置

    查看防火墙的状态:/etc/init.d/iptables  status  或  service  iptables  status 1) 临时生效,重启后复原 开启: service  iptab ...

  9. 通过js中的useragrent来判断设备是pc端还是移动端,跳转不同的地址

    if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alc ...

  10. css div 细边框

    .item{ max-width:48%; float:left; padding:2px; border-top:1px solid #000; border-left:1px solid #000 ...