MySQL笔记-binlog理论及binlog回滚恢复数据
发布日期:2021-06-30 10:42:59
浏览次数:4
分类:技术文章
本文共 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即可。
转载地址:https://it1995.blog.csdn.net/article/details/105919998 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年05月01日 13时24分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
UVA-11401 Triangle Counting(数学优化)
2019-04-30
Codeforces Round #369 (Div. 2)
2019-04-30
UVA 11426 GCD - Extreme (II)(欧拉函数)
2019-04-30
HDU-2838 Cow Sorting(树状数组)
2019-04-30
POJ-2299 Ultra-QuickSort(树状数组)(离散化)
2019-04-30
基于SSM的兼职论坛系统的设计与实现
2019-04-30
基于java的图书管理系统的设计与实现
2019-04-30
基于java的SSM框架理财管理系统的设计与实现
2019-04-30
基于java的ssm框架就业信息管理系统的设计
2019-04-30
基于java的ssm框架的旅游网站设计与实现
2019-04-30
基于java的SSM框架的流浪猫救助网站的设计与实现
2019-04-30
基于java的SSM框架的教务关系系统的设计与实现
2019-04-30
别再问我什么是A/B测试了!
2019-04-30
如何用同期群分析模型提升留存?(Tableau实战)
2019-04-30
爱了,吹爆这个高颜值的流程图工具!
2019-04-30
一个数据项目
2019-04-30
基于JAVA_JSP电子书下载系统
2019-04-30
基于java出租车计价器设计与实现
2019-04-30
基于java的B2C的网上拍卖系统
2019-04-30