久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么理解AMDU數據抽取

161次閱讀
沒有評論

共計 3066 個字符,預計需要花費 8 分鐘才能閱讀完成。

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

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

通過日志可以看到由于磁盤頭的元數據被破壞,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 數據抽取”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-26發表,共計3066字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 怀来县| 汪清县| 江永县| 钟山县| 离岛区| 崇阳县| 诏安县| 仙居县| 冀州市| 北票市| 西峡县| 宣武区| 靖边县| 朝阳县| 米林县| 资阳市| 扎兰屯市| 通许县| 观塘区| 额尔古纳市| 乐山市| 卓资县| 孝感市| 新兴县| 大埔县| 铁力市| 千阳县| 久治县| 林周县| 如皋市| 舞阳县| 溆浦县| 鹤峰县| 雷山县| 临沭县| 临颍县| 泗阳县| 新巴尔虎左旗| 仙游县| 交城县| 辰溪县|