中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么理解AMDU數據抽取

發布時間:2021-11-08 15:26:42 來源:億速云 閱讀:160 作者:iii 欄目:關系型數據庫

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

上半年遇到一起某客戶對ASM磁盤組擴容,由于擴容期間操作不當導致磁盤組被dismount,日志如下:

怎么理解AMDU數據抽取

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

AMDU介紹

AMDU是ASM Metadata Dump Utility的縮寫,即asm元數據導出工具,它可以從asm磁盤中將元數據信息以及磁盤中的文件直接抽取出來,并且該工具不依賴asm磁盤組的狀態,可以在asm實例關閉以及asm磁盤組dismount狀態下正常使用。當磁盤組因為某些故障無法mount后,需要恢復數據就可以使用amdu工具對asm磁盤組中的數據文件進行搶修抽取,但需要注意的是,amdu只能將文件從asm磁盤中抽取出來,如果文件本身已經損壞,amdu是無法進行修復,抽取出來的文件將依然是損壞的,像這種情況,如果需要將損壞的數據文件中的數據找回,可以使用dul類工具直接讀取抽取出來的數據文件找回數據。

回歸主題

回到本次的故障處理,磁盤組已經無法mount,且難以修復,只能用AMDU將數據文件從asm磁盤中直接抽取,因為控制文件和參數文件以及日志文件所在的磁盤組均正常,整個恢復相對比較簡單,如果控制文件所在的磁盤組也無法mount,我們可以從數據庫alert文件中找到數據庫控制文件的位置,這通常是第一步:

控制文件恢復:

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

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

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

上面命令相關參數的含義:

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

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

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

·noreport:不輸出amdu的執行過程

·nodir:不創建dump目錄

數據庫啟動到mount狀態:

因為alert日志文件中輸出的啟動信息會包含實例參數信息,通過對輸出的參數信息重新編輯一個參數文件,通過參數文件以及控制文件我們就可以將數據庫啟動到mount狀態。

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>

獲取數據文件名稱:

此時由于數據庫已啟動到mount狀態,通過v$datafile視圖既可獲取數據文件名稱。

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磁盤組中數據文件抽取到本地文件系統:

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

客戶在創建數據文件時均是采用OMF文件管理方式,直接編輯如下數據文件抽取命令:

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

抽取完成后的文件格式默認為DATADG_347.f這樣的命令規則,由于抽取到本地后數據文件名稱已經發生變化,在數據庫mount狀態下將控制文件中記錄的數據文件名稱進行重命名,讓數據庫識別抽取到本地的數據文件。

重命名數據文件:

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';
...

將數據庫OPEN:

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

SQL> alter database open;
Database altered.
SQL>

數據庫被正常打開,但此時數據文件,都存儲在本地文件系統中,還需將數據文件移動至asm磁盤組中,由于客戶環境已無可用的asm磁盤組,對上面問題磁盤組進程刪除重新創建后使用rman copy方式將本地文件系統中的文件重新移動至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;

到此,關于“怎么理解AMDU數據抽取”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁乡县| 禄丰县| 平陆县| 阳信县| 株洲县| 镇江市| 五台县| 时尚| 临夏市| 文山县| 许昌市| 香河县| 青龙| 肇东市| 洛隆县| 永修县| 胶南市| 年辖:市辖区| 安阳市| 府谷县| 乌兰浩特市| 乌兰县| 虎林市| 宜春市| 汤阴县| 阳谷县| 淮北市| 新余市| 福清市| 庐江县| 和林格尔县| 龙游县| 青龙| 美姑县| 横峰县| 建瓯市| 墨玉县| 北海市| 普陀区| 工布江达县| 尼木县|