mysql增量恢复的一个实例操作
通过防火墙禁止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增量恢复的一个实例操作的更多相关文章
- 10、mysql增量恢复实战
10.1.实验数据: mysql> select * from test; +----+------+------+ | id | name | age | +----+------+----- ...
- Mysql增量恢复
mysqldump增量恢复何时需要使用备份的数据? 备份最牛逼的层次,就是永远都用不上备份.--老男孩 不管是逻辑备份还是物理备份,备份的数据什么时候需要用?===================== ...
- mysql触发器语法的一个实例
我要实现的功能是:在更新一个表时.从三个表中查询记录并插入到另外一个表中.以下是我写触发器的过程: 第一次写的触发器例如以下: CREATE TRIGGER istmingxi AFTER UPDA ...
- Mysql备份恢复方案解析
1.全量备份和增量备份 1.1全量备份 就是对现有的数据进行全部备份,之前做的备份均可舍弃,以最新的全备为基点. a.全备所有数据库 Innodb引擎: [root@leader mysql]#mys ...
- MySQL中的连接、实例、会话、数据库、线程之间的关系
MySQL中的实例.数据库关系简介 1.MySQL是单进程多线程(而Oracle等是多进程),也就是说MySQL实例在系 统上表现就是一个服务进程,即进程(通过多种方法可以创建多实例,再安装一个端口号 ...
- MYSQL增量备份与恢复
vim /etc/my.cnf在[mysqld]下添加max_binlog_size = 1024000 //二进制日志最大1M 要进行mysql的增量备份,首先要开启二进制日志功能方法一:在/etc ...
- PHP 2:从一个实例介绍学习方法
原文:PHP 2:从一个实例介绍学习方法 在前面我已经描述了PHP,Apache以及MySQL的安装与配置.下面将介绍一下我如何学习PHP.首先我自己已经有了一些编程经验,就拿我自己而言,已经熟悉C/ ...
- MySQL增量备份与恢复实例【转】
小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的 ...
- (转)通过MySQL复制线程SQL_Thread加快增量恢复binlog
数据回档常常是使用全量备份+binlog增量实现的.而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错. 恢复binlog文件一般有两种方法: ...
随机推荐
- php服务器端与android客户端通信问题
http://www.oschina.net/question/616446_90760
- hdu6070 Dirt Ratio 二分+线段树
/** 题目:hdu6070 Dirt Ratio 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意:给定n个数,求1.0*x/y最小是多少.x ...
- UVALive 7721 K - 2-ME Set 集合dp,所有数的位或来表示状态。
/** 题目:UVALive 7721 K - 2-ME Set 链接:https://vjudge.net/problem/UVALive-7721 题意:给定n个数,从中取出一个集合,至少包含两个 ...
- 【学习ATX基于uiautomator2】之API操作Android方法
具体API可参考:<uiautomator2>以及参考github官方文档 感谢:Ricky_Frog <Python+uiautomator2手机UI自动化测试实战 -- 2. 用 ...
- HttpClient+jsoup登录+解析 163邮箱
找了几个,只有这个靠谱,用的是httpclient4,另外还需要commons-lang和jsoup包 http://jsoup.org/ http://www.oschina.net/code/sn ...
- C0301 代码块{}的使用,重定向, 从文件中读取行
#!/bin/bash # 从 /etc/fstab 中读行 File=/etc/fstab { read line1 read line2 } < $File # {}代码块, ...
- pl/sql 实例精解 05
本章主要讨论 case 语句 1: case [SELECTOR] 2: when expression 1 then statement 1; 3: when expression 2 then s ...
- 本地连接linux虚拟机的方法
1.给虚拟机添加一个ehtX: 2. 3.添加一个ethX 4. 5.设置使用的是哪一个网卡,ifconfig的时候变会得到相应的ip 6. 再在cmd那ping ifconfig出来的自动获取的ip ...
- 打开.py文件的方法
用IDLE打开这个文件,然后按F5,系统就自动开始运行这个python程序,然后当前运行目录就跳转到这个目录了
- java 包冲突解决方法
1.诊断包冲突 java.lang.NoSuchMethodError: org.apache.commons.io.output.DeferredFileOutputStream.<init& ...