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中拷贝出数据库数据文件。
- 打开主界面,菜单栏Tools选择ASM File(s) Clone:
- 进入ASM Disks界面,点击SELECT…按钮加入仍可用的ASM Disks,如/dev/asm-disk5(linux);确保加入所有可用LUN后,点击ASM analyze按钮
- ASM Files Clone将分析指定的ASM Disk的磁盘头,以便找出对应Disk group磁盘组中的文件,以及这些文件的分布位置(File Extent Map); 这些信息均将记录到Derby数据库中以便今后使用; 可以说PRM将ASM的所有Metadata元数据均收集、分析、并存储起来,并通过各种形式来完善PRM的基本功能,并以图形化地方式展现给用户。
- 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. |
- 可以通过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中即可。