关于mysql里面的bin-log日志

时间:2019-01-22
本文章向大家介绍关于mysql里面的bin-log日志,主要包括关于mysql里面的bin-log日志使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

mysql里面的bin-log日志,相信大家都有过相应的了解,但是对于bin-log日志而言,具体的内容是做什么的,今天小编特意抽空学习了一下,下边是我的笔记心得。
主从同步的一个基本原理
MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
由于在主从架构中,master将相应的sql信息通过Replication写入到了bin-log文件当中,然后slaver的io线程读取master的日志内容,并将里面的内容写入到写入到 Slave 端的Relay Log,sql线程会监控到Relay Log相应的内容并且进行读取,达到相应的一个主从数据同步的模式。
mysql的binlog日志除了我们常说的这个主从同步功能以外,还能为我们的数据库备份提供一定的帮助。

常用binlog日志操作命令
1.查看所有binlog日志列表

 mysql> show master logs;

2.查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值

  mysql> show master status;

3.刷新log日志,自此刻开始产生一个新编号的binlog日志文件

mysql> flush logs;
  注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;

4.重置(清空)所有binlog日志

 mysql> reset master;

我们登录自己的mysql服务器,在确认log-bin配置开启之后,使用mysql自带的mysqlbinlog工具进行日志文件的查看(mysql的binlog日志文件通过vi,cat是无法查看的)

这里面正好有一段相应的write_rows的插入数据记录,根据相应的end_log_pos指标,我们可以记住相应的pos数值,然后进入mysql服务里面进行详细日志文件的阅读
通过相应的mysql-binlog阅读命令,我们可以去查询相关的日志记录:
这里需要结合以下相应的命令进行查看:

mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
选项解析:
           IN 'log_name'   指定要查询的binlog文件名(不指定就是第一个binlog文件)
           FROM pos        指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
           LIMIT [offset,] 偏移量(不指定就是0)
           row_count       查询总条数(不指定就是所有行)


注意,这里要求起始点位置是正确的offset才能使得命令生效。