恢復損壞的Oracle?

由於使用的11.2.0.1版本ASM上Bug較多導致ASM DISKGROUP磁碟組無法載入MOUNT,通過多方修復ASM Disk Header無果。此場景可以使用PRM-DUL的ASM Files Clone檔案克隆功能從受損的ASM Diskgroup中拷貝出資料庫資料檔案。

工具/原料

Oracle Database 9i/10g/11g/12c

PRM-DUL ORACLE恢復工具

方法/步驟

開啟PRM-DUL ORACLE恢復工具主介面,選單欄Tools選擇ASM File(s) Clone:

恢復損壞的Oracle ASM Diskgroup

進入ASM Disks介面,點選SELECT…按鈕加入仍可用的ASM Disks,如/dev/asm-disk5(linux);確保加入所有可用LUN後,點選ASM analyze按鈕

恢復損壞的Oracle ASM Diskgroup

恢復損壞的Oracle ASM Diskgroup

恢復損壞的Oracle ASM Diskgroup

ASM Files Clone將分析指定的ASM Disk的磁碟頭,以便找出對應Disk group磁碟組中的檔案,以及這些檔案的分佈位置(File Extent Map); 這些資訊均將記錄到Derby資料庫中以便今後使用; 可以說PRM-DUL將ASM的所有Metadata元資料均收集、分析、並存儲起來,並通過各種形式來完善PRM-DUL的基本功能,並以圖形化地方式展現給使用者。

恢復損壞的Oracle ASM Diskgroup

ASM Analyze分析完成後,PRM-DUL將列出找到的ASM上檔案的列表,使用者可以勾選那些檔案需要被克隆,並指定檔案克隆的目標資料夾。

之後點選ASM Clone按鈕,進入檔案克隆階段。

恢復損壞的Oracle ASM Diskgroup

檔案克隆階段中,將列出ASM File的克隆進度,克隆完成後點選OK。

恢復損壞的Oracle ASM Diskgroup

克隆階段的進度日誌輸出如下:

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-DUL呢?

其實也很簡單,asmlib相關的ASM DISK在OS作業系統上會以ll /dev/oracleasm/disks 的形式存放,例如:直接將/dev/oracleasm/disks下的檔案加入到PRM-DUL ASM DISK中即可

$ll /dev/oracleasm/diskstotal 0brw-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-DUL ASM DISK中即可。

相關問題答案

Have any Question?

Let us answer it!