14.18.1 The InnoDB Recovery Process  InnoDB 恢复进程:

InnoDB crash recovery 有几个步骤组成:

1.应用redo log,Redo log 应用是第一阶段在初始化阶段执行,

在接收任何连接前。

如果所有的改变都从buffer pool 刷新到 tablespaces (ibdata* and *.ibd files)

在关闭或者crash 的时间点。

redo log 应用可以被跳过, 如果redo log files 在启动时候丢失,InnoDB 跳过redo log 应用。

删除redo logs 可以加速恢复过程,但不是推荐的,

即使如果一些数据的丢失是可以接受的。删除redo logs 只应在执行一个干净的关闭,

设置innodb_fast_shutdown set to 0 or 1.

回滚不完整的事务, 任何事务 在crash 或者fast shutdown 是活动的。

回滚的一个不完整的事务的时间可以是3或者4倍总量 一个事务活动的时间 在它被中断前,

依赖server 负载。

你不能cancel 事务,处于正在回滚的进程。在极端情况下,

当回滚事务语句需要很长的时间, 可能更快设置innodb_force_recovery 为3或者更大

Change buffer  合并:  应用changes 从change buffer(system tablespace的一部分)

到secondary indexes的leaf pages, 当index pages 是被读入到Buffer pool

清除: 删除标记删除的记录,对于任何活动事务不在可见

遵循redo log 应用不依赖redo log(除了日志写入),以并行执行那些普通的处理

只有不完整事务的回滚是指定crash recovery.

insert buffer merge和purge 是执行的在普通的处理中。

在redo log 应用中,InnoDB 尝试接收连接连接尽可能的早,

降低停机时间。 作为crash recovery的一部分,InnoDB回滚任何事务 没有提交的

或者在XA 准备阶段当server crashed.

回滚时通过一个后台thread执行, 与新的连接的事务平行执行。

直到回滚完成,新的连接可能遇到locking 冲突 在回滚事务阶段

在大多数情况下, 如果MySQL server 被意外killed 在一个严重负载期间,

recovery 进程会自动发生,DBA不需要做任何事情,

MySQL 可能拒绝启动, 在那种情况下

14.18.1 The InnoDB Recovery Process InnoDB 恢复进程:的更多相关文章

  1. 14.18 InnoDB Backup and Recovery 备份和恢复:

    14.18 InnoDB Backup and Recovery 备份和恢复: 安全数据库管理的关键是 做定期的备份,依赖你的数据卷, MySQL server的数量和数据库的负载,你可以使用那些技术 ...

  2. 14.6.1 Creating InnoDB Tables 创建InnoDB 表:

    14.6.1 Creating InnoDB Tables 创建InnoDB 表: 创建一个InnoDB 表,使用CREATE TABLE 语句,你不需要指定 ENGINE=InnoDB子句 如果In ...

  3. 14.8.11 Physical Structure of an InnoDB Index InnoDB Index 的物理结构

    14.8.11 Physical Structure of an InnoDB Index InnoDB Index 的物理结构 所有的InnoDB indexes 是 B-trees Index r ...

  4. 14.8.3 Physical Row Structure of InnoDB Tables InnoDB 表的物理行结构

    14.8.3 Physical Row Structure of InnoDB Tables InnoDB 表的物理行结构 一个InnoDB 表的物理行结构取决于在创建表指定的行格式 默认, Inno ...

  5. 14.8.1 Creating InnoDB Tables 创建InnoDB 表

    14.8.1 Creating InnoDB Tables 创建InnoDB 表 创建一个InnoDB表,使用CREATE TABLE 语句,你不需要指定ENGINE=InnoDB 子句 如果Inno ...

  6. 14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小

    14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小 这个章节描述如何增加或者减少 InnoDB 系统表空间的大小 增加InnoDB ...

  7. 14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB

    14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB 14.6.11.1 Configuring Persisten ...

  8. 14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发

    14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发 InnoDB 使用操作系统线程来处理请求(用户事务) 事务可能执行很多次在它们提交或者回 ...

  9. 14.1.2 Checking InnoDB Availability 检查InnoDB 可用性:

    14.1.2 Checking InnoDB Availability 检查InnoDB 可用性: 确认你的server 是否支持InnoDB,使用 SHOW ENGINES 语句.(默认MySQL的 ...

随机推荐

  1. PyQt中如何隐藏Menu

    PyQt中隐藏一个Menu Item,可以通过QAction的setVisible(False)来设置,而QMenu的setVisible(False)是不管用的. 现在问题来了,我们有一个菜单,它有 ...

  2. iOS字符串NSString中去掉空格(或替换为某个字符串)

    http://blog.sina.com.cn/s/blog_6f29e81f0101qwbk.html [问题描述]       今天请求服务器返回的字段中含有空格,这空格是服务器开发人员不小心往数 ...

  3. form的验证用法

    models.py forms.py html页面 第二种方法: 不继承model直接自定义内容 获得内容: if form.is_valid():            price = reques ...

  4. Ajax辅助方法

    目前为止,我们已经考察了如何编写客户端JavaScript代码,以发送并接受服务器的数据.然而,在使用ASP.NET MVC时,还有另一种方法可用来执行Ajax调用,这就是Ajax辅助方法. Ajax ...

  5. tomcat配置管理用户名密码

    tomcat6默认是将用户是注释的 配置文件在根目录下/conf/tomcat-users.xml文件中 配置默认如下: <!--  <role rolename="tomcat ...

  6. iframe,window,滚动栏的一些问题

    1.Iframe不显示边框:frameborder=0 2.Iframe不显示横向滚动栏:在iframe所指向的页面增加: <style> html{overflow-x:hidden;} ...

  7. Android 系统稳定性 - ANR(一)

    文章都为原创,转载请注明出处,未经允许而盗用者追究法律责任.很久之前写的了,留着有点浪费,共享之.编写者:李文栋  如果你是一个Android应用程序开发人员,你的人生中不可避免的三件事情是:死亡.缴 ...

  8. iOS UITextField垂直居中

    textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

  9. ie6下常见的bug 调整页面兼容性

    ie6下常见的bug 我们布局页面,首先符合标准,如何写一个页面的标准性? 但是ie6等浏览器本身就比较特殊,bug比较多,兵法云,知己知彼百战百胜.我们需要了解ie6的一些常见bug,这样,更好的调 ...

  10. 浙江大学PAT上机题解析之3-05. 求链式线性表的倒数第K项

    给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式说明: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出 ...