ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql存储引擎文件

2021-06-10 23:33:28  阅读:180  来源: 互联网

标签:文件 存储 redolog 写入 引擎 InnoDB Mysql 日志 重做


本文介绍以下引擎文件

  • 表空间文件
  • 重做日志文件

1.表空间文件

  • InnoDB将存储的数据按表空间进行存放。默认配置下会有一个初始大小为10MB,名为ibdata1的文件。该文件就是默认的表空间文件。用户也可以通过多个文件组成一个表空间。文件的大小可以自动增长。
  • 如果用户设置innodb_data_file_path参数后,所有基于InnoDB存储引擎的表的数据都会记录到该共享空间中。如果设置了参数innodb_file_per_table,则用户可以将每个基于InnoDB存储引擎的表产生一个独立表空间。独立表空间命名规则:表明.idb。这些单独表空间仅仅存储该表的数据、索引和插入缓冲BITMAP等信息。其余还是存放在共享表空间。

2.重做日志文件(redo log)

redo log记录了对于InnoDB存储引擎的事务日志。作用:数据库由于所在主机断电导致实例失败,会使用redolog来恢复到断电前时刻。2.1重做日志文件组

  • InnoDB存储引擎至少有一个重做日志文件组,每个文件组下至少有2个重做日志文件,如默认ib_logfile0和ib_logfile1。
  • 为了高可用性,用户可以设置多个的镜像日志组,将不同的文件组放在不同的磁盘上。
  • 在日志组中每个重做日志文件大小一致,并以循环写入的方式运行。
  • InnoDB先写重做日志文件1,当达到文件的最后时,会切换至重做日志文件2,在当重做日志文件2也被写满时,会再切换回重做日志文件1.

2.2重做日志文件大小设置问题

  • 如果重做日志这是的很大,恢复需要很长时间。
  • 如果设置太小,导致一个事务的日志需要多次切换重做日志文件。也会导致频繁的async checkpoint

2.3redolog和binlog区别 TODO:去dba哪里查看下具体的binlog和redolog记录的信息区别是什么

  • binglog记录InnoDB,MyISAM、Heap等其他存储引擎的日志,redolog记录InnoDB数据库本身的事务日志。
  • 记录内容不同,binglog记录事务的具体操作内容,即该日志的逻辑日志。而redolog记录是关于每个页的更改的物理情况。
  • 写入时间不同,binlog仅在事务提交前进行提交,即只写磁盘一次。而redolog在事务执行过程中,却不断有重做日志条目被写入redolog文件中

2.4redolog的写入写入redolog不是直接写,而是先写入一个redolog buffer中,然后按照一定的条件顺序的写入日志文件。redolog buffer往磁盘写入时,按照512个字节,也就是一个山区的大小进行写入。因为扇区是最小单位,因此可以保证写入必定是成功的,因此重做日志的写入过程中不需要有double write(两次写)2.5参数innodb_flush_log_at_trx_commit

  • 0:代表当提交事务时,并不将重做日志写入磁盘,而是等到Master Thread每秒的刷新。
  • 1:代表执行commit时将日志同步写入磁盘
  • 2:代表异步写入磁盘,即文件写入redo log buffer中,因此不能保证在commit时肯定会写入磁盘

设置为2的时候,如果数据库发生宕机而操作系统及服务器并没有宕机,可以通过redo log buffer进行恢复,因为redolog buffer在文件系统缓存中。

参考文献:InnoDB存储引擎第二版

标签:文件,存储,redolog,写入,引擎,InnoDB,Mysql,日志,重做
来源: https://blog.csdn.net/liujiancheng521/article/details/117793207

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有