ORA-00845:內存錯誤的解決辦法!

今天把虛擬機的內存改小了一點,然後啓動數據的時候就出現如下錯誤:

SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

我猜想應該是系統內存和sga衝突的問題,後來到網上查了一下,果然如此:


來自Oracle的官方解析是:

Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm)and file descriptors. The size of the shared memory should be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on the computer. If MEMORY_MAX_TARGET or MEMORY_TARGET is set to a non zero value, and an incorrect size is assigned to the shared memory, it will result in an ORA-00845 error at startup.


也就是由於設置SGA的大小超過了操作系統/dev/shm的大小:

解決這個問題只有兩個方法,一種是修改初始化參數,使得初始化參數中SGA的設置小於/dev/shm的大小,另一種方法就是調整/dev/shm的大小。

一.修改/dev/shm的大小

root 登錄

 

  1. #vi /etc/fstab  
  2. tmpfs                   /dev/shm                tmpfs   defaults,size=320M        0 0 

將上面的size改成超過sga的大小。然後重啓或者重新掛載

#umount /dev/shm

#mount /dev/shm

二.修改sga的大小

 

  1. alter system set sga_max_size=**** scope=spfile; 

然後重新啓動數據庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章