innodb事务日志
2018-01-24 16:00
92 查看
Mysql会最大程度的使用缓存机制来提高数据库的访问效率,但是万一数据库发生断电,因为缓存的数据没有写入磁盘,导致缓存在内存中的数据丢失而导致数据不一致怎么办?
Innodb主要是通过事务日志实现ACID特性
事务日志包括:重做日志redo和回滚日志undo
Redo记录的是已经全部完成的事务,就是执行了commit的事务,记录文件是ib_logfile0 ib_logfile1
Undo记录的是已部分完成并且写入硬盘的未完成的事务,默认情况下回滚日志是记录下表空间中的(共享表空间或者独享表空间)
一般情况下,mysql在崩溃之后,重启服务,innodb通过回滚日志undo将所有已完成并写入磁盘的未完成事务进行rollback,然后redo中的事务全部重新执行一遍即可恢复数据,但是随着redo的量增加,每次从redo的第一条开始恢复就会浪费长的时间,所以引入了checkpoint机制
Dirty page:脏页 什么意思呢?
一般业务运行过程中,当业务需要对某张的某行数据进行修改的时候,innodb会先将该数据从磁盘读取到缓存中去,然后在缓存中对这条数据进行修改,这样缓存中的数据就和磁盘的数据不一致了,这个时候缓存中的数据就称为dirty page,只有当脏页统一刷新到磁盘中才会是clean page
Checkpoint:如果在某个时间点,脏页的数据被刷新到了磁盘,系统就把这个刷新的时间点记录到redo log的结尾位置,在进行恢复数据的时候,checkpoint时间点之前的数据就不需要进行恢复了,可以缩短时间
Innodb_log_buffer_size 重做日志缓存大小
Innodb_log_file_size redo log文件大小 文件越大 数据恢复的时间越长
Innodb_log_file_group redo log文件数量 默认是2个 ib_logfile0 ib_logfile1
Innodb主要是通过事务日志实现ACID特性
事务日志包括:重做日志redo和回滚日志undo
Redo记录的是已经全部完成的事务,就是执行了commit的事务,记录文件是ib_logfile0 ib_logfile1
Undo记录的是已部分完成并且写入硬盘的未完成的事务,默认情况下回滚日志是记录下表空间中的(共享表空间或者独享表空间)
一般情况下,mysql在崩溃之后,重启服务,innodb通过回滚日志undo将所有已完成并写入磁盘的未完成事务进行rollback,然后redo中的事务全部重新执行一遍即可恢复数据,但是随着redo的量增加,每次从redo的第一条开始恢复就会浪费长的时间,所以引入了checkpoint机制
Dirty page:脏页 什么意思呢?
一般业务运行过程中,当业务需要对某张的某行数据进行修改的时候,innodb会先将该数据从磁盘读取到缓存中去,然后在缓存中对这条数据进行修改,这样缓存中的数据就和磁盘的数据不一致了,这个时候缓存中的数据就称为dirty page,只有当脏页统一刷新到磁盘中才会是clean page
Checkpoint:如果在某个时间点,脏页的数据被刷新到了磁盘,系统就把这个刷新的时间点记录到redo log的结尾位置,在进行恢复数据的时候,checkpoint时间点之前的数据就不需要进行恢复了,可以缩短时间
Innodb_log_buffer_size 重做日志缓存大小
Innodb_log_file_size redo log文件大小 文件越大 数据恢复的时间越长
Innodb_log_file_group redo log文件数量 默认是2个 ib_logfile0 ib_logfile1
相关文章推荐
- mysql的innodb中事务日志ib_logfile
- mysql的innodb中事务日志(redo log)ib_logfile
- Innodb的事务与日志 & JTA事务
- innodb事务日志ib_logfile
- mysql的innodb中事务日志ib_logfile
- mysql的innodb中事务日志ib_logfile
- mysql的innodb中事务日志ib_logfile
- mysql——innodb事务日志详解
- mysql的innodb中事务日志ib_logfile
- mysql的innodb中事务日志ib_logfile
- mysql的innodb中事务日志ib_logfile
- innodb事务日志详解
- mysql的innodb中事务日志ib_logfile
- "SQLserver 事务日志已满"解决方法
- InnoDB事务锁之行锁-delete的update阶段加锁流程图
- [sql server] 恢复完全备份、差异备份和事务日志备份
- mysql事务和锁InnoDB(转自http://www.cnblogs.com/zhaoyl/p/4121010.html)
- Mysql InnoDB事务的隔离级别
- 可视化zookeeper的事务日志(转)
- [置顶]SQL SERVER完整、差异和事务日志备份及还原(脚本和GUI实现) [原创]