生产环境中,有时需要做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. Qt JSON解析生成笔记

    对于这样一段json { "name": "布衣食", "gender": "Male", "age" ...

  2. mac 中安装redis 以及 安装php-redis扩展过程详细记录

    1. 通过homebrew 安装 redis sodu brew install redis 2. 安装后执行开启redis,采用默认配置, 默认配置只有本地(127.0.0.1)可以访问.需要远程访 ...

  3. STM32 ~ 查看系统时钟

    调用库函数RCC_GetClocksFreq,该函数可以返回片上的各种时钟的频率 函数原形 void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks) ...

  4. ThinkPHP RBAC权限管理机制

    RBAC是ThinkPHP很好用的后台权限管理的,话不多说,实现方法如下,也方便以后自己查询使用: 1.新建4个数据库表 self_role权限表 CREATE TABLE `self_role` ( ...

  5. Codeforces696 Round #362 (Div. 1)(vp) A~D题解

    很久没有打比赛了,内部模拟赛天天垫底,第一次vp之旅又是和**一样,这样下去GDOI之后直接退役算了 整场都在忘开LL A. Lorenzo Von Matterhorn 这个题一看我就想直接虚树+树 ...

  6. Codeforces Beta Round #7 D. Palindrome Degree —— 字符串哈希

    题目链接:http://codeforces.com/contest/7/problem/D D. Palindrome Degree time limit per test 1 second mem ...

  7. 基于BASYS2的VHDL程序——数字钟(改进版)

    扩展到时分秒.加了入调时电路,但不知道为什么有两个按键不好使.而且不知道以何种方式假如按键消抖电路,因为加入后会多个时钟控制一个信号,物理不可实现.调试电路待解决.还有,四个数目管中间的那两个圆点怎么 ...

  8. 深入理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别

    看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...

  9. hdu 1040 As Easy As A+B(排序)

    题意:裸排序 思路:排序 #include<iostream> #include<stdio.h> #include<algorithm> using namesp ...

  10. numpy.argmax 用在求解混淆矩阵用

    numpy.argmax numpy.argmax(a, axis=None, out=None)[source] Returns the indices of the maximum values ...