ORA-04031:oracle无法分配共享内存
百度知,是由于oracle的shared_pool空間不夠的原因,解決方式有兩種
第一種:治標不治本
?
alter system flush shared_pool;?
?
?
這種方法可以立即有效果,但是不是根本的解決辦法,一小時左右又開始報上面的錯誤了,再次執行就可以了。
?
第二種:治標又治本
?
查看:
?
?
SHOW PARAMETERS SHARED_POOL_SIZE?
更改:
alter system set SHARED_POOL_SIZE='50M' SCOPE=both;上面這句話必須在sys用戶下或是用dba的身份登錄的用戶下執行。
貼士:shared_pool 是什么東東?
share_pool_size(共享池)的作用:
1、sql共享緩沖池 2、該參數是庫高速緩存和數據字典的高速緩存。?
?
設置共享池后,可能出現ORA-32001: 已請求寫入 SPFILE, 但是在啟動時未指定 SPFILE
?
alter system set SHARED_POOL_SIZE='50M' SCOPE=both;ORA-32001: 已請求寫入 SPFILE, 但是在啟動時未指定 SPFILE
?
?
?
顯示spfile是未啟動狀態
?
首先確定數據庫是以spfile啟動的還是pfile啟動
?
用show parameter spfile查看如果values對應有值,表示是spfile啟動的。否則就是pfile啟動的。
?
SQL> show parameter spfileNAME????????????????????????????????TYPE???????VALUE
------------------------------------ -----------------------------------------
spfile??????????????????????????????string?????
值為空,表示數據庫以pfile啟動
要動態修改一定要用spfile啟動。如果現在是用pfile啟動,可以這樣切換成spfile啟動:
?
轉載于:https://www.cnblogs.com/leis/p/7365218.html
總結
以上是生活随笔為你收集整理的ORA-04031:oracle无法分配共享内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: virtualbox vboxmanag
- 下一篇: 另一鲜为人知的单例写法-ThreadLo