innodb 日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 日志两种格式 物理的日志 记录完整的页记录页中被修改的 内容逻辑日志 记录执行的 SQL 语句物理日志相对比较大,比如索引分裂是会影响很多记录,导致日志量很大 逻辑日志日志量会很小,但是会有部分执行 数据一致性问题物理日志 优点:恢复时可直接通过日志覆盖,不依赖原页面上面的内容。
  • 日志两种格式
    • 物理的日志
      • 记录完整的页
      • 记录页中被修改的 内容
    • 逻辑日志
      • 记录执行的 SQL 语句

物理日志相对比较大,比如索引分裂是会影响很多记录,导致日志量很大
逻辑日志日志量会很小,但是会有部分执行 数据一致性问题

  • 物理日志
    • 优点:恢复时可直接通过日志覆盖,不依赖原页面上面的内容。并且是幂等的。
    • 缺点:日志量很大
  • 逻辑日志

    • 优点:日志量小
    • 缺点:
      • 插入记录时 , 如果表中有多个索引 需要向B-TREE中插入记录,有可能第一个成功了第二个没有成功。
      • 索引分裂时可能需要将页A中数据移动一半到B中,A页写入磁盘成功,B没有写入磁盘时发生了Crash
  • Innodb日志方式

    • 采用逻辑与物理相结合 物理到Page Page内部是逻辑的(space id, page no, operation code, data)
    • 虽然采取此方式可以解决部分执行问题 但是数据一致性还是无法解决(因为对于page内的信息使用逻辑日志进行记录,所以当出现坏块时,并不能解决)
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
存储 SQL 缓存
InnoDB 存储引擎以及三种日志
InnoDB 存储引擎以及三种日志
25 0
|
5月前
|
缓存 关系型数据库 MySQL
MySQL数据库——InnoDB引擎-架构-内存结构(Buffer Pool、Change Buffer、Adaptive Hash Index、Log Buffer)
MySQL数据库——InnoDB引擎-架构-内存结构(Buffer Pool、Change Buffer、Adaptive Hash Index、Log Buffer)
96 3
|
6月前
|
存储 SQL 关系型数据库
详解InnoDB(2)——日志
详解InnoDB(2)——日志
115 1
|
6月前
|
存储 SQL 关系型数据库
MySQL之深入InnoDB存储引擎——redo日志
我们知道数据的修改首先是在Buffer Pool中进行的,之后再定时刷到磁盘中。那么如果在事务提交后还没刷新到磁盘中,系统就崩溃了,那么此时数据就丢失了,这就不满足事务的持久性了。而如果我们考虑每次提交之后,都同步将事务中所有的页面刷新到磁盘,这样确实可以保证持久性,但是这种方法存在以下两种问题:
|
关系型数据库 MySQL 数据库
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
101 0
|
SQL 缓存 运维
InnoDB重做日志架构和innodb_redo_log_capacity系统变量(译文)
说明:从MySQL 8.0.30开始,InnoDB的重做日志架构发生了重大变化,重做日志文件被固定为32个,并存放在一个专门的目录下面,用户可以使用系统变量innodb_redo_log_capacity在线修改重做日志容量,原来的innodb_log_files_in_group和innodb_log_file_size两个系统变量已经废弃。
257 0
|
关系型数据库 MySQL 容器
MySQL 8 新参数innodb_dedicated_server的作用,多了64个日志文件ib_logfile
MySQL 8 中可以设置参数 innodb_dedicated_server=ON来让MySQL自动探测服务器的内存大小,根据内存大小设置innodb_buffer_pool_size, innodb_log_file_size 和 innodb_flush_method 三个参数。
246 0
|
存储 运维 关系型数据库
庖丁解InnoDB之Undo LOG
Undo Log是InnoDB十分重要的组成部分,它的作用横贯InnoDB中两个最主要的部分,并发控制(Concurrency Control)和故障恢复(Crash Recovery),InnoDB中Undo Log的实现亦日志亦数据。本文将从其作用、设计思路、记录内容、组织结构,以及各种功能实现等方面,整体介绍InnoDB中的Undo Log,文章会深入一定的代码实现,但在细节上还是希望用抽象的实现思路代替具体的代码。本文基于MySQL 8.0,但在大多数的设计思路上MySQL的各个版本都是一致的。
418 3
|
存储 关系型数据库 MySQL
庖丁解InnoDB之REDO LOG
磁盘数据库为了在保证数据库的原子性(A, Atomic) 和持久性(D, Durability)的同时,还能以灵活的刷盘策略来充分利用磁盘顺序写的性能,会记录REDO和UNDO日志,即ARIES方法。本文将重点介绍REDO LOG的作用,记录的内容,组织结构,写入方式等内容,希望读者能够更全面准确的理解REDO LOG在InnoDB中的位置。本文基于MySQL 8.0代码。
990 1
庖丁解InnoDB之REDO LOG
|
存储 关系型数据库 MySQL
InnoDB存储引擎的redo log(重做日志)
InnoDB存储引擎的redo log(重做日志)
109 0
InnoDB存储引擎的redo log(重做日志)