首页

文章

Mysql Innodb数据库误删除了文件,怎么恢复?

发布网友 发布时间:2022-04-20 00:14

我来回答

4个回答

热心网友 时间:2024-03-09 12:09

经常性备份,如果binlog在的话,试试看……
- 恢复策略
前面说到未提交的事务和回滚了的事务也会记录Redo Log,因此在进行恢复时,这些事务要进行特殊的的处理.有2中不同的恢复策略:
A. 进行恢复时,只重做已经提交了的事务。
B. 进行恢复时,重做所有事务包括未提交的事务和回滚了的事务。然后通过Undo Log回滚那些未提交的事务。
- InnoDB存储引擎的恢复机制
MySQL数据库InnoDB存储引擎使用了B策略, InnoDB存储引擎中的恢复机制有几个特点:
A. 在重做Redo Log时,并不关心事务性。 恢复时,没有BEGIN,也没有COMMIT,ROLLBACK的行为。也不关心每个日志是哪个事务的。尽管事务ID等事务相关的内容会记入Redo Log,这些内容只是被当作要操作的数据的一部分。

B. 使用B策略就必须要将Undo Log持久化,而且必须要在写Redo Log之前将对应的Undo Log写入磁盘。Undo和Redo Log的这种关联,使得持久化变得复杂起来。为了降低复杂度,InnoDB将Undo Log看作数据,因此记录Undo Log的操作也会记录到redo log中。这样undo log就可以像数据一样缓存起来,而不用再redo log之前写入磁盘了。

包含Undo Log操作的Redo Log,看起来是这样的:

记录1: <trx1, Undo log insert <undo_insert …>>

记录2: <trx1, insert …>

记录3: <trx2, Undo log insert <undo_update …>>

记录4: <trx2, update …>

记录5: <trx3, Undo log insert <undo_delete …>>

记录6: <trx3, delete …>

C. 到这里,还有一个问题没有弄清楚。既然Redo没有事务性,那岂不是会重新执行被回滚了的事务?确实是这样。同时Innodb也会将事务回滚时的操作也记录到redo log中。回滚操作本质上也是对数据进行修改,因此回滚时对数据的操作也会记录到Redo Log中。

一个回滚了的事务的Redo Log,看起来是这样的:

记录1: <trx1, Undo log insert <undo_insert …>>

记录2: <trx1, insert A…>

记录3: <trx1, Undo log insert <undo_update …>>

记录4: <trx1, update B…>

记录5: <trx1, Undo log insert <undo_delete …>>

记录6: <trx1, delete C…>

记录7: <trx1, insert C>

记录8: <trx1, update B to old value>

记录9: <trx1, delete A>

一个被回滚了的事务在恢复时的操作就是先redo再undo,因此不会破坏数据的一致性.
- InnoDB存储引擎中相关的函数
Redo: recv_recovery_from_checkpoint_start()
Undo: recv_recovery_rollback_active()
Undo Log的Redo Log: trx_undof_page_add_undo_rec_log()

热心网友 时间:2024-03-09 12:09

还原也是有节点的,
既然只有前5、6天的备份,那还原的话也只能还原到前5、6天的情况了。

个人认为:重要的数据备份的频率最好调高一点,以免出现问题时造成不必须的损失。

热心网友 时间:2024-03-09 12:10

数据非常重要的话建议还是找专业的地方恢复,自己尝试恢复的话很可能导致数据损坏无法恢复的

热心网友 时间:2024-03-09 12:10

bin-log也没了吗
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 mysql数据库错误删除了怎么恢复数据 mysql中的mysql数据库被删除怎么恢复 mysql数据库删除了怎么还原数据 MySQL 数据库被删了怎么办 mysql整个数据库被删除了怎么恢复 mysql的数据删除后怎么恢复 不小心删掉了mysql数据库怎么办 mysql数据库删除了怎么恢复 U盘中有部分内容不见了 mysql数据库被删除后怎么恢复 U盘内文件突然不见了,但是属性里面显示内存还占着... mysql删除被的数据库怎么还原? mysql删除数据库后怎么恢复 u盘里的文件不见了~但是还占着内存~求解决办法! 为什么U盘里的文件夹不见了 U盘中突然其中一个文件夹里的东西都不见了 U盘里隐藏的文件夹找不到了,怎么才能找回来? 我的u盘中有些文件夹找不到了,怎么查找出来 U盘里面的文件夹看不见了怎么办? U盘里面的文件夹看不见了怎么办.显示隐藏的也找不到 怎么恢复mysql数据表里刚刚删除的东西 mysql数据库被删除了,怎么恢复吗 mysql中的root账户不小心删除了,怎么恢复root用户 怎样找回MYSQL数据库中删除的数据 去学生会面试自我介绍怎么说? 文字,声音,图像,动画,视频,书包,报纸,电视,这八个中都是哪个是媒体 学生会面试时该怎么介绍自己 学生会面试自我介绍怎么说好 大学参加学生会面试怎么自我介绍 学生会面试自我介绍急急急急? ps怎样把图片上的字去掉但不影响图片 美图秀秀怎么去掉图片上的字 ps怎么将图片上的文字去掉 怎么把图片上的字去掉? 如何把图片上的文字去掉 怎么把图片上的字消除? 用ps怎么把图片上的字去掉 怎么将照片里面的字去掉 怎么把图片上的字去掉,不伤害原图?求帮助。 如何把图片上的字去掉
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com