在mysql的配置文件my.cnf里找到 [mysqld]字段下,添加 innodb_force_recovery = 1如果innodb_force_recovery = 1不生效,则可尝试2——6几个数字然后重启mysql,重启成功。然后使用mysqldump或 pma 导出数据,执行修复操作等。修复完成后,把该参
转载
2023-06-25 11:52:59
317阅读
概述数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证。下面简单介绍一下InnoDB的崩溃恢复流程。相关概念 lsn: 可以理解为数据库从创建以来产生的redo日志量,这个值越大,说明数据库的更新越多,也可以理解为更新的时刻。此外,每个数据页上也有
转载
2023-08-25 23:37:43
130阅读
MySQL · 引擎特性 · InnoDB 崩溃恢复过程在前面两期月报中,我们详细介绍了 InnoDB redo log 和 undo log 的相关知识,本文将介绍 InnoDB 在崩溃恢复时的主要流程。本文代码分析基于 MySQL 5.7.7-RC 版本,函数入口为 innobase_start_or_create_for_mysql,这是一个非常冗长的函数,本文只涉及和崩溃恢复相关
转载
2023-12-07 17:13:17
76阅读
随着DedeCMS、PHPCMS、帝国、Discuz!、PHPWIND、WordPress等知名web管理系统的普及,Mysql数据库的应用逐渐广泛起来,关于Mysql产生的问题也越来越多,今天烈火网小编恰巧在無淚之城的博客看到《系统崩溃后MySQL数据库恢复手记》一文,特别转载给大家一起分享,感谢作者的辛苦劳动。原文如下:创E的服务器在前段时间因为硬件问题彻底崩溃了,得到网络中心的支持将服务器迁
概述数据库系统与文件系统很大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证。下面简单介绍一下InnoDB的崩溃恢复流程。相关概念lsn: 可以理解为数据库从创建以来产生的redo日志量,这个值越大,说明数据库的更新越多,也可以理解为更新的时刻。此外,每个数据页上也有一个lsn,表
转载
2024-06-25 20:11:06
102阅读
MySQL为了提高性能,你对它数据行的增、删、改操作其实都优先发生在内存(Buffer Pool)中。那你想,假如你update了某些数据,Buffer Pool中的数据页也就会被你改成脏数据页。那万一你刚修改完并提交了事物,还没来得及将数据落盘MYSQL就宕机了怎么办? 当MySQL重启的时候需要把方才修改的内容恢复出来吧,不然数据就不一致了。那怎么恢复呢?就借助redo log恢复。因为前面说
转载
2023-08-18 13:58:11
99阅读
天有不测风云,数据库有旦夕祸福。前面写 Redo 日志的文章介绍过,数据库正常运行时,Redo 日志就是个累赘。现在,终于到了 Redo 日志扬眉吐气,大显身手的时候了。本文我们一起来看看,MySQL 在崩溃恢复过程中都干了哪些事情,Redo 日志又是怎么大显身手的。本文介绍的崩溃恢复过程,包含 server 层和 InnoDB,不涉及其它存储引擎,内容基于 MySQ
转载
2023-08-11 18:42:09
1237阅读
点赞
简要记录跟踪代码,很多代码流程没有细细的跟进去,只是了解了个大概,杂七杂八,还有太多不了解的地方。不过,一知半解总比一无所知要好点…sign… 一、innobase_init 1.初始化存储引擎接口函数、检查指定的page大小(innodb_page_size,Percona版本支持16k以下的page size定义)、innodb_log_block_size。
转载
2024-05-24 23:03:36
49阅读
在恢复的时候,最理想的情况就是你的数据文件和日志文件都完好无损了,这样只需要sp_attach_db,把数据文件附加到新的数据库上即可,或者在停机的时候把所有数据文件(一定要有master等)都copy到原有路径下也行,不过一般不推荐这样的做法,sp_attach_db比较好,虽然麻烦许多。 但是呢,一般数据库崩溃的时候系统是未必能有时间把未完成的事务和脏页等写入磁盘的,这样的情况sp_at
转载
2024-06-17 23:06:36
57阅读
作者:宋利兵0、导读本文介绍了InnoDB引擎如何利用Undo Log和Redo Log来保证事务的原子性、持久性原理,以及InnoDB引擎实现Undo Log和Redo Log的基本思路。00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,采用Undo Log来实现多版本并发控制(简称 MVCC)。- 事务的原子性(Atomicity)
转载
2023-09-29 17:58:06
81阅读
环境部署与故障原因:客户本地服务器,操作系统为windows2008 r2 。在当前环境内安装有mysql5.6单实例,引擎类型为innodb,表内数据存储所使用表空间类型为独立表空间。未进行数据库备份,未开启binlog。由于人为误操作使用Delete命令进行删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。恢复方案制定:1、故障类型分类:在本案例中,由于未对
转载
2023-11-25 12:41:48
77阅读
# MySQL MGR 崩溃后的恢复流程
## 引言
MySQL MGR(MySQL Group Replication)是一种用于构建高可用性和高扩展性的解决方案。当MGR遇到崩溃或故障时,需要进行相应的恢复操作,以确保数据的一致性和可用性。本文将详细介绍MySQL MGR崩溃后的恢复流程,并提供相应的代码示例和注释说明。
## MySQL MGR 崩溃后的恢复流程
下面是MySQL MGR
原创
2023-12-26 07:52:21
230阅读
SQL的全称是Structured Query Language,翻译成中国话就是结构化查询语言。这是一种声明式的语法,何为声明式?可以联想一下我们生活中的老板,老板在布置任务的时候会告诉你:小王啊,今天把这些砖从A地搬到B地啊,然后就没然后了。老板并不关心你是用手抬,还是用车拉,老板只关心结果:你把砖搬过去就好了。我们之于数据库而言,就是一个老板,SQL语句就是我们给数据库下达的任务,至于具体数
转载
2024-10-23 23:07:30
34阅读
本文将结合MySQL 8.0.19 分析InnoDB崩溃恢复的拉起过程,包括恢复前的准备工作,redo回放,undo回滚,以及崩溃恢复后Crash Safe DDL的实现。其中重点介绍redo的回放。 整体的代码流程如下,InnoDB崩溃恢复的流程是从srv_start, innobase_dict ...
转载
2021-09-23 23:54:00
297阅读
2评论
本文将结合MySQL 8.0.19 分析InnoDB崩溃恢复的拉起过程,包括恢复前的准备工作,redo回放,undo回滚,以及崩溃恢复后Crash Safe DDL的实现。其中重点介绍redo的回放。整体的代码流程如下,InnoDB崩溃恢复的流程是从srv_start, innobase_dict_recover ,ha_post_recover这三个函数中展开,后文会详细介绍。 |-->
转载
2023-10-24 07:43:31
151阅读
本文将结合MySQL 8.0.19 分析InnoDB崩溃恢复的拉起过程,包括恢复前的准备工作,redo回放,undo回滚,以及崩溃恢复后Crash Safe DDL的实现。其中重点介绍redo的回放。整体的代码流程如下,InnoDB崩溃恢复的流程是从srv_start, innobase_dict_recover ,ha_post_recover这三个函数中展开,后文会详细介绍。|-->my
转载
2023-08-23 20:31:45
193阅读
前言数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证。本文仔细剖析了InnoDB的崩溃恢复流程,代码基于5.6分支。基础知识***lsn: *** 可以理解为数据库从创建以来产生的redo日志量,这个值越大,说明数据库的更新越多,也可以理解为更新的时刻。此外
转载
2024-02-20 11:33:21
42阅读
在MySQL5.7之前的版本中, InnoDB每次做crash recovery之前都需要扫描数据目录,打开每个文件并创建内存对象。当目录下文件个数特别多时,会严重影响到崩溃恢复的速度。为了解决这个问题,MySQL5.7通过结合checkpoint + 标注被修改的文件的方式,从一个checkpoint点开始,可以找到所有崩溃恢复需要打开的文件,从而避免扫描数据目录。本文简单的记录了相关的代码,以
转载
2024-06-19 17:39:35
92阅读
在之前的文章「简单了解InnoDB底层原理」聊了一下MySQL的Buffer Pool。这里再简单提一嘴,Buffer Pool是MySQL内存结构中十分核心的一个组成,你可以先把它想象成一个黑盒子。黑盒下的更新数据流程当我们查询数据的时候,会先去Buffer Pool中查询。如果Buffer Pool中不存在,存储引擎会先将数据从磁盘加载到Buffer Pool中,然后将数据返回给客户端;同理,
转载
2024-05-18 17:17:16
78阅读
摘要:Crash恢复的正确方式是:备份文件(逻辑或物理)+ binlog进行恢复;然而并不是所有的运维人员都知道怎么进行正确的备份,甚至连逻辑备份和物理备份的区别是什么都不知道?更不知道备份过程中需要考虑数据的一致性与服务可用性的问题?或者连备份工具都不会使用,所以当你问:有备份吗?回答:没有或者无效本次分析案例我们将以如下背景情况进行开展:数据库因存储空间不够导致数据库服务宕掉,而在数据库宕机后
转载
2023-09-07 21:16:28
79阅读