首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

怎么避免到跑路 -- 详解 mysql binlog 的配置与使用

有一句十分流行的调侃 — “到跑路”就很形象的说明了误操作后的结果,那么如果你真的不小心执行了删操作,真的就无法挽回了吗?...2. binlog binlog 即二进制日志,他记录了引起或可能引起数据改变事件,包括事件发生的时间、开始位置、结束位置等信息,select、show 等查询语句不会引起数据改变,因此不会被记录在...众所周知,mysql 的主从同步机制也是依赖 binlog 来实现的,binlog数据可以精准还原主库的每一个操作。...ROW 模式(RBR) 在该模式下,binlog 会记录每次操作的源数据与修改后的目标数据,而不会记录 sql 语句, mysql 5.6.2 版本开始,你可以通过在配置文件中指定 binlog_rows_query_log_events...清理 binlog 6.1. 删除全部日志 reset master 这个命令会删除所有 binlog,并让日志文件 000001 开始重新记录和生成。 6.2.

54420
您找到你想要的搜索结果了吗?
是的
没有找到

【MySQL系列】- binlog预防删跑路

如果哪天不小心把表给删了,数据都没了或者一不留神被删跑路了,那怎么把数据恢复呢?这就需要今天的主角binlog登场了。...这些事件使数据备份点更新,数据将变化恢复到指定的时间点(Point-in-time)。...主从复制(replication):主数据数据发送binlog数据数据执行和复制binlog从而将数据恢复到数据中。...审计(audit):用户可以通过二进制日志中的信息来进行审计,判断是否有对数据进行注入的攻击。 binlog的格式 MySQL有好3种格式记录binlog,具体的格式取决于MySQL数据的版本。...有一张表如下: orders@db_test 修改一下表中数据,通过上面命令查看binlog并截取其中一段 binlog部分内容 binlog中可以看到记录更新前后的数据,这样就可以以可读的方式查看

74730

Mysql数据Binlog日志使用总结

binlog二进制日志对于mysql数据的重要性有多大,在此就不多说了。...至少得有一个日志记录开始后的数据备份,通过日志恢复数据实际上只是一个对以前操作的回放过程而已,不用想得太复杂。...//binlog每个日志文件大小 binlog-do-db=需要备份的数据名,如果备份多个数据,重复设置这个选项即可 binlog-ignore-db=不需要备份的数据苦命,如果备份多个数据,重复设置这个选项即可...而MySQL在Binlog中所记录的是数据逻辑变化信息,MySQL称之为Event,实际上就是带来数据变化的DML之类的Query语句。...以往经验和相关测试来看,对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。

6.1K90

使用Kafka订阅数据的实时Binlog

预备知识:关于Mysql事务的两阶段提交与Binlog Binlog用于记录数据执行的写入操作信息,以二进制的形式保存在磁盘中。...Binlog是Mysql的逻辑日志,并且由Server层进行记录,无论使用何种存储引擎,Mysql数据都会记录Binlog日志。...Mysql通过sync_binlog参数控制Biglog的刷盘时机,取值范围是0-N: 0:由系统自行判断何时写入磁盘; 1:每次commit都将Binlog写入磁盘; N:每N个事务commit才将Binlog...当第二阶段的写Binlog成功后,MySQL就会认为事务已经提交并且持久化了,所以在这一步Binlog就已经可以发送给订阅者了。...如果在写完Binlog后,存储引擎还没有完成提交的事务,刚好在这个时刻数据崩溃,那么重启后依然能根据Binlog正确恢复该事务。如果在写Binlog这一步完成之前,任何操作的失败都会引起事务回滚。

2.1K10

MySQL binlog日志格式 binlog_format

Mixed 5.1.8 版本开始,MySQL 提供了除 Statement 和 Row 之外的第三种复制模式:Mixed,实际上就是前两种模式的结合。...优点 历史悠久,技术成熟; 产生的 binlog 文件较小; binlog 中包含了所有数据修改信息,可以据此来审核数据的安全等情况; binlog 可以用于实时的还原,而不仅仅用于复制;...; 多数情况下,服务器上的表如果有主键的话,复制就会快了很多; 复制以下几种语句时的行锁更少: * INSERT … SELECT * 包含 AUTO_INCREMENT 字段的 INSERT...* 没有附带条件或者并没有修改很多记录的 UPDATE 或 DELETE 语句 执行 INSERT,UPDATE,DELETE 语句时锁更少; 服务器上采用多线程来执行复制成为可能; Row...SQL 语句时,最好采用 statement 模式,否则很容易导致主从服务器的数据不一致情况发生; 另外,针对系统 MySQL 里面的表发生变化时的处理准则如下: 如果是采用 INSERT,UPDATE

1.8K30

MySQL binlog

文件较小; binlog 中包含了所有数据修改信息,可以据此来审核数据的安全等情况; binlog 可以用于实时的还原,而不仅仅用于复制; 主从版本可以不一样,服务器版本可以比主服务器版本高;...UPDATE 或 DELETE 语句 执行 INSERT,UPDATE,DELETE 语句时锁更少; 服务器上采用多线程来执行复制成为可能; row 缺点: 生成的 binlog 日志体积大了很多;...(https://github.com/danfengcao/binlog2sql ),MySQL binlog解析出你要的SQL。...,基于binlog和基于GTID(全局事务标示符),基于binlog的一主一复制的基本过程如下: Master将数据改变记录到二进制日志(binary log)中 Slave上面的IO进程连接上Master...,并请求指定日志文件的指定位置(或者最开始的日志)之后的日志内容 Master接收到来自Slave的IO进程的请求后,负责复制的IO进程会根据请求信息读取日志指定位置之后的日志信息,返回给Slave

2.9K50

【删跑路】使用Binlog日志恢复误删的MySQL数据

模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。 写这篇文章的初衷,是有一次我真的险些把测试数据的一张表给删除了,当时吓出一身冷汗。...正文 Binlog介绍 binlog是记录所有数据表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。...看了上面binlog的定义,大家也应该能大致推理出binlog的三大用途: 恢复数据:今天要说的重点 数据复制:主从数据是通过将binlog传给有两个线程,一个I/O线程,一个SQL线程,...I/O线程读取主库传过来的binlog内容并写入到relay log,SQL线程relay log里面读取内容,写入的数据。...当然,看完binlog日志恢复数据的原理,希望大家以后在定期备份数据的脚本里,也能够加上刷新binlog日志的命令,这样一旦某天丢失数据,可以将当天binlog数据单独拿出来还原,做到清晰可辨,也加快恢复效率

3.9K20

mysql binlog解析

通常用于描述数据事务的状态。它表示在一个数据事务中,最后一个已经被提交(committed)的操作或语句。在数据中,事务是一组相关的操作,这些操作要么全部成功执行并提交,要么全部回滚(撤销)。...BINLOG 一连串的十六进制这些数据代表了在主服务器上执行的数据更改操作。具体来说,BINLOG记录包含了一系列的事件,每个Event都以特定的格式和结构进行编码,并以十六进制的形式进行记录。...这些Event可以是查询事件、插入事件、更新事件、删除事件等,用于记录对数据的各种操作。每个BINLOG Event都有其特定的格式和字段,用于描述和记录相应的数据更改操作。...所以这个binlog文件,只能按照顺序读取事件,获得的事务内容可以并发处理,如数仓的ETL等。 4 谁干的! 有时候,数据的记录被更改了,不知道谁或者哪个逻辑改的,需要找到具体操作者。...binlog中可以找到操作更改的事务,在这个事务中找到Query事件,Query事件有个字段为thread_id,从而可以找到本次操作的线程id。

48041

浅谈MySQL Binlog

1 什么是binlogbinlog是二进制日志文件,用于记录mysql的数据更新或者潜在更新状况,在mysql主从复制中就是依靠的binlog。...可以通过语句“show binlog events in 'binlogfile'”来查看binlog的具体事件类型。...用 无法在副本上看到源接收并执行了哪些语句。对于使用MyISAM 存储引擎的表,INSERT当将它们作为基于行的事件应用于二进制日志时,语句的副本需要比将它们作为语句应用时更强的锁。...日志文件包含进行了任何更改的所有语句,因此它们可用于审计数据。 缺点:INSERT ... SELECT与基于行的复制相比,需要更多的行级锁。...50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;上面输出包括信息:position: 位于文件中的位置,即第一行的,说明该事件记录文件第21019个字节开始timestamp

20800
领券