春满大地,富贵花开。微雨众卉新,一雷惊蛰始。敬请关注微信公众号:AiryData。

MySQL的binlog日志

SQL Airy 22962℃ 0评论

零、binlog 基本认识

MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。

一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景:

其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。

其二:自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。

二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。

一、开启binlog日志:

vi编辑打开mysql配置文件(根据个人系统打开即可)

# vi /usr/local/mysql/etc/my.cnf

在[mysqld] 区块

设置/添加 log-bin=mysql-bin  确认是打开状态(值 mysql-bin 是日志的基本名或前缀名);

重启mysqld服务使配置生效

# pkill mysqld

# /usr/local/mysql/bin/mysqld_safe –user=mysql &

二、登录mysql服务器查看是否开启

也可登录mysql服务器,通过mysql的变量配置表,查看二进制日志是否已开启 单词:variable[ˈvɛriəbəl] 变量。

登录服务器

# /usr/local/mysql/bin/mysql -uroot -p123456

mysql> show variables like ‘log_%’;

——> ON表示已经开启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;

 

四、查看某个binlog日志内容

常用有两种方式:

1.使用mysqlbinlog自带查看命令法:

注: binlog是二进制文件,普通文件查看器cat more vi等都无法打开,必须使用自带的 mysqlbinlog 命令查看

binlog日志与数据库文件在同目录中(我的环境配置安装是选择在/usr/local/mysql/data中)

在MySQL5.5以下版本使用mysqlbinlog命令时如果报错,就加上 “–no-defaults”选项

# /usr/local/mysql/bin/mysqlbinlog  /usr/local/mysql/data/mysql-bin.000013

 

2.上面这种办法读取出binlog日志的全文内容较多,不容易分辨查看pos点信息,这里介绍一种更为方便的查询命令:

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       查询总条数(不指定就是所有行)

 

这条语句可以将指定的binlog日志文件,分成有效事件行的方式返回,并可使用limit指定pos点的起始偏移,查询条数;

A.查询第一个(最早)的binlog日志:

mysql> show binlog events \G;

B.指定查询 mysql-bin.000021 这个文件:

mysql> show binlog events in ‘mysql-bin.000021’ \G;

C.指定查询 mysql-bin.000021 这个文件,从pos点:8224开始查起:

mysql> show binlog events in ‘mysql-bin.000021’ from 8224 \G;

D.指定查询 mysql-bin.000021 这个文件,从pos点:8224开始查起,查询10条

mysql> show binlog events in ‘mysql-bin.000021’ from 8224 limit 10 \G;

E.指定查询 mysql-bin.000021 这个文件,从pos点:8224开始查起,偏移2行,查询10条

mysql> show binlog events in ‘mysql-bin.000021’ from 8224 limit 2,10 \G;

小结

上面就是今天的主题内容了,今天学习一下MySQL中的视图,这可以极大的简化我们的查询。希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

如果想快速联系我,欢迎关注微信公众号:AiryData

转载请注明:数据之美 » MySQL的binlog日志

喜欢 (4)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 博客大好,让人忘不了!