MYSQL-重做日志

主要作用:
1.当数据库实例或网络介质出问题,重做日志能够进行恢复,保证innodb引擎数据的完整性

内部构成:
1.每个innodb存储引擎至少有一个重做日志文件组(group)
2.每个日志文件组下至少有两个重做日志文件,默认为ib_logfile0、ib_logfile1
3.可以设置多个镜像日志文件组,可存放到不同磁盘,来提高可靠性

写入原理:
1.重做日志先写入重做日志缓冲池
2.按照一定条件写入重做日志文件,例如:master线程每秒将缓冲池中重做日志数据写入重做日志文件
3.首先写入重做日志组中的日志文件1即ib_logfile0,该文件写满后,继续向ib_logfile2中写,日志文件2也写满后,继续向ib_logfile0中写,循环执行

配置参数:
1.innodb_log_file_size:指定重做日志文件大小
2.innodb_log_file_in_group:指定日志文件组中重做日志文件的个数,默认2
3.innodb_mirrored_log_groups:指定日志镜像文件组的数量,默认1
4.innodb_log_group_home_dir:指定日志文件组所在路径,默认数据库路径下
5.innodb_flush_log_at_trx_commit:指定提交事务时是否刷新缓冲池重做日志数据到日志文件,0表示提交事务时不将事务的重做日志写入磁盘上的日志文件,1表示在事务提交时同步写入重做日志,2表示在事务提交时异步写入重做日志,默认1

重做日志文件和二进制文件区别:
1.记录类型不一样:二进制文件会记录所有引擎操作的日志记录,重做日志只记录innodb引擎相关的事务性操作
2.记录内容不一样:二进制文件会记录的具体操作,比如sql或行的修改,重做日志记录关于页的更改情况
3.记录时间不一样:二进制文件在事务提交前记录日志,重做日志在事务运行时不断记录日志

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值