通过防火墙禁止web等应用向主库写数据或者锁表,让主库暂时停止更新,然后进行恢复

模拟整个场景

1、登录数据库

[root@promote 3306]# mysql -uroot -S /data/3306/mysql.sock

创建一个库,并创建一个表,里面适当的加入一些初始数据
insert into nima(id,name) values(4,'hahh');

2、将我本机的时间设置为早上0点 

[root@promote ~]# date -s '2017/7/27'
2017年 07月 27日 星期四 00:00:00 CST

3、完全备份

[root@promote 3306]# mysqldump -uroot -S /data/3306/mysql.sock -F -B --master-data=2 test >/opt/test.sql

[root@promote 3306]# ll
总用量 36
drwxr-xr-x. 5 mysql mysql 4096 7月 20 15:15 data
-rw-r--r--. 1 root root 1897 7月 18 20:11 my.cnf
-rwx------. 1 root root 1299 7月 18 20:29 mysql
-rw-rw----. 1 mysql mysql 1047 7月 27 00:02 mysql-bin.000002
-------------------------------------------------------------------------------备份点 //最好提前看一下从哪里开始备份的,就是查看新的bin-log
-rw-rw----. 1 mysql mysql 107 7月 27 00:02 mysql-bin.000003 --------------新内容
-rw-rw----. 1 mysql mysql 56 7月 27 00:02 mysql-bin.index
-rw-rw----. 1 mysql mysql 6 7月 20 15:15 mysqld.pid
-rw-r-----. 1 mysql root 4184 7月 20 15:15 mysql_oldboy3306.err
srwxrwxrwx. 1 mysql mysql 0 7月 20 15:15 mysql.sock

4、在创建的表中加入新的数据

没加入数据前
mysql> select * from nima;
+------+--------+
| id | name |
+------+--------+
| 1 | 尼玛 |
| NULL | hahh |
| 3 | hahh |
| 4 | hahh |
+------+--------+
4 rows in set (0.00 sec) mysql> insert into nima(id,name) values(100,'hahh');
Query OK, 1 row affected (0.00 sec) mysql> insert into nima(id,name) values(101,'hahh'); mysql> select * from nima;
+------+--------+
| id | name |
+------+--------+
| 1 | 尼玛 |
| NULL | hahh |
| 3 | hahh |
| 4 | hahh |
| 100 | hahh |
| 101 | hahh |
+------+--------+
6 rows in set (0.00 sec)

5、删除创建的数据库

mysql> drop database test;
Query OK, 1 row affected (0.07 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

6、此时就出现了问题,test库没有了,然后去查看bin-log  

[root@promote 3306]# mysqlbinlog mysql-bin.000003

# at 511
#170727 0:08:56 server id 1 end_log_pos 592 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1501085336/*!*/;
drop database test <==发现了是此条语句的问题
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

7、此时刷新一下bin-log

 

[root@promote 3306]# mysqladmin -uroot -S /data/3306/mysql.sock flush-logs
[root@promote 3306]# ll
总用量 40
drwxr-xr-x. 4 mysql mysql 4096 7月 27 00:08 data
-rw-r--r--. 1 root root 1897 7月 18 20:11 my.cnf
-rwx------. 1 root root 1299 7月 18 20:29 mysql
-rw-rw----. 1 mysql mysql 1047 7月 27 00:02 mysql-bin.000002
-rw-rw----. 1 mysql mysql 635 7月 27 00:18 mysql-bin.000003
---------------------------------------------------------------------------需要恢复03的内容,然后04就是新内容
-rw-rw----. 1 mysql mysql 107 7月 27 00:18 mysql-bin.000004
-rw-rw----. 1 mysql mysql 84 7月 27 00:18 mysql-bin.index
-rw-rw----. 1 mysql mysql 6 7月 20 15:15 mysqld.pid
-rw-r-----. 1 mysql root 4184 7月 20 15:15 mysql_oldboy3306.err
srwxrwxrwx. 1 mysql mysql 0 7月 20 15:15 mysql.sock

8、开始恢复手续

  

[root@promote 3306]# cp mysql-bin.000003 /tmp
[root@promote 3306]# cd /tmp
[root@promote tmp]# ll
总用量 4
-rw-r-----. 1 root root 635 7月 27 00:20 mysql-bin.000003
drwx------. 2 root root 24 6月 22 13:45 ssh-sq615X9ctBqx
drwx------. 3 root root 16 6月 22 13:44 systemd-private-d13e6e6b8a2d4dc6a5a816c2cfd8a0be-colord.service-FFHLPi
drwx------. 3 root root 16 6月 22 13:44 systemd-private-d13e6e6b8a2d4dc6a5a816c2cfd8a0be-cups.service-jm0Csy
drwx------. 3 root root 16 6月 22 13:44 systemd-private-d13e6e6b8a2d4dc6a5a816c2cfd8a0be-rtkit-daemon.service-90fMAb
drwx------. 3 root root 16 6月 22 13:44 systemd-private-d13e6e6b8a2d4dc6a5a816c2cfd8a0be-vmtoolsd.service-HfIX2Y
[root@promote tmp]# mysqlbinlog -d test mysql-bin.000003 >bin.sql
[root@promote tmp]# vim bin.sql //删除有问题的语句 [root@promote tmp]# mysql -uroot -S /data/3306/mysql.sock < /opt/test.sql //恢复全备
[root@promote tmp]# mysql -uroot -S /data/3306/mysql.sock test <bin.sql //恢复增量 mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec) mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> select * from nima;
+------+--------+
| id | name |
+------+--------+
| 1 | 尼玛 |
| NULL | hahh |
| 3 | hahh |
| 4 | hahh |
| 100 | hahh |
| 101 | hahh |
+------+--------+
6 rows in set (0.00 sec) mysql>
恢复结束

  

 

mysql增量恢复的一个实例操作的更多相关文章

  1. 10、mysql增量恢复实战

    10.1.实验数据: mysql> select * from test; +----+------+------+ | id | name | age | +----+------+----- ...

  2. Mysql增量恢复

    mysqldump增量恢复何时需要使用备份的数据? 备份最牛逼的层次,就是永远都用不上备份.--老男孩 不管是逻辑备份还是物理备份,备份的数据什么时候需要用?===================== ...

  3. mysql触发器语法的一个实例

    我要实现的功能是:在更新一个表时.从三个表中查询记录并插入到另外一个表中.以下是我写触发器的过程: 第一次写的触发器例如以下: CREATE TRIGGER istmingxi  AFTER UPDA ...

  4. Mysql备份恢复方案解析

    1.全量备份和增量备份 1.1全量备份 就是对现有的数据进行全部备份,之前做的备份均可舍弃,以最新的全备为基点. a.全备所有数据库 Innodb引擎: [root@leader mysql]#mys ...

  5. MySQL中的连接、实例、会话、数据库、线程之间的关系

    MySQL中的实例.数据库关系简介 1.MySQL是单进程多线程(而Oracle等是多进程),也就是说MySQL实例在系 统上表现就是一个服务进程,即进程(通过多种方法可以创建多实例,再安装一个端口号 ...

  6. MYSQL增量备份与恢复

    vim /etc/my.cnf在[mysqld]下添加max_binlog_size = 1024000 //二进制日志最大1M 要进行mysql的增量备份,首先要开启二进制日志功能方法一:在/etc ...

  7. PHP 2:从一个实例介绍学习方法

    原文:PHP 2:从一个实例介绍学习方法 在前面我已经描述了PHP,Apache以及MySQL的安装与配置.下面将介绍一下我如何学习PHP.首先我自己已经有了一些编程经验,就拿我自己而言,已经熟悉C/ ...

  8. MySQL增量备份与恢复实例【转】

    小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的 ...

  9. (转)通过MySQL复制线程SQL_Thread加快增量恢复binlog

    数据回档常常是使用全量备份+binlog增量实现的.而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错. 恢复binlog文件一般有两种方法: ...

随机推荐

  1. php 计算时间添加

    $Date_1=date("Y-m-d");$Date_2="2015-10-11";$d1=strtotime($Date_1);$d2=strtotime( ...

  2. Java中static的使用

    static 使用之静态变量: 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大 ...

  3. 【BZOJ】2017: [Usaco2009 Nov]硬币游戏(dp+神题+博弈论)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2017 这题太神了,我想了一个中午啊 原来是看错题一直没理解题解说的,一直以为题解是错的QAQ “开始 ...

  4. Windows下RabbitMQ安装,部署,配置

    安装部署 1.当前环境以及参考资料出处 部署环境:windows server 2008 r2 enterprise 官方安装部署文档:http://www.rabbitmq.com/install- ...

  5. 【Raspberry pi】python ide-spyder

    sudo apt-get install spyder 简单 明了

  6. string与wstring互转

    string与wstring互转  C++ Code  123456789101112131415161718192021222324252627282930313233343536373839404 ...

  7. poj 1815(最小割、割集)

    题目链接:http://poj.org/problem?id=1815 思路:题目要求是剔除多少个点,可以将其转化为剔除多少条边,因此需要拆点,将点i拆成i,i+n,便容量为1,表示每个人起的传递作用 ...

  8. LNMP+Zabbix搭建

    LNMP+Zabbix搭建 cmake2.8.8,Nginx-1.6.3,Php-5.5.38,Mysql-5.5.32,Zabbix-3.2.6 修改 /etc/selinux/config 文件中 ...

  9. 云计算和SDN中的开源交换机介绍以及使用

    之前关于SDN的开发工作都是在控制器层面上(以ryu为主),现在开始了新的工程项目,需要同时修改控制器和交换机的源码,如果后续项目需要,还可能需要加中间层——网络虚拟层,这部分的知识已经在前面读过了相 ...

  10. jQuery选择器概览

    层级 ancestor descendant parent > child prev + next prev ~ siblings 基本筛选器 :first :not(selector) :ev ...