1. 程式人生 > >記一次Oracle啟動報錯問題解決

記一次Oracle啟動報錯問題解決

無法 問題 connected gpo 需要 base ann 子句 idl

因為之前直接刪除了表空間,重啟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 sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 30 19:07:16 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup
ORACLE instance started.
Total System Global Area  
778387456 bytes Fixed Size 1384856 bytes Variable Size 520097384 bytes Database Buffers 251658240 bytes Redo Buffers 5246976 bytes Database mounted. ORA-01157: cannot identify/lock data file 11 – see DBWR trace file ORA-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.DBF SQL> 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啟動報錯問題解決