博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL笔记-binlog理论及binlog回滚恢复数据
阅读量:1953 次
发布时间:2019-04-27

本文共 1261 字,大约阅读时间需要 4 分钟。

binlog:MySQL数据库的二进制日志,记录用户对数据库操作的SQL语句(select除外),使用mysqlbin可以查看其内容

 

binlog有三种:

1. STATMENT:基于SQL语句的复制,每一条会修改数据的sql语句会被记录到binlog中。

2.RBR:基于行的复制,不记录每一条SQL语句的上下文信息,仅记录哪条数据被修改成什么样。

3. MBR:混合模式复制,上面两种的结合。

 

STATMENT:不需要记录每一条SQL,这样日志比较少,减少IO,提高性能,但可能会导致master-slave中数据不一致。

RBR:不会出现某些特定情况下存储过程,存储函数,触发器无法正常使用的问题,但会产生大量日志。

 

在my.cnf可以对binlog进行如下设置:

#binloglog_bin=/u01/mysql3306/log/binlog/binlogbinlog_cache_size=32768binlog_format=rowexpire_logs_days=7log_slave_updates=ONmax_binlog_cache_size=2147483648max_binlog_size=524288000sync_binlog=100

在客户端中查看binlog相关设置:

show variables like '%binlog%';

查看binlog是否开启及存储位置:

show variables like '%log_bin%';

 

下面来举个实战的例子。

对某表进行数据添加,然后清空表。然后通过binlog进行全表恢复:

如创建如下表和库:

create database IT1995DB;use IT1995DB;create table test(id int auto_increment,name varchar(50),primary key(id));insert into test(name) values('AAAAAAA');insert into test(name) values('BBBBBBB');insert into test(name) values('CCCCCCC');

这里的commit是个标志,到时候查看binlog的时候有用。

这里把数据清空,再看下

truncate test;select * from test;

查看下logs有哪些:

show master logs;

这里查看下最后一个binlog

show binlog events in 'binlog.000020';

这里可以看到在1225-1906就是我们新加的那段数据,现在回滚恢复下,然后重新查下

mysqlbinlog binlog.000020 --start-position 1225 --stop-position 1906| mysql -uroot -proot

可见,这个还是很靠谱的,如果只要第三条数据回滚到1773到1906即可。

转载地址:http://pnmif.baihongyu.com/

你可能感兴趣的文章
【解决错误】json.decoder.JSONDecodeError: Expecting value: line 11 column 14 (char 82)
查看>>
【解决错误】The size of tensor a (8) must match the size of tensor b (64) at non-singleton dimension 1
查看>>
word文档中实现目录索引中标题加粗,前导符和页码不加粗
查看>>
“学硕” VS “专硕”
查看>>
【NLP学习笔记】知识图谱阅读笔记及其心得
查看>>
【工具使用】新版CSDN-markdown编辑器使用指南
查看>>
《知识图谱》阅读笔记(六)
查看>>
【NLP学习笔记】中文分词(Word Segmentation,WS)
查看>>
【NLP学习笔记】词性标注(Part-of-speech Tagging, POS)
查看>>
【NLP学习笔记】语义角色标注 (Semantic Role Labeling, SRL)
查看>>
《知识图谱》阅读笔记(七)
查看>>
《知识图谱》阅读笔记(九)
查看>>
【超越白皮书7】你需要知道关于ETH2.0的几个事实
查看>>
超越白皮书8:穿云而过的闪电网络
查看>>
AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建
查看>>
JS中document对象和window对象有什么区别
查看>>
【python练习题】遍历1
查看>>
【matlab】显示图片且下方显示文字
查看>>
关于greater<int>以及类模板的一些理解
查看>>
对于时间复杂度的通俗理解
查看>>