您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

浅析MySQL二进制日志

2025/2/1 6:32:33发布19次查看
传统的mysql采用基于语句的复制,将实际执行的语句及某些和执行相关的信息一起写入二进制日志,然后在从库上重新执行这些语句。由
一般情况下,二进制日志更多的用于数据库的同步,因为二进制日志记录了数据库的所有改变,可以使得slave都可以执行同样的更新,其实二进制日志可以对数据库作一个写入回放,所以也可以用于统计或者即时恢复等其它的目的。
二进制日志仅仅包含可能改变数据库的语句,估计都很容易理解这个,但是那些还没有改变且有可能改变数据库的语句也会记录下来,比如drop table if exists或者是带有where条件的update和delete语句。
一,二进制日志结构
二进制日志是一系列二进制日志事件(又称为binlog事件),其实就是很多文件【包括系列日志文件和一个日志索引文件】共同组成二进制日志,这里每个日志文件称为binlog文件,每个日志文件由很多个日志事件组成,每个日志文件都是以format_description事件开头并且以日志轮换事件rotate作为文件结束,如:
format_description事件包含写日志文件的服务器信息以及日志文件格式,而rotate事件包含下一个日志文件的文件名及其开始读取的位置。
除了这两个事件以外,,日志文件中的其他事件都被分成一个组一个组的形式,在事务存储引擎中,每个组会对应一个事务,而其它有可能是一个语句,总之,日志文件中的事件要么是单个语句,要么是由多条语句组成的事务。
事件类型是有很多种,就是上面的event_type在实际使用时,会有多个取值,但可以归纳为每个日志事件由三个部分组成:
如下:
| master-bin.000004 | 180 | query       |         1 |         297 | use `db_info`; insert into i_node(name,value) values(sql,@value)
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product