0

0

如何恢复损坏的ASM磁盘头_kfed工具修复与AMDU数据抽取

P粉602998670

P粉602998670

发布时间:2026-03-11 18:09:33

|

553人浏览过

|

来源于php中文网

原创

能,kfed可读出原始结构,前提是磁盘物理完好且头部未被覆写;它直接读取LBA 0的1024字节,前512字节有效,magic号(0x6B666564)损坏会导致KFED-00322错误,但后续信息可能仍可用。

ASM磁盘头损坏后,kfed还能读出原始结构吗?

能,但前提是磁盘物理未坏、头部未被覆写。asm磁盘头固定在lba 0(第一个扇区),kfed直接读取该位置的1024字节元数据;只要这512字节(实际有效头是前512字节)没被dd清零或覆盖,kfed read大概率能解析出ausizedisk numberfailgroup等关键字段。

常见错误现象:kfed read /dev/oracleasm/disks/DISK01报错KFED-00322: Invalid ASM disk header block magic number——说明magic(0x6B666564)已损坏,但后续扇区可能仍存有可用信息。

  • 必须用root或ASMLIB权限运行,普通用户会提示Permission denied
  • 别对裸设备执行kfed repair,它不校验逻辑一致性,强行写入可能让ASM实例拒绝挂载
  • 若磁盘已加入diskgroup且实例在线,先ALTER DISKGROUP ... DROP DISK再操作,否则kfed读出的state字段可能被缓存污染

kfed merge恢复磁盘头时,哪些字段绝对不能填错?

kfed merge本质是把一个“模板头”覆盖到目标磁盘开头,它不智能推导参数,全靠你提供正确值。填错任意一项,ASM实例启动时就会报ORA-15018: diskgroup cannot be created或挂载失败。

必须核对的字段(从完好磁盘用kfed read提取):

  • dsknum:必须与原磁盘编号一致,否则ASM认为这是新盘,可能触发rebalance
  • grpnum:对应diskgroup的group number,错则无法归属到原有DG
  • ausize:单位字节(如1M=1048576),与CREATE DISKGROUP ... ATTRIBUTE 'au_size'='1M'严格匹配
  • fgrpnum:failgroup编号,多副本场景下影响冗余分布,填错会导致ALTER DISKGROUP ... ADD FAILGROUP失败

示例:从备份头文件header.bak恢复时,命令为kfed merge /dev/oracleasm/disks/DISK01 fname=header.bak,其中header.bak必须是同一环境、同版本ASM生成的头备份。

kfed完全失效,为什么优先选amdu而不是stringsdd手工拼?

amdu是Oracle官方工具,它不依赖磁盘头,而是扫描整个磁盘寻找ASM元数据块(AU中的metadata block),自动识别alias directoryfile directory、甚至data file extent map。而strings /dev/xxx | grep ORCL只能捞出碎片化路径名,dd手工拼header则是赌运气。

银河易创
银河易创

一站式AIGC创作平台,集成GPT-3.5、GPT-4、文心一言等对话模型、Midjourney、DallE等绘画工具、AI音乐、AI视频和AI PPT等功能!

下载

使用场景明确:

  • 磁盘头彻底损坏(kfed read返回全0或乱码)
  • 需要导出具体数据文件(如SYSTEM表空间),而非仅修复磁盘
  • ASM实例已无法启动,但磁盘物理可读

注意:amdu输出的是二进制镜像(.img),需配合dd和偏移计算才能提取单个文件;它不修改源磁盘,但扫描过程IO压力大,建议在非业务时段运行。

amdu导出的文件如何映射回真实数据文件名?

amdu本身不还原文件名,它只按ASM内部编号(file_number)导出amdu_0123456789.img。要查到对应SYSTEM01.DBF这类名字,得结合amdu生成的report.txt和ASM字典视图(如果还能连上实例)或历史备份。

关键步骤:

  • 运行amdu -diskstring '/dev/oracleasm/disks/*' -dump DG_NAME,生成report.txt
  • report.txt里搜索File Number,找到目标文件的Block SizeSize(以AU为单位)
  • 若实例尚可访问,查select name, file_number from v$asm_alias where file_number = 256;(256是SYSTEM的典型编号)
  • 若实例不可用,从RMAN备份中提取LIST BACKUP OF DATABASE记录,比对SET_STAMPFILE#

容易忽略的点:amdu导出的文件不含文件头(如DBF的SCN、checkpoint信息),直接cp到数据库目录下无法open,必须用RMAN RESTOREBBED修补头——这才是真正卡住恢复进度的地方。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

77

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

40

2025.11.16

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

67

2025.11.17

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

47

2025.11.27

oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

271

2023.08.16

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

220

2023.09.15

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

245

2023.09.18

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

463

2023.09.19

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号