用oracle amdu 抽取asm磁碟組的資料檔案

zhouxianwang發表於2016-05-20
語法如下:

amdu -diskstring '' -extract '.'

資料檔案號 可以根據asm 例項 查詢 v$asm_file檢視得出


也可以查v$datafile,如果用了別名,可以用v$asm_alias;

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
+DATA/db1/datafile/system.256.794361477
+DATA/db1/datafile/sysaux.257.794361477
+DATA/db1/datafile/undotbs1.258.794361477
+DATA/db1/datafile/users.259.794361477   <(=== this files need to be extracted
+DATA/db1/datafile/example.261.794361601
+DATA/db1/datafile/testasm.263.817147851
+DATA/db1/datafile/dbfs_ts.264.822088469

 
比如我們要抽取users表空間下面對應的資料檔案
  

Full File name =  "+DATA/db1/datafile/users.259.794361477"

File Number = "259"

Disk String = "/dev/oracleasm/disks/*"

Diskgroup Name = "DATA"

Extracted File = DATA_259.f
 
amdu -diskstring '/dev/oracleasm/disks/*' -extract 'DATA.259'

在當前目錄下會生成amdu_加日期格式的資料夾
 
[grid@dbaasm ~]$ cd amdu_2013_08_31_00_17_17/
[grid@dbaasm amdu_2013_08_31_00_17_17]$ ls -l
total 2099228
-rw-r--r-- 1 grid oinstall 2147491840 Aug 31 00:18 DATA_259.f
-rw-r--r-- 1 grid oinstall      14514 Aug 31 00:18 report.txt

生成資料檔案的格式為磁碟組+資料檔案號,並且加字尾名為點f,然後重新命名為對應表空間名字users.dbf即可

[grid@dbaasm amdu_2013_08_31_00_17_17]$ mv DATA_259.f users.dbf
[grid@dbaasm amdu_2013_08_31_00_17_17]$ ls -l
total 2099228
-rw-r--r-- 1 grid oinstall      14514 Aug 31 00:18 report.txt
-rw-r--r-- 1 grid oinstall 2147491840 Aug 31 00:18 users.dbf    <(====== 
 
上個週末,因為儲存故障,asm磁碟不能正常載入,就用這種方法幫客戶恢復資料。

source:http://blog.itpub.net/7199859/viewspace-1246627/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27036311/viewspace-2103526/,如需轉載,請註明出處,否則將追究法律責任。

相關文章