2023-04-24 mysql-InnoDB 崩溃恢复过程

本文详细介绍了MySQL InnoDB在崩溃恢复时的主要流程,包括初始化崩溃恢复、恢复truncate操作、进入redo崩溃恢复逻辑、应用redo日志以及完成崩溃恢复等步骤。在恢复过程中,涉及redo和undo日志、事务子系统的初始化、binlog/InnoDB XA恢复等关键环节,确保数据库在崩溃后能正确恢复到一致状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面两期月报中,我们详细介绍了 InnoDB redo log 和 undo log 的相关知识,本文将介绍 InnoDB 在崩溃恢复时的主要流程。

本文代码分析基于 MySQL 5.7.7-RC 版本,函数入口为 innobase_start_or_create_for_mysql,这是一个非常冗长的函数,本文只涉及和崩溃恢复相关的代码。

在阅读本文前,强烈建议翻阅我们之前的两期月报:
1. MySQL · 引擎特性 · InnoDB undo log 漫游
2. MySQL · 引擎特性 · InnoDB redo log漫游

初始化崩溃恢复

首先初始化崩溃恢复所需要的内存对象:

        recv_sys_create();
        recv_sys_init(buf_pool_get_curr_size());

当InnoDB正常shutdown,在flush

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟世者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值