使用AMDU工具从无法MOUNT的DISKGROUP中抽取数据文件
生活随笔
收集整理的這篇文章主要介紹了
使用AMDU工具从无法MOUNT的DISKGROUP中抽取数据文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
AMDU是ORACLE針對ASM開發(fā)的源數(shù)據轉儲工具,其全稱為ASM Metadata Dump Utility(AMDU) AMDU具體以下三個主要功能: 1. 將ASM DISK上的元數(shù)據轉儲到文件系統(tǒng)上以便分析 2. 將ASM文件的內容抽取出來并寫入到OS文件系統(tǒng),Diskgroup是否mount均可 3. 打印出塊的元數(shù)據,以塊中C語言結構或16進制的形式 這里我們將用到使用AMDU抽取ASM DISKGROUP中的數(shù)據文件; ASM作為近幾年最流行的存儲解決方案, 大家對他的優(yōu)缺點都有所了解,其中的問題之一就是ASM是個黑盒。 一旦DISKGROUP無法MOUNT起來就意味著傳統(tǒng)方法無法以磁盤為基礎導出任何數(shù)據。 AMDU解決了這一問題, 這里我們僅討論在ASM DISKGROUP 無法MOUNT的情況下的范疇,不討論RDBMS數(shù)據文件在ASM下訛誤的處理。 注意 AMDU雖然是11g才發(fā)布的工具,但是實際對10g的ASM 也有效。 當前你可能遇到的場景是, ORACLE DATABASE的SPFILE、CONTROLFILE、DATAFILE均存放在ASM DISKGROUP中,而由于一些ASM ORA-600錯誤導致無法MOUNT該DISKGROUP, 你需要的是使用AMDU將這些文件從ASM DISK中轉儲出來。 場景 1 丟失了 包括SPFILE、CONTROLFILE、DATAFILE 恢復步驟: 從備份中還原出SPFILE ,即便沒有SPFILE的話PFILE也可以,總之你需要從參數(shù)文件中了解control_files的信息 SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string +DATA/prodb/controlfile/curren t.260.794687955, +FRA/prodb/co ntrolfile/current.256.79468795 5 獲得control_files 控制文件在ASM中的位置后事情就好辦了,+DATA/prodb/controlfile/current.260.794687955 這里 260是這個控制文件在+DATA 這個DISKGROUP中的FILE NUMBER 此外我們還需要ASM DISK的DISCOVERY PATH信息,這完全可以從ASM的SPFILE中的asm_diskstring 參數(shù)獲得 [oracle@mlab2 oracle.SupportTools]$ unzip amdu_X86-64.zip Archive: amdu_X86-64.zip inflating: libskgxp11.so inflating: amdu inflating: libnnz11.so inflating: libclntsh.so.11.1 [oracle@mlab2 oracle.SupportTools]$ export LD_LIBRARY_PATH=./ [oracle@mlab2 oracle.SupportTools]$ ./amdu -diskstring '/dev/asm*' -extract data.260 amdu_2009_10_10_20_19_17/ AMDU-00204: Disk N0006 is in currently mounted diskgroup DATA AMDU-00201: Disk N0006: '/dev/asm-disk10' AMDU-00204: Disk N0003 is in currently mounted diskgroup DATA AMDU-00201: Disk N0003: '/dev/asm-disk5' AMDU-00204: Disk N0002 is in currently mounted diskgroup DATA AMDU-00201: Disk N0002: '/dev/asm-disk6' [oracle@mlab2 oracle.SupportTools]$ cd amdu_2009_10_10_20_19_17/ [oracle@mlab2 amdu_2009_10_10_20_19_17]$ ls DATA_260.f report.txt [oracle@mlab2 amdu_2009_10_10_20_19_17]$ ls -l total 9548 -rw-r--r-- 1 oracle oinstall 9748480 Oct 10 20:19 DATA_260.f -rw-r--r-- 1 oracle oinstall 9441 Oct 10 20:19 report.txt 以上轉儲出來的DATA_260.f 就是控制文件,我們使用該控制文件startup mount RDBMS實例: SQL> alter system set control_files='/opt/oracle.SupportTools/amdu_2009_10_10_20_19_17/DATA_260.f' scope=spfile; System altered. SQL> startup force mount; ORACLE instance started. Total System Global Area 1870647296 bytes Fixed Size 2229424 bytes Variable Size 452987728 bytes Database Buffers 1409286144 bytes Redo Buffers 6144000 bytes Database mounted. SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/prodb/datafile/system.256.794687873 +DATA/prodb/datafile/sysaux.257.794687875 +DATA/prodb/datafile/undotbs1.258.794687875 +DATA/prodb/datafile/users.259.794687875 +DATA/prodb/datafile/example.265.794687995 +DATA/prodb/datafile/mactbs.267.794688457 6 rows selected. startup mount實例后,可以從v$datafile中獲得數(shù)據文件名,其中就包括了其在DISKGROUP中的FILE NUMBER 再使用./amdu -diskstring '/dev/asm*' -extract 命令即可 導出數(shù)據文件到操作系統(tǒng) [oracle@mlab2 oracle.SupportTools]$ ./amdu -diskstring '/dev/asm*' -extract data.256 amdu_2009_10_10_20_22_21/ AMDU-00204: Disk N0006 is in currently mounted diskgroup DATA AMDU-00201: Disk N0006: '/dev/asm-disk10' AMDU-00204: Disk N0003 is in currently mounted diskgroup DATA AMDU-00201: Disk N0003: '/dev/asm-disk5' AMDU-00204: Disk N0002 is in currently mounted diskgroup DATA AMDU-00201: Disk N0002: '/dev/asm-disk6' [oracle@mlab2 oracle.SupportTools]$ cd amdu_2009_10_10_20_22_21/ [oracle@mlab2 amdu_2009_10_10_20_22_21]$ ls DATA_256.f report.txt [oracle@mlab2 amdu_2009_10_10_20_22_21]$ dbv file=DATA_256.f DBVERIFY: Release 11.2.0.3.0 - Production on Sat Oct 10 20:23:12 2009 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /opt/oracle.SupportTools/amdu_2009_10_10_20_22_21/DATA_256.f DBVERIFY - Verification complete Total Pages Examined : 90880 Total Pages Processed (Data) : 59817 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 12609 Total Pages Failing (Index): 0 Total Pages Processed (Other): 3637 Total Pages Processed (Seg) : 1 Total Pages Failing (Seg) : 0 Total Pages Empty : 14817 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 1125305 (0.1125305)
總結
以上是生活随笔為你收集整理的使用AMDU工具从无法MOUNT的DISKGROUP中抽取数据文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Buffer Cache Hit Rat
- 下一篇: windows phone 快捷键