標籤:簡單 參考 重新命名 var nec logs col 個數 redo
因為之前直接刪除了資料表空間,重啟oracle後報錯ORA-01157,以下記錄解決方案。
ORA-01157:無法識別/鎖定資料檔案字串 - 請參閱DBWR追蹤檔案
原因:後台進程無法找到其中一個資料檔案或未能鎖定它,因為該檔案已被使用。該資料庫將禁止訪問此檔案,但其他檔案將不受影響。但是,開啟資料庫的第一個執行個體需要訪問所有線上資料檔案。來自作業系統的伴隨錯誤描述了無法識別檔案的原因。
操作:將作業系統make檔案提供給資料庫。然後開啟資料庫或執行ALTER SYSTEM CHECK DATAFILES。
參考: http ://docs.oracle.com/cd/B28359_01/server.111/b28278/e900.htm#ORA-01157
ORA-01157資料庫寫入程式(DBWR)無法找到並鎖定資料檔案時引發此錯誤。這可能是由於各種原因,如
- 資料檔案被刪除或損壞
- 資料檔案被重新命名或移動
- 掛載點不正確
- 資料檔案的讀/寫入權限問題
要解決ORA-01157,我們可以使用以下步驟之一:
- 如果資料檔案被刪除或損壞,而不是TEMP或UNDO資料表空間,那麼我們需要使用有效備份來恢複它。
- 如果資料檔案被刪除或損壞,並且不是TEMP或UNDO資料表空間,但該資料表空間不包含重要的段,可以離線刪除
- 如果資料檔案被重新命名或移動,那麼我們需要將其儲存在原始位置
- 如果掛載點不正確,只需重新建立掛載點
- 如果它是由於許可權引起的,那麼
當我恢複冷備份時,我們需要在我的本地環境中在作業系統層級授予我面對ORA-01157 的許可權。它是為了測試目的而添加的資料表空間,並不重要。所以我簡單地使用“OFFLINE DROP”子句刪除資料檔案並開啟資料庫。
C:\>sqlplus sys/sys as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 30 19:07:16 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 778387456 bytesFixed Size 1384856 bytesVariable Size 520097384 bytesDatabase Buffers 251658240 bytesRedo Buffers 5246976 bytesDatabase mounted.ORA-01157: cannot identify/lock data file 11 – see DBWR trace fileORA-01110: data file 16: ‘E:\oracle\app\nimish.garg\oradata\orcl\test_ts.dbf‘SQL> select NAME from v$datafile where file#=16;NAME--------------------------------------------------------------------------------E:\ORACLE\APP\NIMISH.GARG\ORADATA\ORCL\TEST_TS.DBFSQL> alter database datafile 16 OFFLINE DROP;Database altered.SQL> alter database open;Database altered.
我希望這個解決方案有助於解決您的問題。
參考:http://nimishgarg.blogspot.com/2014/01/ora-01157-cannot-identifylock-data-file.html
記一次Oracle啟動報錯問題解決