欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

ASM Diskgroup数据恢复终极方案PRM-DUL工具

程序员文章站 2022-06-07 22:03:00
...

Oracle ASM Diskgroup数据恢复终极方案PRM-DUL工具 下载最新版PRM: http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3206.zip PRM用户手册: http://www.parnassusdata.com/sites/default/files/ParnassusData%20Recovery%20Manag

Oracle ASM Diskgroup数据恢复终极方案PRM-DUL工具

下载最新版PRM:

http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3206.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

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中即可。

No related posts.