prmscan扫描并恢复被破坏的Oracle ASM diskgroup磁盘组

prmscan 是诗檀软件独立研发的ORACLE数据块碎片扫描合并工具,其适用于以下的场景:

  1. 误手动删除了文件系统(任意文件系统 NTFS、FAT、EXT、UFS、JFS等)或ASM上的数据文件
  2. 文件系统损坏,导致数据文件大小变成0 bytes即数据文件被清零
  3. 文件系统损坏,导致文件系统无法MOUNT加载
  4. ASM存储元数据损坏,导致diskgroup无法mount加载
  5. 文件系统或ASM其中的LV或PV被物理破坏或丢失

 

针对ORACLE ASM diskgroup 磁盘组metadata元数据损坏的问题,一般会先采用prm-dul或amdu等工具将其中的数据文件抽取出来;但如果asm的关键数据例如FILE NUMBER 1的文件指针损坏了,那么amdu和prm-dul也将无法从diskgroup中抽取出数据文件。 此时则需要使用prmscan工具,该工具可以从数据块级别识别镜像image中的数据,并重组合并。

下面是一个ASM 元数据被彻底破坏的例子

 

  1. 破坏asm磁盘

 

[oracle@asm ~]$ dd if=/dev/zero of=/dev/asm-diske bs=1M count=100
100+0 records in
100+0 records out

104857600 bytes (100.0 MB) copied, 0.0987016 seconds, 1.1 GB/s


2. 使用PRMscan扫描asm磁盘

 

[oracle@asm ~]$ java -jar PRMScan.jar --scan /dev/asm-diske --guess 8k
[oracle@asm ~]$ java -jar PRMScan.jar --outputsh ./outputsh.txt
[oracle@asm ~]$ sh outputsh.txt

 

3.使用PRM扫描拼出来的数据文件

 

prmscan-asm1

prmscan-asm2

 

prmscan-asm3

 


prmscan-asm4

 

prmscan-asm5

 

以上流程可以看到 例如prmscan 扫描ASM DISK可以成功抽取出完整的oracle datafile数据文件。

 

实际上对于prmscan 来说扫描ASM diskgroup下的ASM disk和扫描普通的磁盘分区、LV、PV并没有区别。prmscan默认使用最小512字节作为一个step size,每512字节去尝试识别一个block header,如果识别则记录到prmscan内嵌的数据库中,扫描完成后可以自动或手动将数据文件碎片拼起来,实现恢复的目的。只要数据没有被覆盖,且数据块没有断裂,那么一般都可以恢复其数据。

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *