【体系结构】MySQL 日志文件--二进制日志:Binary Log & Binary Log Index

本文详细介绍了MySQL中二进制日志的作用与实现方式,包括其存储位置、文件类型及binlog_format参数的不同设置所带来的影响。通过理解这些内容,可以帮助数据库管理员更好地管理和维护MySQL数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找到这两个文件、


Rocky@localhost> show variables like 'datadir';
+---------------+-------------------------+
| Variable_name | Value                   |
+---------------+-------------------------+
| datadir       | /home/mysql/mysql/data/ |
+---------------+-------------------------+
1 row in set (0.00 sec)

Rocky@localhost> system ls -l /home/mysql/mysql/data/
total 31804
-rw-rw---- 1 mysql dba 18874368 Apr 14 01:27 ibdata1
-rw-rw---- 1 mysql dba  5242880 Apr 15 20:15 ib_logfile0
-rw-rw---- 1 mysql dba  5242880 Apr 12 12:37 ib_logfile1
-rw-rw---- 1 mysql dba        6 Apr 15 20:15 localhost.localdomain.pid
drwxr-xr-x 2 mysql dba     4096 Apr 12 12:35 mysql
-rw-rw---- 1 mysql dba    27828 Apr 12 12:35 mysql-bin.000001
-rw-rw---- 1 mysql dba   997144 Apr 12 12:35 mysql-bin.000002
-rw-rw---- 1 mysql dba      150 Apr 12 13:17 mysql-bin.000003
-rw-rw---- 1 mysql dba    27025 Apr 12 12:56 mysql-bin.000004
-rw-rw---- 1 mysql dba   997144 Apr 12 12:56 mysql-bin.000005
-rw-rw---- 1 mysql dba    27025 Apr 12 12:59 mysql-bin.000006
-rw-rw---- 1 mysql dba   997144 Apr 12 12:59 mysql-bin.000007
-rw-rw---- 1 mysql dba      126 Apr 12 13:18 mysql-bin.000008
-rw-rw---- 1 mysql dba      126 Apr 13 00:14 mysql-bin.000009
-rw-rw---- 1 mysql dba     1346 Apr 13 20:20 mysql-bin.000010
-rw-rw---- 1 mysql dba      150 Apr 13 20:23 mysql-bin.000011
-rw-rw---- 1 mysql dba      107 Apr 13 20:23 mysql-bin.000012
-rw-rw---- 1 mysql dba      107 Apr 13 21:56 mysql-bin.000013
-rw-rw---- 1 mysql dba      126 Apr 13 22:50 mysql-bin.000014
-rw-rw---- 1 mysql dba      229 Apr 14 01:27 mysql-bin.000015
-rw-rw---- 1 mysql dba      107 Apr 15 20:15 mysql-bin.000016
-rw-rw---- 1 mysql dba      304 Apr 15 20:15 mysql-bin.index


㈠ 定义

记录了所有修改数据的query、包括:query语句、执行时间、所消耗资源、以及相关事务信息

㈡ 作用

① 恢复
② 复制

㈢ 相关参数

相关参数挺多的、这里重点介绍一个:

binlog_format

含义:日志的格式
性质:动态参数、session级或global级
set @@session.binlog_format='ROW' 或者
set global binlog_format='ROW'
取值
● STATEMENT

基于这个格式的复制、类似 Oracle 逻辑 standby 的 SQL Apply

● ROW

基于这个格式的复制、类似 Oracle 物理 standby 的 Redo Apply

开启 ROW 的优点
① 如果将InnoDB的事务隔离级别设为 READ COMMITED、加上 ROW、可获得更好的并发性
② 为恢复和复制带来更好的可靠性
缺点
① 二进制日志膨胀快速、磁盘空间开销大
② 复制时、网络带宽需求大


● MIXED

这是默认格式、比较狡猾、平时以 STATEMENT 运行、有些时候则以 ROW运行


Rocky@localhost> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | MIXED |
+---------------+-------+
1 row in set (0.00 sec)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值