windows下oracle的ora-27100錯誤

資料與人發表於2021-04-06

修改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'的命令啟動就沒有問題了

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997824/viewspace-2766602/,如需轉載,請註明出處,否則將追究法律責任。

相關文章