Oracle ASM Diskgroup数据恢复终极方案PRM-DUL工具   下载最新版PRM: https://zcdn.parnassusdata.com/DUL5108.zip PRM用户手册: http://www.parnassusdata.com/sites/default/files/ParnassusData%20Recovery%20Manager%20For%20Oracle%20Database%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C%20v0.3.pdf   https://zcdn.askmaclean.com/PRM%203.1%20For%20Oracle%20ASM%20Extract%20Datafile%20From%20Damaged%20ASM%20Disk%20group-rum9euHYuzw.mp4   ORACLE的ASM自动存储管理技术正被越来越多的企业采用,数据库采用ASM存储对比传统文件系统具有高性能、支持集群、管理方便等优势。 但ASM的问题在于,对于普通用户而言ASM的存储结构过于黑盒了,一旦ASM中的某个Disk Group的内部数据结构发生了损坏导致Disk Group无法被成功MOUNT,也就意味着用户重要的数据被锁死在这个ASM的黑盒中了。在这种场景中往往需要熟悉ASM内部数据结构的ORACLE原厂的资深工程师到达用户现场后通过手动修复ASM内部结构;而购买ORACLE原厂的现场服务对普通用户而言显得即昂贵又耗时。 基于PRM的研发人员(前ORACLE公司资深工程师)对ORACLE ASM内部数据结构的深入理解,PRM中加入了特别针对ASM的数据恢复功能。 PRM目前支持的ASM数据恢复功能包括: 1. 即便Disk Group无法正常MOUNT,仍可以通过PRM直接读取ASM磁盘上的可用的元数据metadata,并基于这些元数据将Disk Group中的ASM文件拷贝出来 2. 即便Disk Group无法正常MOUNT,仍可以通过PRM直接读取ASM上的数据文件,并抽取其中的数据,支持传统抽取方式和数据搭桥方式。 PRM对ASM的支持    
功能 Supported
支持直接从ASM中抽取数据,无需拷贝到文件系统上 YES
支持从ASM中拷贝数据文件 YES
支持修复ASM metadata YES
支持图形化展示ASM黑盒 Future
  社区版中ASM clone功能无任何限制,今后社区版将加入更多免费新特性    

恢复场景6 从被损坏的ASM Diskgroup中拷贝出数据库数据文件

      D公司开始采用ASM方案来替代文件系统和裸设备,但是由于使用的11.2.0.1版本ASM上Bug较多导致ASM DISKGROUP磁盘组无法加载MOUNT,通过多方修复ASM Disk Header无果。   此场景可以使用PRM的ASM Files Clone文件克隆功能从受损的ASM Diskgroup中拷贝出数据库数据文件。  
  1. 打开主界面,菜单栏Tools选择ASM File(s) Clone:
 
  1. 进入ASM Disks界面,点击SELECT…按钮加入仍可用的ASM Disks,如/dev/asm-disk5(linux);确保加入所有可用LUN后,点击ASM analyze按钮
 
  1. ASM Files Clone将分析指定的ASM Disk的磁盘头,以便找出对应Disk group磁盘组中的文件,以及这些文件的分布位置(File Extent Map); 这些信息均将记录到Derby数据库中以便今后使用; 可以说PRM将ASM的所有Metadata元数据均收集、分析、并存储起来,并通过各种形式来完善PRM的基本功能,并以图形化地方式展现给用户。
 
  1. ASM Analyze分析完成后,PRM将列出找到的ASM上文件的列表,用户可以勾选那些文件需要被克隆,并指定文件克隆的目标文件夹。
  之后点击ASM Clone按钮,进入文件克隆阶段。   文件克隆阶段中,将列出ASM File的克隆进度,克隆完成后点击OK。   克隆阶段的进度日志输出如下:    
Preparing selected files... Cloning +DATA2/ASMDB1/DATAFILE/TBS2.256.839732369: ..........................1024MB ......................................2048MB ......................................3072MB ........................................4096MB ......................................5120MB ........................................6144MB .....................................7168MB .......................................8192MB .......................................9216MB .......................................10240MB .......................................11264MB .........................................12288MB ...........................................13312MB ..................................14336MB ............................................15360MB .....................................16384MB .......................................17408MB .......................................18432MB ..........................................................................................................19456MB .......................................... Cloned size for this file (in byte): 21475885056   Cloned successfully!     Cloning +DATA2/ASMDB1/ARCHIVELOG/2014_02_17/thread_1_seq_47.257.839732751: ...... Cloned size for this file (in byte): 29360128   Cloned successfully!     Cloning +DATA2/ASMDB1/ARCHIVELOG/2014_02_17/thread_1_seq_48.258.839732751: ...... Cloned size for this file (in byte): 1048576   Cloned successfully!         All selected files were cloned done.
     
  1. 可以通过dbv或者rman validate命令来验证克隆出来的数据文件,例如:
 
rman target /   RMAN> catalog datafilecopy '/home/oracle/asm_clone/TBS2.256.839732369.dbf';   cataloged datafile copy datafile copy file name=/home/oracle/asm_clone/TBS2.256.839732369.dbf RECID=2 STAMP=839750901   RMAN> validate datafilecopy '/home/oracle/asm_clone/TBS2.256.839732369.dbf';   Starting validate at 17-FEB-14 using channel ORA_DISK_1 channel ORA_DISK_1: starting validation of datafile channel ORA_DISK_1: including datafile copy of datafile 00016 in backup set input file name=/home/oracle/asm_clone/TBS2.256.839732369.dbf channel ORA_DISK_1: validation complete, elapsed time: 00:03:35 List of Datafile Copies ======================= File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 16   OK     0              2621313      2621440         1945051 File Name: /home/oracle/asm_clone/TBS2.256.839732369.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data       0              0 Index      0              0 Other      0              127   Finished validate at 17-FEB-14  
    对于使用ASMLIB的ASM环境要如何使用PRM呢?   其实也很简单,asmlib相关的ASM DISK在OS操作系统上会以ll /dev/oracleasm/disks 的形式存放,例如:直接将/dev/oracleasm/disks下的文件加入到PRM ASM DISK中即可  
$ll /dev/oracleasm/diskstotal 0 brw-rw----  1 oracle dba 8,  97 Apr 28 15:20 VOL001 brw-rw----  1 oracle dba 8,  81 Apr 28 15:20 VOL002 brw-rw----  1 oracle dba 8,  65 Apr 28 15:20 VOL003 brw-rw----  1 oracle dba 8,  49 Apr 28 15:20 VOL004 brw-rw----  1 oracle dba 8,  33 Apr 28 15:20 VOL005 brw-rw----  1 oracle dba 8,  17 Apr 28 15:20 VOL006 brw-rw----  1 oracle dba 8, 129 Apr 28 15:20 VOL007 brw-rw----  1 oracle dba 8, 113 Apr 28 15:20 VOL008
  直接将/dev/oracleasm/disks下的文件加入到PRM ASM DISK中即可。