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. vim插件配置(一)

    vim代码自动显示提示代码插件:AutoComplPop:  代码(普通变量函数) c/c++代码(类的 . , ->, :: 操作符)的自动补全插件: OmniCppComplete

  2. PHP - 直接输出对象的版本问题

  3. 【Eclipse】Tomcat 改变发布路径

    关闭服务,删除里面的所有项目,clean,然后双击服务,发布路径修改就可以点击了.当重新发布了项目后,发布路径修改的按钮又会恢复不可点击状态.

  4. gcc支持c99验证

    gcc3.0以上的版本都是支持C99标准的, 但是编译程序的时候需要加上    -std=c9  才可以: 一下程序是验证gcc是否支持c99标准的: #include <stdio.h> ...

  5. 使用Atlas实现MySQL读写分离+MySQL-(Master-Slave)配置

    参考博文: MySQL-(Master-Slave)配置  本人按照博友北在北方的配置已成功  我使用的是 mysql5.6.27版本. 使用Atlas实现MySQL读写分离 数据切分——Atlas读 ...

  6. 树莓派deian的linux常用命令

    Linux系统,这个强大的系统,现在树莓派也要用到.给大家普及一下. 那些常用的Linux命令 linux的文件结构 /   根目录下的目录 /bin /home /dev /usr /opt /et ...

  7. JMS和消息驱动Bean(MDB)

    一.说明 本示例使用的ActiveMQ作为消息中间件,服务器为Glassfish,使用JMS发送消息,在MDB接收到消息之后做打印输出. 二.ActiveMQ安装配置 1.安装console war包 ...

  8. 找球号(一)(hask表)

    找球号(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i<= ...

  9. CString——Left、Right、Find、ReverseFind

    CString--Left.Right.Find.ReverseFind http://hi.baidu.com/shawmar/item/08b30afb0f32d46f3c1485ec CStri ...

  10. linux定时调度器每秒运行一次

    linux操作系统最小粒度的定时调度器仅仅能调到分钟的级别,工作中有时需在到秒的调度,所以须要自己编写脚本来实现 #!/bin/bash while [ true ]; do /bin/sleep 1 ...