MySQL-二进制日志binlog初探


在这里插入图片描述


MySQL日志分类

MySQL服务层日志

  • 二进制日志
  • 慢查询日志
  • 通用日志

存储引擎层日志

以Innodb存储引擎来讲,主要由 Redo log 和 Undo log , 为了支持事务。


这里我们重点来了解下 binlog的主要功能


binlog

binlog都记录了哪些内容

binlog中主要记录了所有对MySQL数据库的修改事件,包括增删改查事件以及对表结构的修改事件。 需要注意的一点: 只有成功执行的才回被记录到binlog中,那些执行出错或者已经回滚的数据,是不会被记录到binlog中的。


binlog格式初探

基于段的格式-STATEMENT

基于段的格式 binlog_format=STATEMENT (5.7以前默认的)

STATEMENT 的优缺点

优点:日志记录量相对较小,节省磁盘及网络I/O ,只对一条删记录进行修改或者插入,row格式所产生的日质量小于段产生的日志量

缺点: 必须要记录上下文的信息,以确保在从服务器上能够正确执行。但是有些特定函数比如UUID(),user() 这样非确定性函数还是无法复制,有可能造成主备服务器数据不一致。


查看

[root@artisan ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.7.29-log MySQL Community Server (GPL)
.....
.....
mysql> show variables like 'binlog_format'; # 查看当前binlog的格式
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
1 row in set (0.00 sec)

mysql> set session binlog_formate=statement; # 修改session级别的binlog格式为statement
mysql> set session binlog_format=statement;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'binlog_format';  #确认下当前binlog的格式
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0.00 sec)

mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       177 |
| mysql-bin.000045 |      5743 |
+------------------+-----------+
45 rows in set (0.00 sec)

mysql> flush logs; #  刷新log ,会产生一个新的binlog
Query OK, 0 rows affected (0.05 sec)

mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
....
....
| mysql-bin.000045 |      5790 |
| mysql-bin.000046 |       154 |
+------------------+-----------+
46 rows in set (0.00 sec)

mysql> 下面随便搞点操作,方便观察binlog



发布了801 篇原创文章 · 获赞 2008 · 访问量 413万+

猜你喜欢

转载自blog.csdn.net/yangshangwei/article/details/104121729