oracle資料檔案被誤刪除後的災難處理方法

perfychi發表於2012-07-11
oracle資料檔案被誤刪除後的災難處理方法
key:oracle資料檔案(datafile)被誤刪除後沒有恢復的辦法,只能把該資料檔案offline後drop掉,並刪除整個表空間。
steps:
當Oracle資料檔案被誤刪除之後的處理辦法!!
1、關閉資料庫:
   sqlplus "/as sysdba";
   sqlplus>shutdown abort;
2、裝載資料庫
   sqlplus>startup mount;
3、刪除無效的資料庫檔案
   sqlplus>alter database datafile '/home/oracle/survey/survey.dbf' offline drop
   sqlplus>alter database datafile '/home/oracle/survey/surveytemp.dbf' offline drop
4、開啟資料庫
  sqlplus>alter database open;
5、刪除無效的表空間
   sqlplus> drop tablespace surevy including contents;
   sqlplus> drop tablespace surevytemp including contents;


簡單的問題搞這麼複雜?
按下面步驟做即可:
1.shutdown immediate
2.startup mount
3.alter database datafile 'xxx' offline drop;
4.alter database open
5.drop tablespace xxxx including contents and datafiles;

先說明一下alter database datafile ... offline drop:

在非歸檔模式下,可以使用... offline drop,在歸檔模式下,使用... offline. 這個命令的意思並不是從表空間將這個資料檔案徹底刪除,而是說將這個資料檔案“凍結”住:它的scn不在變化,不會再向它寫入任何資料;但是原有存在這個 檔案中物件和資料還可以繼續使用。因此在使用這個命令後,透過修改控制檔案將它刪除,資料庫在啟動時就會報檔案丟失的錯誤,並且會在資料字典中產生一個 MISGXXXXX的紀錄。因此,以一個資料檔案是無法被直接從資料庫中刪除掉的。

如果需要減少表空間的資料檔案,可以採用以下辦法:

export除表空間的內容:exp ... tablespaces=xxx;

使用include content子句刪除表空間:drop tablespace xxx include content;

重見表空間,使之不包括需要去除掉的資料檔案;

import表空間的所有資料物件。


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

相關文章