在一些情況下,你可能需要對oracle數據庫進行優化,如修改spfile中的參數配置(如:擴展sga內存區)等,但是往往不是一次就一步到位的,尤其是一不小心給的sga_max_size、shared_pool_size等的值不合理時(如超出整個物理內存,給值的時候多寫一個零),雖然提示已經更改,但是一重啟數據庫時,對不起,數據無法open,用sqlplus登錄,出現如下圖的症狀:
解決辦法:
1, 拷貝參數文件(位置如:$oraclehome/admin/orcl/pfile/init.ora.5162009204825)拷貝到$oraclehome/db_1/database下面,將init.ora.5162009204825文件名改為“init實例名.ora”,如:initorcl.ora。(拷貝到這裡的時候,可以通過參數文件啟動數據庫)
2, 然後在sqlplus中執行:“create spfile from pfile”,如下圖所示:
3,這時將在“$OracleHome/db_1/database/”路徑下面生成一個spfile文件,文件命名格式為“SPFILE實例名.ORA”,如:SPFILEORCL.ORA。這時數據可以用spfile啟動(可以嘗試把initorcl.ora刪除掉也不會影響數據庫的啟動了)當然也可以從$OracleHome/db_1/dbs/下面拷貝SPFILE實例名.ORA到$OracleHome/db_1/database下面也可以。
如果在$OracleHome/db_1/database下面找不到參數文件,將出現下圖的錯誤。
然後再次啟動oracle的服務,用SQLPLUS就可以連接上數據庫了.如下: