生产环境中,有时需要做MySQL的备份和恢复工作。因MySQL是在运行过程中的,做全量备份需要时间,全量备份完成后又有数据变动,此时需要增量备份辅助。如果想恢复数据到一个空库(例如数据迁移或者上云等更换MySQL数据库的场景),基于全量备份+增量备份的数据进行恢复,可以更接近于原本的数据。

  工作中曾经使用过的2种方法:

1.基于dump全量备份.sql+binlog生成增量备份sql,进行全量+增量的备份/恢复操作。

  • 备份过程:

  (1)dump命令,生成全量备份sql文件。

  (2)查看全量备份文件.sql,注意这个信息:

  (3)全量备份之后,MySQL中又有增删改操作。例如:再create一个表,并插入数据。

  (4)增量备份:执行flush logs,会生成最新的增量binlog。

  • 恢复过程:

  (1)dump出来的全量备份文件.sql 和 flush出来的增量binlog 都scp拷贝到要恢复的机器上。

  (2)恢复dump全量备份:mysql -uroot -p密码 数据库名 < 全量备份.sql

  (3)基于binlog生成增量备份sql:mysqlbinlog --start-position=337 --database=数据库名 mysql-bin.000002 > 增量备份.sql

  (4)执行恢复该增量备份sql:mysql -uroot -p密码 数据库名 < 增量备份.sql

2.基于Percona公司的xtrabackup工具,进行全量+增量的备份/恢复操作。

   (1)全量备份

    innobackupex --user=用户名 --password=密码 全量备份文件存放目录。

    同样,期间有些增量操作,建表,增删数据等

  (2)增量备份

    innobackupex --user=用户名 --password=密码 --incremental 增量备份文件存放目录 --incremental-basedir=依赖的上一次全量备份或增量备份

  (3)恢复日志的准备

  • 增量恢复日志的准备

    innobackupex --apply-log --redo-only 全量备份文件存放目录

    innobackupex --apply-log --redo-only 全量备份文件存放目录 --incremental-dir=增量备份文件存放目录

  • 全量恢复日志的准备

    innobackupex --apply-log 全量备份文件存放目录

  (4)恢复数据

    关闭要恢复的数据库

    /etc/init.d/mysqld stop

    mv data data_old

    mv undo undo_old

    mv undo_log undo_log_old

    mkdir -p data undo_log

    innobackupex --move-back 全量备份文件存放目录

    chown mysql:mysql -R data/

    chown mysql:mysql -R undo_log/

    /etc/init.d/mysqld start

【MySQL】全量+增量的备份/恢复的更多相关文章

  1. MySQL自动化(全量+增量)备份脚本

    文章转自:http://www.it-hack.cn/forum.php?mod=viewthread&tid=220&extra=page%3D1 一.MySQL的日常备份方案: 全 ...

  2. mysql全量+增量备份脚本

    cat xtrabackup_mysql.sh #!/bin/bash #title :xtrabackup_mysql.sh #description :backup mysql by using ...

  3. Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

    Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳 ...

  4. Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录

    在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 线上数据库备份场景:每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份 ...

  5. mysql全量和增量备份详解(带脚本)

    在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是M ...

  6. liunx系统mysql全量备份和增量备份

    前提 ​ 在互联网项目中最终还是读数据进行操作,都离不开曾删改查,那么数据是重中之重,数据库的备份就显得格外重要. ​ 但是每次都直接导出整个数据库的sql文件,显然是不现实的.对数据库的性能影响比较 ...

  7. mysql全量备份与增量备份

    mysql全量备份与增量备份   1.全量备份 全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p456 -S /data/3306/mysql.sock ...

  8. Elasticsearch 索引的全量/增量更新

    Elasticsearch 索引的全量/增量更新 当你的es 索引数据从mysql 全量导入之后,如何根据其他客户端改变索引数据源带来的变动来更新 es 索引数据呢. 首先用 Python 全量生成 ...

  9. Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录

    在日常的linux运维工作中,大数据量备份与还原,始终是个难点.关于mysql的备份和恢复,比较传统的是用mysqldump工具,今天这里推荐另一个备份工具innobackupex.innobacku ...

随机推荐

  1. Winform拖拽改变无边框窗体大小

    大家在进行Winform开发过程中,很容易就可以完成一个窗口的布局工作,但现在的软件界面美化效果一个比一个好,很多软件都是无边框的,于是乎,你是不是也感叹:winform的带边框的窗体如此丑陋,我一定 ...

  2. a completely rewritten architecture of Hadoop cluster

    https://www.ibm.com/developerworks/library/bd-yarn-intro/

  3. css zoom 属性

    oom这个属性是ie专有属性,除了设置或者检索对象的缩放比例之外,它还有可以触发ie的haslayout属性,清除浮动,清除margin重叠等作用. 不过值得注意的一点就是火狐浏览器不支持zoom属性 ...

  4. 如何克隆UBUNTU14.04LTS

    先对目标盘sdb做好处理,分区,格式化,挂载等操作sudo fdisk /dev/sdb1fdisk常用命令如下,m是帮助,n创建新分区,d删除分区,w保存退出.分好区后,对sdb1进行格式化和挂载: ...

  5. [数据挖掘课程笔记]Naïve Bayesian Classifier

    朴素贝叶斯模型 1) X:一条未被标记的数据 2) H:一个假设,如H=X属于Ci类 根据贝叶斯公式 把X表示为(x1,x2,....xn) x1,x2,....xn表示X在各个特征上的值. 假设有c ...

  6. Xcode使用的一些小技巧,值得一看。

    有时我们需要对一个已有项目进行重构,改进设计,提高代码质量.以下几个Xcode 4中的功能,会使重构的工作变得轻松很多. 1.打开项目我的项目是Xcode3.x中编辑的,在用Xcode 4 打开时出现 ...

  7. leetcode leetcode 783. Minimum Distance Between BST Nodes

    Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the ...

  8. 手把手教你打造ImageView支持手势放大缩小

    写在前面 最近有了新的任务,学习的时间比以前少了不少,Java回炉的文估计是得缓缓了,不过每周一篇尽量保质保量.最近感觉我文写的有点不好,因为我写东西除非必要,不然概念性的东西我基本上都是一笔带过…… ...

  9. linux应用之php开发环境lamp搭建(centos)

    搭建linux+apache+mysql+php环境   1.安装apache: yum install httpd httpd-devel  启动apache: /etc/init.d/httpd ...

  10. get_extension_funcs 返回某个模块下的所有函数

    array get_extension_funcs ( string $module_name )             (参数必选) 该函数根据 module_name 返回模块内定义的所有函数的 ...