mysql写log文件,Mysql log 日志文件

1 Mysql中的日志文件

redo log

重做日志

undo log

回滚日志

binlog

二进制日志

slow query log

慢查询日志

error log

错误日志

general log

一般查询日志

relay log

中继日志

1.1 redo log

1.1.1 用途

事物持久性

重做日志:保证事物的持久性 Consistence

节点故障时,可能有脏页未写入磁盘,mysql服务重启时,根据redo log重做,保证持久性

1.1.2 系统变量

innodb_log_buffer_size

innodb日志缓冲区大小

innodb_log_group_home_dir

日志文件组路径 默认./ 表示数据库data目录下

innodb_log_files_in_group

文件数量 默认2

物理文件位于数据库的data目录下的ib_logfile1&ib_logfile2

1.1.3 写盘

事物开始后,redo log就开始写入日志文件,而不是在事物提交时才开始,这也就很好地解释再大的事务提交(commit)也是很快的

InnoDB有buffer pool(简称bp)。bp是数据库页面的缓存,对InnoDB的任何修改操作都会首先在bp的page上进行,然后这样的页面将被标记为dirty并被放到专门的flush list上,后续将由master thread或专门的刷脏线程阶段性的将这些页面写入磁盘(disk or ssd)。这样的好处是避免每次写操作都操作磁盘导致大量的随机IO,阶段性的刷脏可以将多次对页面的修改merge成一次IO操作,同时异步写入也降低了访问的时延。然而,如果在dirty page还未刷入磁盘时,server非正常关闭,这些修改操作将会丢失,如果写入操作正在进行,甚至会由于损坏数据文件导致数据库不可用。为了避免上述问题的发生,Innodb将所有对页面的修改操作写入一个专门的文件,并在数据库启动时从此文件进行恢复操作,这个文件就是redo log file。这样的技术推迟了bp页面的刷新,从而提升了数据库的吞吐,有效的降低了访问时延。带来的问题是额外的写redo log操作的开销(顺序IO,当然很快),以及数据库启动时恢复操作所需的时间

1.2 undo log

1.2.1 用途

MVCC + 回滚

1.2.2 undo log 事务开始之前生成,也会产生 redo 来保证undo log的可靠性

MySQL5.6之前,undo log存储在共享表空间ibdata的回滚段中,MySQL5.7之后可以指定uodo表空间 innodb_undo_directory undo独立表空间的存放目录

1.2.3 逻辑日志

undo log和redo log记录物理日志不一样,它是逻辑日志。可以认为当delete一条记录时,undo log中会记录一条对应的insert记录,反之亦然,当update一条记录时,它记录一条对应相反的update记录。

当执行rollback时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚。有时候应用到行版本控制的时候,也是通过undo log来实现的:当读取的某一行被其他事务锁定时,它可以从undo log中分析出该行记录以前的数据是什么,从而提供该行版本信息,让用户实现非锁定一致性读取。

undo log是采用段(segment)的方式来记录的,每个undo操作在记录的时候占用一个undo log segment。

另外,undo log也会产生redo log,因为undo log也要实现持久性保护。

1.3 binlog

1.3.1 用途

主从复制

数据库基于时间点还原

1.3.2 数据库层面的日志

和innodb无关

事物提交的时候产生,是逻辑日志

expire_logs_days 配置删除时间

log_bin_basename 配置binlog文件路径

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值