mysqldump备份及binlog日志恢复

详情: http://blog.51cto.com/hongge/1862214

1.首先确保已开启binlog日志功能。在my.cnf中包含下面的配置以启用二进制日志:

[mysqld]

log-bin=mysql-bin

2.创建两份脚本文件,一份为增量备份的脚本文件,另一份为全量备份的脚本文件。

//脚本文件放这里

//全量备份脚本start

#!/bin/bash

# Program

# use mysqldump to Fully backup mysql data per week!# History

# Path

BakDir=/home/mysql/backup

LogFile=/home/mysql/backup/bak.log

Date=`date +%Y%m%d`

Begin=`date +"%Y年%m月%d日 %H:%M:%S"`

cd $BakDir

DumpFile=$Date.sql

GZDumpFile=$Date.sql.tgz/usr/bin/mysqldump -uroot -proot --quick --events --all-databases --flush-logs --delete-master-logs --single-transaction >$DumpFile

#↑这边放置你的 mysqldump所在地址并加上你连接数据库的账号密码/bin/tar -zvcf $GZDumpFile $DumpFile/bin/rm$DumpFile

Last=`date +"%Y年%m月%d日 %H:%M:%S"`echo 开始:$Begin 结束:$Last $GZDumpFile succ >>$LogFile

cd $BakDir/daily/bin/rm -f *

//全量备份脚本end

//增量备份脚本start

#!/bin/bash

# Program

# usecp to backup mysql data everyday!# History

# Path

#//增量备份时复制mysql-bin.00000*的目标目录,提前手动创建这个目录

BakDir=/home/mysql/backup/daily #备份地址

BinDir=/var/lib/mysql

LogFile=/home/mysql/backup/bak.log #日志地址

BinFile=/var/lib/mysql/mysql-bin.index 获取mysql里的 mysql-bin.index/usr/bin/mysqladmin -uroot -proot flush-logs

#↑获取mysql里的mysqladmin,并填写数据库账户名和密码。(mysqladmin跟全量备份的mysqldump位置一样)

#这个是用于产生新的mysql-bin.00000*文件

Counter=`wc -l $BinFile |awk '{print $1}'`

NextNum=0#这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的for file in `cat$BinFile`dobase=`basename $file`

#basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./NextNum=`expr $NextNum + 1`if [ $NextNum -eq $Counter ]then

echo $base skip! >>$LogFileelsedest=$BakDir/$baseif(test -e $dest)

#test-e用于检测目标文件是否存在,存在就写exist!到$LogFile去then

echo $base exist! >>$LogFileelse

cp $BinDir/$base $BakDirecho $base copying >>$LogFilefi

fi

done

echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next Bakup succ! >> $LogFile

//增量备份脚本end

3.将脚本保存到任意位置,比如root文件中

4.设置crontab任务,执行备份脚本。先执行的是增量备份脚本,然后执行的是全量备份脚本:

[root@test-huanqiu ~]# crontab -e

#每个星期日凌晨3:00执行完全备份脚本

0 3 * * 0 /bin/bash -x /root/Mysql-FullyBak.sh >/dev/null 2>&1

#周一到周六凌晨3:00做增量备份

0 3 * * 1-6 /bin/bash -x /root/Mysql-DailyBak.sh >/dev/null 2>&1

#↑脚本路径必须填对

5.测试增量备份与全量备份脚本

先执行增量备份脚本

[root@test-huanqiu backup]# sh /root/Mysql-DailyBak.sh

[root@test-huanqiu backup]# ll

total 8

-rw-r--r--. 1 root root 121 Nov 29 11:29 bak.log

drwxr-xr-x. 2 root root 4096 Nov 29 11:29 daily

[root@test-huanqiu backup]# ll daily/

total 8

-rw-r-----. 1 root root 152 Nov 29 11:29 mysql-binlog.000030

-rw-r-----. 1 root root 152 Nov 29 11:29 mysql-binlog.000031

[root@test-huanqiu backup]# cat bak.log

mysql-binlog.000030 copying

mysql-binlog.000031 copying

mysql-binlog.000032 skip!

2016年11月29日 11:29:32 Bakup succ!

然后执行全量备份脚本

[root@test-huanqiu backup]# sh /root/Mysql-FullyBak.sh

20161129.sql

[root@test-huanqiu backup]# ll

total 152

-rw-r--r--. 1 root root 145742 Nov 29 11:30 20161129.sql.tgz

-rw-r--r--. 1 root root 211 Nov 29 11:30 bak.log

drwxr-xr-x. 2 root root 4096 Nov 29 11:30 daily

[root@test-huanqiu backup]# ll daily/

total 0

[root@test-huanqiu backup]# cat bak.log

mysql-binlog.000030 copying

mysql-binlog.000031 copying

mysql-binlog.000032 skip!

2016年11月29日 11:29:32 Bakup succ!

开始:2016年11月29日 11:30:38 结束:2016年11月29日 11:30:38 20161129.sql.tgz succ

在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据。

转自: https://blog.csdn.net/u011746446/article/details/79468977

mysql全量备份与增量备份_Mysql增量备份与全量备份相关推荐

  1. mysql备份去掉一个库_MySQL备份与恢复(3)mysqldump备份多个库

    一.mysqldump的工作原理. 利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库以逻辑的sql语句的形式直接输出或生成备份的文件的过程 利用这个备份文件恢复的时候的原理?就 ...

  2. MySQL8增量备份1008无标题_mysql增量备份

    一.环境描述(使用rsync进行mysql的增量备份) 192.168.0.2为备份服务器 192.168.0.3为需要经常备份的mysql数据库 二.主要配置 1.备份服务器配置 useradd m ...

  3. mysql备份耗时太长_Mysql数据不算大,备份却非常慢

    环境 硬件:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram 软件:2.6.9-55.ELsmp x86_64, mysql 5.1.x 现象 2个库,其中1个业务库下 ...

  4. MySQL自动备份到本地数据库_MYSQL数据库自动本地/异地双备份/MYSQL增量备份

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

  5. mysql 每天增量备份_mysql增量备份

    小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整 备份,每天一次增量备份类似这样的备份策略.增量备份的原理就是 ...

  6. MySQL 数据库备份(二)(增量备份与恢复)

    文章目录 引言 1.增量备份的特点 2.二进制日志对备份的意义 2.1增量备份示例 二.MySQL增量恢复 1.增量恢复的场景 2. 丢失完全备份之后更改的数据的恢复 3. 完全备份之后丢失所有数据 ...

  7. MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)

    xtrabackup Percona 官网:www.percona.com percona-server InnoDB --> XtraDB Xtrabackup percona提供的mysql ...

  8. mysql备份要注意哪些_MySQL数据库备份过程的注意事项

    今天看了看数据备份相关的东西,总结了几个MySQL数据备份的注意事项,简单分享一下吧. 对于MySQL备份,每个DBA的理解可能都不一样,备份可以分为下面几个维度: 文件种类划分: 1.物理备份,以x ...

  9. mysql如何备份一个表单_Mysql亿级数据大表单表备份

    上一篇Mysql已有亿级数据大表按时间分区,介绍了亿级数据大表如何按时间分区,也留下了一个问题:备份亿级数据大表要耗时多久.本篇将就如何备份亿级数据大表展开讨论. 注意:我这里所说的备份指的是数据从一 ...

  10. mysql备份到带库_MySQL数据备份

    MySQL数据备份 一. MySQL数据损坏类型 1.1.物理损坏 磁盘损坏: 硬件,磁道坏,dd,格式化 文件损坏: 数据文件损坏,redo损坏 1.2.逻辑损坏 drop delete trunc ...

最新文章

  1. 如何设计电桥传感器驱动电路?
  2. tableau必知必会之如何将 Tableau Server 从 Windows 迁移到 Linux 的方法
  3. 多角度对比数据中心常见的三种走线方式
  4. spring集成redis(ehcache缓存改成redis)
  5. 计算机行业就业前景局限性,市场缺口很大的3个大学专业,一毕业就很吃香,就业前景很光明!...
  6. layuiAdmin打开新窗口、新标签页
  7. 莫比乌斯反演/容斥 +2020ICPC 江西省大学生程序设计竞赛 A Simple Math Problem
  8. P5341-[TJOI2019]甲苯先生和大中锋的字符串【SAM】
  9. oracle迁移mysql_从自建Oracle迁移至RDS MySQL
  10. Python手写神经网络实现3层感知机
  11. 软件行业大牛告诉你何谓成功?
  12. firfox 和 chrome 移动端Web开发页面调试
  13. 什么是 XDoclet?
  14. mysql事件类型_MySQL binlog中的事件类型
  15. shell 参数,shell与Java 交互参数
  16. 企业思想家:专家详解元宇宙逻辑和产业机会 (5000余字)
  17. vue聊天功能模块(十二)消息转发
  18. 阿里云新购服务器磁盘disk挂载完整教程
  19. 个人注册PowerBI账号申请
  20. 微信扫描登录(生成二维码)

热门文章

  1. 利用Python绘制 3D 体素色温图
  2. 2021年人工神经网络第四次作业-第一题:LeNet对于水果与动物进行分类
  3. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则
  4. 允许自行设计赛道之后,参赛同学都想到了什么呢?
  5. ATMEGA8 DIP-28面包板实验
  6. java 取不同的随机数_Java实现获取指定个数的不同随机数
  7. linux nfs 配置_NFS服务器
  8. rbac 一个用户对应多个账号_电商后台系统:管理后台之账号管理(一)
  9. centos lamp 连接mysql_centOS下lamp安装
  10. @override代表什么意思_混凝土中C20、HZS180都代表什么意思?