Oracle

Oracle XE 10g:缺少文件 spfileXE.ora(Windows Server 2008 64 位)

  • July 12, 2017

我在 Windows Server 2008 64 位機器上安裝 Oracle XE 10g 時遇到問題。

安裝後與數據庫管理頁面http://127.0.0.1:8080/apex的連接失敗。

如果我執行sqlplus / as sysdba我得到錯誤ORA-12560: TNS:protocol adapter error

查看服務,我可以看到 OracleServiceXE 沒有啟動(即使啟動類型是自動的)。

我重新啟動服務並重新執行

c:\>sqlplus / as sysdba
(...)
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file 'C:\oraclexe\app\oracle\product\10.2.0\server\dbs/spfileXE.ora'
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file specified.          

是否可以以某種方式重新創建該文件?我已經嘗試解除安裝並重新安裝,並且得到了完全相同的行為。

我假設你在某處有一個 pfile?在您的問題中尋找 spfile 的目錄中,或者在 admin\pfile 目錄中。無論如何,嘗試:

sqlplus / as sysdba
create spfile from pfile='<location of pfile>'
startup

那應該這樣做。

編輯:

您總是可以以這種方式來回使用您的 spfile 和 pfile。最好有一個 spfile 的文本文件備份,因為您不能直接編輯 spfile(您只能在安裝數據庫時更改它):

create pfile='<pfile location>' from spfile;

spfile 使您能夠在數據庫打開時更改動態參數而無需重新啟動數據庫,並使它們在數據庫重新啟動時永久存在:

alter system set open_cursors=new limit scope=both

這使得正在執行的數據庫以及 spfile 中的更改使其在數據庫重新啟動時生效。

使用舊的 pfile 範例,您必須手動編輯 pfile 以使更改在重新啟動後生效。此外,您可以在數據庫啟動時修改 spfile 中需要重新啟動數據庫的參數,以在下次重新啟動時生效:

alter system set sga_max_size=new_sga_max scope=spfile

此參數不能修改正在執行的實例,但可以使其在下次重啟時生效。

引用自:https://serverfault.com/questions/68372