windows下oracle的ora-27100錯誤

 修改sga_max_size太大後啓動不了,按照網上的方法恢復也還是不行,最後查資料終於發現問題所在。整個過程如下:
SQL> alter system set sga_max_size=10000000000 scope=spfile;
 
系統已更改。
 
SQL> shutdown immediate;
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup;
ORA-27102: out of memory
OSD-00022: Message 22 not found;  product=RDBMS; facility=SOSD
 
O/S-Error: (OS 8) 存儲空間不足,無法處理此命令。
SQL> startup;
ORA-27100: shared memory realm already exists
SQL> shutdown immediate;
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup;
ORA-27100: shared memory realm already exists
SQL>
這個錯誤的意思是實例共享內存的空間已經存在,但是實際上自己又沒有啓動數據庫實例。
 
      檢查參數文件後,生成一個新的pfile='d:/1.ora',把sga_max_size改成正確的值(500M),然後關閉服務,重新啓動服務後,再進入sqlplus
 
SQL> startup pfile='d:/1.ora';//網上都是說這樣去做的,但是實際操作時這一步報錯,網上都沒有說
ORA-27100: shared memory realm already exists
 

錯誤依舊,但是這時明明自己沒有啓動實例啊。
 
       仔細分析一下,這是windows服務及oracle的問題,oracle在windows啓動中如果由於sga_max_size的問題,實例不會啓動成功,但是仍然會有一個錯誤的實例存在,shutdown immediate及shutdown abort都關閉不了。由於缺省安裝時,oracle在windows服務啓動時會自動啓動實例,所以每次啓動服務都會自動用默認的錯誤的spfile啓動實例,導至內存錯誤。
Administration Assistant for Windows NT修改數據庫啓動關閉選項,啓動windows服務的時候不啓動實例,這個時候用stratup pfile='initXXXX.ora'的命令啓動就沒有問題了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章