1. 程式人生 > >誤刪了資料庫檔案後導致的資料庫未開啟問題

誤刪了資料庫檔案後導致的資料庫未開啟問題

Q:

這個錯誤我覺得對於初學者來說還是有很大機會犯的,問題是這樣的,這一天,我照常啟動OracleOra11g_home1TNSListener和OracleServiceORCL 兩個服務,然後進入PL/SQL,登入,輸入使用者名稱和密碼後提示,資料庫未開啟,我又確定了一下使用者名稱和口令,沒錯啊!再次登陸,顯示oracle程序可能被關閉的錯誤提示,於是我估計可能是PL/SQL軟體的問題,切換到sqlplus模式,在執行裡敲sqlplus,輸入使用者名稱和密碼,依然提示:資料庫未開啟,我又重啟了一遍一開始啟動的兩個服務,問題依舊,有點慌遂決定網上尋求幫助,恰巧在一個IT論壇上看到一個和我一樣問題的銀,他是在windows下將資料庫檔案刪除後出現的錯誤,我一想,自己在前些天“大清理”的時候也刪除過,當時以為沒事沒想到可能就是這個問題造成的。於是我照著下面高手的回答做後,果然問題解決了,下面給出具體操作步驟:希望有此問題的同志也能按照此步驟化解心中的糾結:

A:

1、首先連線到oracle的mount模式,用sys賬戶登入就進去了,

2、輸入alter空格database空格open;

3、稍等後會看到被你刪除的或出問題的那個資料庫檔案,記住這個路徑和檔名或直接標記後複製下來。

4、執行cmd(切忌,不是sqlplus)後,在DOS視窗下輸入sqlplus/nolog,沒空格。

5、connect空格/空格as sysdba

6、這是提示已連線的同志繼續,找到表空間的儲存位置後,執行離線命令

輸入:alter空格database空格datafile '這裡是你出問題或被你刪除的資料庫檔名(開頭必須包含路徑比如:D:)' offline空格drop;後會提示"資料庫已更改"。

alter database datafile 'C:\app\Administrator\NCdata\nnc_data01.dbf' offline drop;

7、開啟資料庫連線;再次輸入:alter database open;後會提示"資料庫已更改"。

8、刪除表空間;輸入:drop tablespace 出問題的資料庫檔名(不包含字尾名如:BOOK.DBF就輸入BOOK就行了)。後會提示"表空間已刪除"。

9、好了輸入:conn 使用者名稱/密碼,回車後提示"已連線",好了搞定了!

下面給出全部命令(方便大家複製貼上):

shutdown immediate;

startup nomount;

啟動oracle例程.

alter database mount;讀取控制檔案

Step 1:SQL>C:\Users\Administrator\sqlplus/nolog

Step 2:SQL>conn / as sysdba

Step 3:SQL>alter database datafile 'x:xxx.dbf' offline drop;

Step 4:SQL>alter database open;

Step 5:SQL>drop tablspace xxx cascade;

drop tablspace NNC_DATA01 cascade;

S:

總結一下:下次刪除資料庫檔案不要在windows直接刪除,不然oracle啟動是會發現打不開資料庫而報告錯誤,正確的做法你懂的,drop一下就好了。建議在某個盤下建一個專門存放資料庫檔案的資料夾比較好。

友情連結: