IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:数据恢复

共 14 篇相关文章

IT 累计浏览 50

.[xueyuanjie@onionmail.org].AIR勒索加密数据库恢复

文章记录了Oracle数据库遭遇.[xueyuanjie@onionmail.org].AIR勒索加密后的恢复过程。数据库运行在Windows系统上,被加密破坏了前32个数据块,包括文件头和位图信息,但业务数据从block 128开始存储,未受影响。恢复开始时使用obet工具检测坏块,确认损坏范围。接着应用OraFHR工具快速重构文件头,该工具能一键生成恢复脚本。执行SQL命令启动数据库实例、重建控制文件,并通过alter database open resetlogs打开数据库。随后创建新表空间expdptbs,使用expdp导出数据完成恢复。案例展示了在数据未被完全加密的情况下,利用专业工具和标准SQL操作恢复数据库的关键步骤,对类似勒索软件攻击下的应急响应具有重要参考价值。

IT 累计浏览 46

OraScan(Oracle 碎片扫描工具) 使用说明

OraScan是由惜分飞自主研发的专业Oracle数据库碎片恢复工具,核心功能是扫描磁盘上未被覆盖的Oracle数据块,解决数据文件无法正常恢复的问题。该工具适用于多种紧急场景,包括文件系统损坏无法访问数据文件、误删除数据文件且操作系统工具无法恢复、断电或文件系统故障导致文件大小异常、小文件覆盖大数据文件,以及需要扫描磁盘上所有未被覆盖的数据块。环境适配方面,OraScan提供两个版本:OraScan_Net2.exe适用于.NET Framework 2.0/3.0/3.5,兼容Windows Server 2008及更早系统;OraScan_Net4.exe适用于.NET Framework 4.0及以上,兼容Windows Server 2012及更新系统。支持Oracle 9i及以后所有版本,数据块大小可选4k、8k、16k、32k,需与数据库实际块大小一致。使用流程分为多个步骤:首先选择扫描对象,可以是磁盘设备或镜像文件,注意扫描镜像时不要勾选“设备”选项;然后执行碎片扫描,设置块大小、偏移量等参数,扫描完成后自动生成scandata文件夹和Oracle_Block.map文件;接着加载并解析扫描结果,显示数据文件列表;最后可提取数据文件或碎片,提取前可能需要授权。工具还提供筛选功能,允许用户按文件号和block范围精准查找碎片。注意事项包括确保环境版本匹配、保留扫描生成文件、及时联系技术支持解决授权或操作问题。OraScan作为一款针对性强的恢复工具,在数据库故障恢复中具有实用价值,但使用需遵循步骤以确保恢复成功率。

IT 累计浏览 2,576

这几年在存储上犯的错

这篇讲的是作者从亲身经历出发,分享这些年在存储和运维上踩过的真实大坑。文章从一起线上数据误删事件切入,没有说教,而是直接讲述了几个让作者“想死的心都有”的故障现场:比如用错误配置上线,瞬间拖垮了整个数据库集群;在恢复误删数据时,不慎将 DROP TABLE 命令也一并执行,导致只恢复出了一个豆列;以及在进行数据库主从切换时,因与同事短暂交谈分心,在从库同步未追平的情况下就进行了操作,最终引发数据冲突。 每个案例都像一部微型灾难片,详细描述了错误的决策瞬间、连锁反应以及在巨大精神压力下的补救过程。作者坦诚地剖析了背后的直接原因,例如对配置项的误解(SET GLOBAL SQL_LOG_BIN)、脚本操作的风险以及流程中的侥幸心理。 文章的结尾给出了沉痛而实用的教训:“备份不做,日子甭过”,并强调了任何危险操作都应确保可回滚,工具应该比人更可靠。它并非一篇技术方案,而是一面镜子,照见了运维工作中那些不可避免的“人为因素”,也体现了团队在危机中相互支持的宝贵文化。对于每一位需要和线上系统打交道的工程师,这都是一次难得的经验共情。

IT 累计浏览 1,911

删库跑路救命策略

这篇文章从作者亲身经历的“血泪教训”出发:休假期间因备份脚本的字符集设置错误,导致数据回滚失败,最终背锅降绩效。基于这次事故,作者系统梳理了MySQL误删数据的常见“坑”、预防措施以及紧急恢复方案。 预防篇提出了五条实用建议,比如将 `rm` 改为 `mv`、删除对象先 `rename` 归档、操作前善用事务与小批量验证等,核心在于培养操作习惯并保持敬畏之心。恢复篇则针对误删库表、物理文件被删、未提交事务的 `delete` 等不同场景,给出了从“立刻 kill 进程”到利用 `innodb_force_recovery` 启动恢复模式等具体的急救步骤。 文章结尾强调,无论平台如何发展,物理与逻辑备份都是不可替代的底线。这篇分享将事故复盘与实战经验结合,对所有涉及数据库操作的人员都是一次生动的安全警示。

IT 累计浏览 2,524

MySQL drop database恢复(恢复方法同样适用MySQL drop table,delete,truncate table)

这篇讲的是一个真实的数据库灾难恢复案例。作者从一起线上事故切入:有人误点了产品软件的“清空数据”功能,导致一个MySQL数据库被直接执行了drop database操作,且事前没有任何备份。情况很紧急,但处理思路很清晰——立刻封存现场,将核心的InnoDB表空间文件ibdata1备份了出来。 接下来,作者借助专业的MySQL recovery工具,对这个18MB的ibdata1文件进行了深度解析。文章中展示了使用stream_parser工具扫描和提取数据的命令行过程,这是恢复的关键第一步。经过6个小时的分析和处理,最终的核心成果是:实现了核心数据的零丢失。 这个案例的价值不仅在于给出了drop database后的具体恢复路径,也印证了这类误操作在数据库管理中并非个例。它提醒我们,即便在高度自动化的系统中,对“清空数据”这类高危功能的设计和权限控制需要格外谨慎,而及时、有效的应急响应和文件级备份(而非仅依赖逻辑备份)在极端情况下可能是最后的救命稻草。

IT 累计浏览 1,341

[MySQL异常恢复]无主键情况下innodb数据恢复

这篇讲的是,当MySQL InnoDB数据库发生异常需要恢复时,一个常见的“坑”:通常恢复工具都假定表必须有主键或唯一索引,否则就无从下手。文章指出这其实不是绝对的死路。 核心在于,即便没有用户定义的索引,InnoDB也为每个表维护了一个内部的`index_id`。这个ID贯穿数据文件,是定位数据页的线索。作者从这个突破点出发,详细演示了如何在无主键的场景下进行数据恢复。 他通过创建一个真实的无主键表,并插入了32万余行数据来模拟故障现场。随后,文章逐步展示了使用工具解析ibdata1系统表空间文件的过程。关键步骤在于,如何从解析结果中筛选出对应表的`index_id`,并以此为线索重组数据。 这种方法为那些因设计疏忽或特殊原因未设主键的数据库,在遭遇崩溃时提供了一条可行的抢救路径,避免了数据彻底丢失的风险。

IT 累计浏览 5,459

通过odu验证rman backup对于truncate对象备份处理

这篇讲的是 Oracle 数据库中 RMAN 备份机制的一个容易被忽略的细节。作者从实际现象出发,聚焦于一个关键问题:当表被 truncate 或 drop 后,RMAN 在后续备份中,到底是否会像我们通常认为的那样,完整地处理这些已经不属于活跃数据的 extent?为了彻底弄清楚这一点,作者没有停留在理论层面,而是采用 RMAN 结合 ODU(Oracle 数据库恢复工具)进行实际验证。 实验揭示了一个值得警惕的发现:在较新版本的 RMAN 中,其备份行为与许多 DBA 的预期并不一致。对于 truncate 操作后的表空间 extent,RMAN 并未将其全部纳入备份范围。这意味着,如果依赖 RMAN 备份来恢复被错误 truncate 的数据,结果可能并不完整。这一结论直接挑战了某些常规认知,提醒我们在制定备份恢复策略时,必须对工具的具体行为有更精确的把握,而不能想当然。文章通过扎实的实验给出了一个具体的“坑”,对于从事 Oracle 运维的读者来说,这是一个需要纳入知识库的重要提醒。

IT 累计浏览 4,037

尝试mysqlbinlog的flashback功能

这篇文章讲述了作者在实际项目中如何利用 mysqlbinlog 的 flashback 功能,实现对误操作数据的快速回滚。作者首先分享了在业务高峰期一次不慎的 DELETE 操作带来的风险,随后深入介绍了 flashback 功能的原理——它通过逆向解析 binlog,生成与原操作相反的 DML 语句,从而精准撤销错误操作。 文章不仅演示了具体的命令与参数配置,还对比了该功能与传统备份恢复方案的效率差异,特别强调了其在时间窗口和数据一致性上的优势。作者通过回滚一个包含数万行数据的表,验证了功能的有效性,并总结了适用场景与潜在限制。对于数据库运维人员而言,这篇实践分享提供了一个直接可用的数据恢复思路。

IT 累计浏览 3,260

MySQL闪回方案讨论及实现

这篇讲的是如何为MySQL数据库实现类似Oracle的“闪回”功能,以应对主从复制环境下无法阻止的误操作,比如误删表或全表更新。 作者从一个实际痛点出发:即使搭建了主从,实时备份也无法恢复逻辑误操作。文章核心方案是利用row-based格式的binlog来实现闪回,因为只有在这种格式下,binlog才会记录数据变更前后的完整行信息。 对于常规的增删改操作,思路很巧妙:通过反转binlog事件的类型和内容——把INSERT事件变成DELETE,把DELETE事件变成INSERT,再把UPDATE事件中的新旧行数据对调——就能生成可以“逆操作”的闪回日志。而对于ALTER TABLE、DROP TABLE这类DDL操作,仅靠binlog的语句记录则无能为力。文章提出的补充方案是,在执行这类可能删除数据的DDL前,先将原表数据备份到一个历史表中,并自定义一种FLASHBACK_EVENT事件来记录恢复步骤。 最终,通过修改mysqlbinlog工具并添加这种事件类型,就能按表、按时间点反向执行这些操作,安全地恢复数据。方案最大的优点是,这些修改不会影响原生的binlog工具使用,也不会对线上正常操作的性能带来额外负担。

IT 累计浏览 4,470

MySQL数据库InnoDB数据恢复工具使用总结

面对误执行`DROP TABLE`、`TRUNCATE`或`DROP DATABASE`这类数据库“噩梦”,这篇文章分享了一个切实可用的开源工具——innodb-tools。作者从实际恢复经验出发,介绍了如何利用它从原始的InnoDB表空间文件中,直接提取并重组行记录,从而挽救那些已被删除或损坏的表数据。 文章没有停留在理论层面,而是聚焦于“如何用这个工具救命”。它详细说明了该工具的工作原理:绕过MySQL服务层,直接解析底层数据文件,将散落在页(page)中的记录碎片拼接回来。对于遭遇过数据丢失的DBA或开发者而言,这提供了一个重要的兜底恢复思路。 当然,工具的有效性严重依赖于数据文件本身是否仍完好,以及误操作后服务器的写入量。文章隐含地提醒读者,这类恢复是“争分夺秒”且充满不确定性的最后手段,核心仍在于预防和健全的备份策略。

IT 累计浏览 4,479

Oracle数据恢复 - Linux / Unix 误删除的文件恢复

这篇讲的是一个真实的运维踩坑案例:在Linux/Unix环境下误删除了Oracle数据库的关键数据文件后,如何进行抢救恢复。 作者从一起具体的误操作事故切入,详细还原了故障现场。当关键数据文件被意外删除(比如通过`rm`命令),但数据库实例(Instance)并未关闭时,数据库并不会立即崩溃,因为其所需的文件句柄(File Handle)依然被进程持有。此时,操作系统层面的文件虽已删除,但数据在物理磁盘上并未立即消失。 文章的核心价值在于给出了一套可操作的恢复路径。根因在于理解文件系统的“逻辑删除”与“物理删除”之间的时差,而解决思路正是利用这个时差窗口。具体步骤涉及找到并重启数据库实例至特定状态,利用文件描述符(File Descriptor)从`/proc`目录下定位已被删除文件的磁盘块,再通过底层工具如`dd`进行数据抢救和重建。文章强调了此类操作的时效性与复杂性,重在理清从文件句柄、进程状态到磁盘数据块的恢复链条,为DBA提供了一次从事故中学习的完整过程。

IT 累计浏览 3,320

Oracle数据恢复:格式化,Raid损坏,文件覆盖恢复

这篇讲的是Oracle数据库在遇到极端故障后的实战恢复案例集合。作者从三个真实客户场景出发,记录了格式化、RAID损坏以及文件覆盖这三种棘手情况下,数据是如何被成功挽救的。 对于“格式化”场景,文章深入到了存储底层,介绍了如何通过特殊的扫描与重组技术,在文件系统元数据已破坏的情况下,找回关键的数据库文件。而在“RAID损坏”的案例里,焦点则转移到了存储阵列层面,剖析了在RAID卡或成员盘故障后,如何结合存储日志与Oracle自身的容灾机制进行一致性重建。最令人印象深刻的是“文件覆盖”的恢复,这通常是最危险的情况,作者详细说明了利用Oracle的闪回技术与时间点恢复,如何将数据库精准回滚到误操作前的状态,最大程度减少了业务损失。 这些案例不仅展示了各种高难度恢复手段的原理,更重要的是复盘了从故障发生到方案制定的完整思考路径。对于从事数据库运维或架构的团队来说,这些踩坑记录和应对策略,提供了非常具体且可参考的应急处理蓝本。

IT 累计浏览 4,734

恢复删除的数据表,数据库

这篇文章聚焦于一个常见但棘手的数据恢复场景:当管理员在执行恢复操作时,不慎误删了整个数据表或数据库,导致原有数据丢失。作者指出,即便在此刻紧急求助于专业的InnoDB数据恢复工具,往往也无力回天。根本原因在于,若此前配置了独立表空间(innodb-file-per-table),那么存放表结构与数据的整个目录都会被一并删除,使得恢复工具无从下手。 同样的问题也发生在MyISAM引擎的表上。删除操作不仅会清空数据,还会连带删除所有关键的.MYD(数据文件)、.MYI(索引文件)以及.frm(表结构)文件,造成彻底的数据孤岛。这篇文章的价值在于,它通过具体的技术细节(如不同存储引擎的文件结构)清晰揭示了为何某些“删除”操作会带来不可逆的后果。对于所有需要进行数据库维护或恢复的工程师而言,这更像一个必须重视的警示:在执行任何涉及删除的高风险操作前,务必确认备份完备,并深入理解所使用存储引擎的数据存储机制。

IT 累计浏览 3,579

Oracle9i中如何恢复误删除数据?

这篇讲的是一个让很多DBA或开发人员心头一紧的场景:在Oracle9i环境中,不小心执行了删除操作,导致重要数据丢失。文章聚焦于这个紧急问题,没有泛泛而谈数据库原理,而是直接针对Oracle9i这个特定版本,给出了具体的恢复路径。 核心方法是利用Oracle的闪回查询(Flashback Query)特性,通过查询指定时间点或SCN(系统变更号)的数据状态,来还原误删的记录。文章会详细说明如何精确地构建查询语句,找到数据被删除前的那个“时间切片”,并将其重新插入表中。这对于尚未升级到拥有更完善闪回功能的较新版本的系统来说,是一套非常实用的应急方案。 作者不仅列出了步骤,也提示了该方案生效的几个前提条件,比如Undo表空间需要足够大且保留时间设置得当。这对于实际操作至关重要,避免了用户按照步骤操作却发现数据早已被覆盖的窘境。整体来看,这是一份针对特定版本、解决具体痛点的操作手册。