mysqldunp增量恢复过程及详解

Mysql增量恢复必备条件

1.开启mysql log-bin日志功能

MySQL数据库开启了log-bin 参数记录binlog日志功能下:

小结:增量恢复的条件:

存在一份全备加上全备之后的时刻到出问题时刻的所有增量binlog文件备份。

创建模拟环境

[[email protected] 3306]# grep log-bin /data/3306/my.cnf

log-bin = /data/3306/mysql-bin

[[email protected] 3306]#

mkdir -p /server/backup/

备份全量数据数据

[[email protected] backup]# mysqldump -S /data/3306/mysql.sock -B -F -R -x --master-data=2

test |gzip >/server/backup/test_$(date +%F).sql.gz

(X与x区别:X为导出xml格式文件  x锁表,笔者在这坑了很久,告请大家值得注意)

[[email protected] backup]# ls

test_2017-05-23.sql.gz

[[email protected] backup]#

插入新增数据数据

mysql> select *  from cc;

+----+------+

| id | name |

+----+------+

|  1 | cc1  |

|  2 | cc2  |

+----+------+

2 rows in set (0.00 sec)

mysql> insert into cc values(3,‘xuexue‘);

Query OK, 1 row affected (0.00 sec)

mysql> insert into cc values(4,‘chenpeng‘);

Query OK, 1 row affected (0.00 sec)

mysql> insert into cc values(5,‘zhangya‘);

Query OK, 1 row affected (0.00 sec)

mysql> select *  from cc;

+----+----------+

| id | name     |

+----+----------+

|  1 | cc1      |

|  2 | cc2      |

|  3 | xuexue   |

|  4 | chenpeng |

|  5 | zhangya  |

+----+----------+

5 rows in set (0.00 sec)

mysql> quit

模拟更改时间删除数据

[[email protected] backup]# date -s ‘2017/5/23 10:00:00‘

Tue May 23 10:00:00 CST 2017

[[email protected] backup]# mysql -S /data/3306/mysql.sock

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 23

Server version: 5.6.34-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> drop database test;

Query OK, 1 row affected (0.01 sec)

mysql> show  databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| cc2                |

| mysql              |

| performance_schema |

+--------------------+

4 rows in set (0.00 sec)

mysql> quit

发现错误查看binlog文件 如果不知binlog文件是哪个 可采取以下措施

[[email protected] backup]# gzip -d test_2017-05-23.sql.gz

[[email protected] backup]# grep CHANGE test_2017-05-23.sql.gz

[[email protected] backup]# grep CHANGE test_2017-05-23.sql

-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000027‘, MASTER_LOG_POS=120;

[[email protected] backup]#

故障之后一定要将binlog拿走 要不会写入增量备份的sql

增量备份条件需要全备与增备 条件具备才可以玩 将增量备份拷入backup目录下:

[[email protected] backup]# cp /data/3306/mysql-bin.000027 .

[[email protected] backup]# ls

mysql-bin.000027  test_2017-05-23.sql

由于数据库没了  新生成的binlog也不会写入  可以对新生成的binlog不进行关注

生成binlog备份 注意binlog顺序

[[email protected] backup]# mysqlbinlog -d test mysql-bin.000027 >27bin.sql (如有很多可以列在后面,太多的话可以采用匹配的方式)

[[email protected] backup]# ls

27bin.sql         test_2017-05-23.sql

mysql-bin.000027  test_2017-05-24.sql.gz

[[email protected] backup]#

[[email protected] backup]# vim 27bin.sql

[[email protected] backup]#

删除里面drop语句 如果不删除  又恢复到删除前状态

恢复过程

先恢复全备

mysql -uroot -poldboy123 -S /data/3306/mysql.sock <test_2017-05-23.sql

mysql> select *  from cc;

+----+------+

| id | name |

+----+------+

|  1 | cc1  |

|  2 | cc2  |

+----+------+

2 rows in set (0.00 sec)

再恢复增倍

mysql -uroot -poldboy123 -S /data/3306/mysql.sock <mysql-bin.000027

mysql> select *  from cc;

+----+----------+

| id | name     |

+----+----------+

|  1 | cc1      |

|  2 | cc2      |

|  3 | xuexue   |

|  4 | chenpeng |

|  5 | zhangya  |

+----+----------+

5 rows in set (0.00 sec)

至此增量备份完成

Mysqldump重要参数!

-B 导出建表语句 备份多个库

-A 备份所有的数据库

--master-data={1|2} 添加一条语句,change master

刷新binlog

-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000010‘, MASTER_LOG_POS=1137;

single-transaction 在备份时间 会增加一个新的进程  将备份期间写入库的内容放到新日志里,备份结束后再写入

innodb的引擎支持

时间: 2024-10-25 02:56:21

mysqldunp增量恢复过程及详解的相关文章

【Big Data - Hadoop - MapReduce】通过腾讯shuffle部署对shuffle过程进行详解

摘要: 通过腾讯shuffle部署对shuffle过程进行详解 摘要:腾讯分布式数据仓库基于开源软件Hadoop和Hive进行构建,TDW计算引擎包括两部分:MapReduce和Spark,两者内部都包含了一个重要的过程—Shuffle.本文对Shuffle过程进行解析,并对两个计算引擎的Shuffle过程进行比较. 腾讯分布式数据仓库(Tencent distributed Data Warehouse, 简称TDW)基于开源软件Hadoop和Hive进行构建,并且根据公司数据量大.计算复杂等

Tomcat启动过程原理详解 -- 非常的报错:涉及了2个web.xml等文件的加载流程

Tomcat启动过程原理详解 发表于: Tomcat, Web Server, 旧文存档 | 作者: 谋万世全局者 标签: Tomcat,原理,启动过程,详解 基于Java的Web 应用程序是 servlet.JSP 页面.静态页面.类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器(诸如tomcat).Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的.Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源

springmvc 配置过程及详解

加入jar包 在web.xml中 添加spring监听器 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 添加spring容器(父容器)配置文件: <context-param> <param-name>contextConfigLocation</param

CentOS6启动过程超详解分析

CentOS 6 开机流程--linux由kernel和rootfs组成.kernel负责进程管理.内存管理.网络管理.驱动程序.文件系统.安全等;rootfs由程序和glibc组成,完善操作系统的功能.同时linux内核的特点是模块化,通过对模块装载卸载可以对内核功能自定义.linux内核文件:/boot/vmlinuz-2.6.32-696.el6.x86_64 整体的流程 BIOS/开机自检 MBR引导(Boot Loader) 启动内核 启动第一个进程init 一.BIOS/开机自检 1

Ubuntu 16.04.3 Server 版安装过程图文详解

Ubuntu 16.04.3 Server 版安装过程图文详解 首先,我们会进入系统安装的第一个界面,开始系统的安装操作.每一步的操作,左下角都会提示操作方式! 1.选择系统语言-English2.选择操作-Install Ubuntu Server3.选择安装过程和系统的默认语言-English4.选择区域-other5.选择亚洲-Asia6.选择国家-China7.选择字符集编码-United States8.是否检测键盘布局,选择No9.选择键盘类型-English (US)10.选择键盘

Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)【转】

转自:http://blog.csdn.net/gatieme/article/details/51872659 版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme 目录(?)[-] 前景回顾 1 Linux的调度器组成 2 调度工作 进程上下文 1 进程上下文的概念 2 上下文切换 context_switch进程上下文切换 1 context_switch完全注释 2 prepare_arch_switch切换前的准备工作

【转】【MySQL】mysql 通过bin-log恢复数据方法详解

mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这个指令来完成的 /mysql/bin/mysqlbinlog --database=fox --start-date="2013-01-22 5:00:00" --stop-date="2013-01-22 9:00:00" /mysql/data/mysql-bin.

MySQL增量备份与还原详解

增量备份与恢复的特点 增量备份的优点是没有重复数据,备份量不大,时间短.但缺点也很明显,需要建立在上次完全备份及完全备份之后所有的增量才能恢复. MySQL没有提供直接的增量备份方法,但是可以通过mysql二进制日志间接实现增量备份.二进制日志对备份的意义如下: (1)二进制日志保存了所有更新或者可能更新数据库的操作. (2)二进制日志在启动MySQL服务器后开始记录,并在文件达到所设大小或者收到flush logs 命令后重新创建新的日志文件. (3)只需定时执行flush logs方法重新创

Tomcat启动过程原理详解

基于Java的Web 应用程序是 servlet.JSP 页面.静态页面.类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器.Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的.Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源,比如图像.HTML 页面等.构成:Web应用由Web组件(一组Java类库).html文件,静态资源文件(如图像).帮助类和库组成. 1 – Tomcat Server的组成部分