用Mysqldump实现全库备份+binlog的数据还原

首先是为mysql做指定库文件的全库备份

vim mysqlbak.sh

#!/bin/bash

#定义数据库目录,要能找到mysqldump

mysqlDir=/usr

#定义用于备份数据库的用户名和密码

user=root

userpwd=123456

dbname=db1

#定义备份目录

databackupdir=/mysqlbak

#定义邮件正文文件

emailfile=$databackupdir/email.txt

#定义邮件地址

email=www@163.com

#定义备份日志文件

logfile=$databackupdir/mysqlbackup.log

#DATE=`date +%Y%m%d`

DATE=`date -I`

echo "" > $emailfile

echo $( date +"%Y-%m-%d %H:%M:%S" ) >> $emailfile

cd $databackupdir

#定义备份文件名

dumpfile=mysql_$DATE.sql

gzdumpfile=mysql_$DATE.sql.tar.gz

#使用mysqldump备份数据库,--flush-logs 产生一个新日志

$mysqlDir/bin/mysqldump -u$user -p$userpwd --flush-logs -x $dbname > $dumpfile

#压缩备份文件

if [ "$?" == 0 ];then

#把备份出来的文件进行压缩,压缩的结果保存在邮件内容中

tar zcvf $gzdumpfile $dumpfile >> $emailfile 2>&1

echo "BackupFileName: $gzdumpfile" >> $emailfile

echo "DataBase Backup Success!" >> $emailfile

#删除压缩前的sql文件

rm -rf $dumpfile

else

echo "Database Backup Fail!" >> $emailfile

fi

#写日志文件

echo "-------------------------------------------------" >> $logfile

cat $emailfile >> $logfile

#发送邮件通知

cat $emailfile| mail -s "Mysql Backup" $email

以上脚本执行后会在备份目录中产生一个tar.gz的文件,此文件为全库备份文件,备份成功后给指定的邮箱地址发送邮件,收件内容为截图内容为备份成功!

接下来是binlog日志的备份脚本

vim binlogbak.sh

#!/bin/bash

#定义数据库目录和数据目录

mysqldir=/usr/local/mysql

datadir=$mysqldir/binlog

#定义用于备份数据库的用户名和密码

user=root

userpwd=123456

#定义备份目录

databackupdir=/mysqlbak

logbackupdir=$databackupdir/logs

#定义邮件正文文件

emailfile=$databackupdir/email.txt

#定义邮件地址

email=www@163.com

#定义备份日志文件

logfile=$databackupdir/mysqlbackup.log

#DATE=`date +%Y%m%d`

echo "" > $emailfile

echo $( date +"%Y-%m-%d %H:%M:%S" ) >> $emailfile

#刷新日志,使数据库使用新的二进制日志文件

/usr/bin/mysqladmin -u$user -p$userpwd flush-logs

cd $datadir

#得到二进制日志列表

filelist=`cat mysql_binlog.index`

icounter=0

for file in $filelist

do

#需要注意的是符号和两个操作项之间的空格毕不可少,下面也是一样

icounter=`expr $icounter + 1`

done

nextnum=0

ifile=0

for file in $filelist

do

binlogname=$file

nextnum=`expr $nextnum + 1`

#跳过最后一个二进制日志 (数据库当前使用的二进制日志文件)

if [ $nextnum -eq $icounter ];then

echo "Skip lastest!" > /dev/null

else

dest=$logbackupdir/$binlogname

#跳过已经备份的二进制日志文件

if [ -e $dest ];then

echo "Skip exist $binlogname!" > /dev/null

else

#备份日志文件到备份目录

cp $binlogname $logbackupdir

if [ "$?" == 0 ];then

ifile=`expr $ifile + 1`

echo "$binlogname Backup Success!" >> $emailfile

fi

fi

fi

done

if [ $ifile -eq 0 ];then

echo "No Binlog Backup!" >> $emailfile

else

echo "Backup $ifile File(s)." >> $emailfile

echo "Backup MySQL Binlog OK!" >> $emailfile

fi

#写日志文件

echo "-------------------------------------------------" >> $logfile

cat $emailfile >> $logfile

#发送邮件通知

cat $emailfile| mail -s "Mysql Backup" $email

以上脚本执行后会在备份目录中产生多个没备份过的binlog日志,文件每日是前一天的增量备份文件,备份成功后给指定的邮箱地址发送邮件,收件内容为截图内容为备份成功!

编写计划任务自动执行,每周1,3,24点全库备份,每天夜里1点日志备份

crontab -e

0 00 * * 1,3 /mysqlbak.sh

0 1 * * * /binlogbak.sh

mysql日志备份的脚本_脚本备份MySQL数据库和binlog日志相关推荐

  1. Mysql数据库的简单备份与还原_简单的MySQL备份与还原方法分享

    为了安全起见,需要经常对数据库作备份,或者还原.对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出.导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyA ...

  2. mysql数据备份合理计划_计划备份mysql数据库

    1:mysql是我们使用最多的数据库,如果在日常中正确的对mysql数据进行备份,下面我们就来做这事,通过脚本来实现 ######################################### ...

  3. mysql 备份 第三方工具_目前主流的数据库备份第三方工具都有哪些比较好用

    只有InnoDB表,仅上备份锁 请点击输入图片描述 若有非InnoDB表,上全局锁 请点击输入图片描述 特性2:Redo Log Archiving MEB能做到在线热备,备份时不影响数据库读写,这是 ...

  4. mysql如何查看事务日记_详解 Mysql 事务和Mysql 日志

    事务特性 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节. 2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破 ...

  5. php mysql log文件怎么打开_如何查看mysql的日志文件

    首先,介绍一下mysql日志的种类.一般来说,日志有五种,分别为: (推荐学习:mysql教程)错误日志:-log-err (记录启动,运行,停止mysql时出现的信息) 二进制日志:-log-bin ...

  6. mysql用help查看帮助_深入理解mysql帮助命令(help)

    在安装.管理和使用mysql过程中,你是不是需要记忆很多的mysql命令.而且对于新手来说,很不多的命令不知道该如何应用,对于老手来说很多命令时间长了忘记具体的用法. 其实mysql的帮助信息,已经给 ...

  7. mysql命令参数详解_详解Mysql命令大全(推荐)

    主要介绍常用的MySQL命令,包括连接数据库,修改密码,管理用户,操作数据库,操作数据表,数据库备份等,每个命令都配有实例说明,让大家更容易理解. 1.连接Mysql 格式: mysql -h主机地址 ...

  8. mysql不停止重启服务器_不停止MySQL服务增加从库的两种方式

    现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...

  9. mysql主键自增长_全面的MySQL优化面试解析

    本文概要 文章内图片有损,需要高清可以在公众号内回复"大图" 概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理 ...

最新文章

  1. DeepMind首席科学家:比起机器智能,我更担心人类智能造成的灾难
  2. java项目怎样提高性能_从代码的角度谈如何优化JAVA代码以提高性能【初、中级程序员必看】...
  3. python解决约瑟夫问题_Python实现约瑟夫环问题的方法
  4. pragma指令简介
  5. CSS3的box-sizing:向外撑content-box向内挤border-box 外撑的padding算自己的盒子会变大 内挤的padding会缩小自己
  6. linkedhashmap 顺序_LinkedHashMap 源码详细分析(JDK1.8)
  7. DataGrid的ViewState
  8. JDBC学习(二、操作JDBC步骤,及相关API)
  9. matlab 谐波生成模块,simulink 谐波分析_matlab谐波分析_simulink中sign模块
  10. Unity外部资源无法拖入Unity
  11. 3dB等波纹低通滤波器设计(HFSS)
  12. 在表格中显示形位公差符号
  13. 机器学习算法一之基于K均值聚类算法实现数据聚类及二维图像像素分割
  14. 自定义jsx解析工厂函数
  15. elementUI之表格排序失效,表格宽度可拖拽变宽变窄
  16. “净网”行动重拳打击网络淫秽色情信息多家涉黄网站被取缔
  17. 普宁市中学高考成绩查询2021,2021年中山高考状元多少分是谁,中山高考状元名单资料...
  18. 硬件接口之网口介绍与布线(包括以太网协议)
  19. 中兴校招c语言在线笔试题,中兴2017校招软件在线笔试题
  20. c#中的访问修饰符Protected,privet ,public, internal,和internal protected

热门文章

  1. 零基础带你学习MySQL—Select语句以及注意事项(十)
  2. python安装不了怎么办_python安装运行时提示不是内部或外部命令怎么办
  3. 如何区分常见 USB 接口类型
  4. 5G网络出来以后,家里面的宽带还有存在的必要吗?
  5. 假如你有20万用来创业,你最想进入什么行业?
  6. 商业认知,你每天出门看天气吗?
  7. 成年人的世界,嘴上喊的都是主义,心里装的都是生意
  8. 什么样的领导会给公司造成损失呢?
  9. 巴菲特投资50年的5个心得
  10. 服务超时 — 基本原理