怎么理解AMDU數(shù)據(jù)抽取

這篇文章主要介紹“怎么理解AMDU數(shù)據(jù)抽取”,在日常操作中,相信很多人在怎么理解AMDU數(shù)據(jù)抽取問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么理解AMDU數(shù)據(jù)抽取”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)琿春免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

上半年遇到一起某客戶對ASM磁盤組擴(kuò)容,由于擴(kuò)容期間操作不當(dāng)導(dǎo)致磁盤組被dismount,日志如下:

怎么理解AMDU數(shù)據(jù)抽取

通過日志可以看到由于磁盤頭的元數(shù)據(jù)被破壞,ASM檢測發(fā)現(xiàn)PST表不滿足冗余要求后磁盤組被dismount。對于這種類似由于ASM磁盤元數(shù)據(jù)被破壞導(dǎo)致磁盤組無法mount,且元數(shù)據(jù)無法修復(fù),需要找回ASM磁盤組中丟失的ASM文件時(shí)可以使用Oracle提供的AMDU工具進(jìn)行抽取。

AMDU介紹

AMDU是ASM Metadata Dump Utility的縮寫,即asm元數(shù)據(jù)導(dǎo)出工具,它可以從asm磁盤中將元數(shù)據(jù)信息以及磁盤中的文件直接抽取出來,并且該工具不依賴asm磁盤組的狀態(tài),可以在asm實(shí)例關(guān)閉以及asm磁盤組dismount狀態(tài)下正常使用。當(dāng)磁盤組因?yàn)槟承┕收蠠o法mount后,需要恢復(fù)數(shù)據(jù)就可以使用amdu工具對asm磁盤組中的數(shù)據(jù)文件進(jìn)行搶修抽取,但需要注意的是,amdu只能將文件從asm磁盤中抽取出來,如果文件本身已經(jīng)損壞,amdu是無法進(jìn)行修復(fù),抽取出來的文件將依然是損壞的,像這種情況,如果需要將損壞的數(shù)據(jù)文件中的數(shù)據(jù)找回,可以使用dul類工具直接讀取抽取出來的數(shù)據(jù)文件找回?cái)?shù)據(jù)。

回歸主題

回到本次的故障處理,磁盤組已經(jīng)無法mount,且難以修復(fù),只能用AMDU將數(shù)據(jù)文件從asm磁盤中直接抽取,因?yàn)榭刂莆募蛥?shù)文件以及日志文件所在的磁盤組均正常,整個(gè)恢復(fù)相對比較簡單,如果控制文件所在的磁盤組也無法mount,我們可以從數(shù)據(jù)庫alert文件中找到數(shù)據(jù)庫控制文件的位置,這通常是第一步:

控制文件恢復(fù):

control_files="+REDODG/xxxpd/controlfile/current.269.957297789"

然后通過amdu將控制文件抽取出來:

amdu -diskstring '/dev/xxx/*' -extract REDODG.269 -noreport -nodir

上面命令相關(guān)參數(shù)的含義:

·diskstring: 使用磁盤的全路徑或者是ASM_DISKSTRING參數(shù)值

·extract: 磁盤組名.ASM文件序號

·output:提取的輸出文件(當(dāng)前目錄下)

·noreport:不輸出amdu的執(zhí)行過程

·nodir:不創(chuàng)建dump目錄

數(shù)據(jù)庫啟動(dòng)到mount狀態(tài):

因?yàn)閍lert日志文件中輸出的啟動(dòng)信息會(huì)包含實(shí)例參數(shù)信息,通過對輸出的參數(shù)信息重新編輯一個(gè)參數(shù)文件,通過參數(shù)文件以及控制文件我們就可以將數(shù)據(jù)庫啟動(dòng)到mount狀態(tài)。

SQL> startup nomount pfile='/orabackup/tmp/init.ora'
ORACLE instance started.
Total System Global Area 3.2068E+10 bytes
Fixed Size                  2269072 bytes
Variable Size            4362076272 bytes
Database Buffers         2.7649E+10 bytes
Redo Buffers               55242752 bytes
SQL> alter database mount;
Database altered.
SQL>

獲取數(shù)據(jù)文件名稱:

此時(shí)由于數(shù)據(jù)庫已啟動(dòng)到mount狀態(tài),通過v$datafile視圖既可獲取數(shù)據(jù)文件名稱。

select name from v$datafile;
+DATADG/xxx/datafile/system.347.957297809
+DATADG/xxx/datafile/sysaux.368.957297823
+DATADG/xxx/datafile/undotbs1.316.957297837
+DATADG/xxx/datafile/xxx_large.335.957297873
...

將ASM磁盤組中數(shù)據(jù)文件抽取到本地文件系統(tǒng):

如果數(shù)據(jù)文件采用OMF命名格式直接使用amdu命令進(jìn)行抽取即可,命令與抽取控制文件相同,但當(dāng)數(shù)據(jù)文件命名采用+DATADG/xxx/tbs01.dbf方式,需要先抽取元數(shù)據(jù),在元數(shù)據(jù)中通過數(shù)據(jù)文件的alias找到對應(yīng)的fnum在依照OMF格式文件的抽取方式進(jìn)行抽取,更詳細(xì)的介紹請參考《asm翻譯系列》。

客戶在創(chuàng)建數(shù)據(jù)文件時(shí)均是采用OMF文件管理方式,直接編輯如下數(shù)據(jù)文件抽取命令:

amdu -diskstring '/dev/xxx/*' -extract datadg.347 -noreport -nodir
amdu -diskstring '/dev/xxx/*' -extract datadg.368 -noreport -nodir
amdu -diskstring '/dev/xxx/*' -extract datadg.316 -noreport -nodir
amdu -diskstring '/dev/xxx/*' -extract datadg.335 -noreport -nodir

抽取完成后的文件格式默認(rèn)為DATADG_347.f這樣的命令規(guī)則,由于抽取到本地后數(shù)據(jù)文件名稱已經(jīng)發(fā)生變化,在數(shù)據(jù)庫mount狀態(tài)下將控制文件中記錄的數(shù)據(jù)文件名稱進(jìn)行重命名,讓數(shù)據(jù)庫識別抽取到本地的數(shù)據(jù)文件。

重命名數(shù)據(jù)文件:

alter database rename file '+DATADG/xxx/datafile/system.347.957297809' to '/orabackup/xxx/DATADG_347.f';
alter database rename file '+DATADG/xxx/datafile/sysaux.368.957297823' to '/orabackup/xxx/DATADG_368.f';
alter database rename file '+DATADG/xxxdatafile/undotbs1.316.957297837' to '/orabackup/xxx/DATADG_316.f';
...

將數(shù)據(jù)庫OPEN:

由于日志文件所在的磁盤組沒有出現(xiàn)dismount問題,日志文件完好,并可以正常訪問,這種情況下直接open數(shù)據(jù)庫即可。

SQL> alter database open;
Database altered.
SQL>

數(shù)據(jù)庫被正常打開,但此時(shí)數(shù)據(jù)文件,都存儲(chǔ)在本地文件系統(tǒng)中,還需將數(shù)據(jù)文件移動(dòng)至asm磁盤組中,由于客戶環(huán)境已無可用的asm磁盤組,對上面問題磁盤組進(jìn)程刪除重新創(chuàng)建后使用rman copy方式將本地文件系統(tǒng)中的文件重新移動(dòng)至asm磁盤組中:

select 'backup as copy datafile ' ||  file_id || ' format ' || '+DATADG;' from dba_data_files;
select 'switch datafile ' || file_id || ' to copy;' from dba_data_files;

到此,關(guān)于“怎么理解AMDU數(shù)據(jù)抽取”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享標(biāo)題:怎么理解AMDU數(shù)據(jù)抽取
地址分享:http://muchs.cn/article28/pisgcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站網(wǎng)站設(shè)計(jì)公司、網(wǎng)站收錄、外貿(mào)建站虛擬主機(jī)、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)