崆蛾寺 发表于 2026-1-17 12:10:01

在生产环境错误执行dd命令破坏asm磁盘故障恢复---惜分飞

由于ssh登录错误,客户对生产环境进行了误操作把系统的一块磁盘dd到另外两个磁盘上,由于及时发现立马进行了终止操作,但是还是分别破坏了一点数据(一块盘破坏了2G多,另外一块盘破坏了1G多)

通过分析udev的绑定关系确认被破坏的asm disk名称

再通过asm alert日志确认破坏磁盘在asm disk中情况

通过上述信息基本上可以确认,asmdisk13被分别dd到了asmdisk11和asmdisk26中了部分

基于这种情况,由于asm disk被破坏了1-2G多,直接修复然后正常mount磁盘组基本上没有希望,经过分析以及与客户沟通,确认他们改系统是4节点组成的集群,1/2节点上面跑2套库,3/4节点上跑2套库,数据整体放在data_dg磁盘组中,需要恢复的库是第二个顺序创建的1套库(4套库中只需恢复一套即可),由于破坏的数据本身不多,而且需要恢复的数据不是最初写入asm磁盘组,基于这样的情况,需要恢复的数据库机会比较大.

由于现在三个磁盘头信息一致(一个磁盘被dd到另外两个磁盘上),因此第一步先把损坏的两个磁盘头进行简单修复,为了便于amdu(找回ASM中数据文件)等之类数据可以识别到正确的磁盘头信息,然后进行后续的数据文件提取恢复.使用工具对数据文件进行了批量提取,提取数据完成之后,尝试recover和open库

虽然数据库正常打开了,不过很不幸,后台还是有一些坏块报错,通过dbv检查发现有文件有一部分坏块,类似dbv报错信息

通过分析该文件在磁盘组中各个磁盘的分布情况

确认该文件确实有部分block分布在被dd磁盘的破坏的范围内这个部分的数据丢失无法挽回,只能是定位到具体对象然后由业务想办法处理.相对以往的各种dd破坏的案例恢复而言,这个应该是效果比较好的一个,而且也是恢复比较容易的一个,没有使用到asm disk 基于asm au/oracle block 扫描的级别,而且system表空间没有任何损坏,数据库甚至直接open成功了,以往的一些dd案例列举:
asm磁盘dd破坏恢复
dd破坏asm磁盘头恢复
asm disk 磁盘部分被清空恢复
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

刘凤 发表于 2026-1-18 07:11:41

热心回复!

即息极 发表于 2026-1-19 12:39:49

谢谢分享,试用一下

孜稞 发表于 2026-1-22 04:23:58

感谢分享,下载保存了,貌似很强大

碛物 发表于 2026-1-27 03:04:17

谢谢分享,辛苦了

役魅肋 发表于 2026-1-29 05:00:46

懂技术并乐意极积无私分享的人越来越少。珍惜

更成痒 发表于 2026-2-2 02:18:58

喜欢鼓捣这些软件,现在用得少,谢谢分享!

锄淫鲷 发表于 2026-2-4 05:55:38

鼓励转贴优秀软件安全工具和文档!

喳谍 发表于 2026-2-5 04:18:43

懂技术并乐意极积无私分享的人越来越少。珍惜

史华乐 发表于 2026-2-5 09:08:54

分享、互助 让互联网精神温暖你我

古修蟑 发表于 2026-2-8 03:22:58

谢谢分享,试用一下

威割 发表于 2026-2-8 07:37:32

过来提前占个楼

墨淳雅 发表于 2026-2-9 01:05:47

谢谢分享,辛苦了

思矿戳 发表于 2026-2-10 19:06:40

谢谢楼主提供!

氛疵 发表于 2026-2-12 17:05:38

这个好,看起来很实用

渭茱瀑 发表于 2026-2-12 21:55:13

东西不错很实用谢谢分享

类饲冰 发表于 2026-2-12 23:03:25

用心讨论,共获提升!

晖顶蝇 发表于 2026-2-25 08:11:01

感谢分享,学习下。

煅圆吧 发表于 2026-3-5 03:48:49

感谢分享,下载保存了,貌似很强大

忆雏闲 发表于 2026-3-6 14:49:44

感谢分享,学习下。
页: [1] 2
查看完整版本: 在生产环境错误执行dd命令破坏asm磁盘故障恢复---惜分飞