ORA-04031:無法分配4064字節的共享內存報錯處理


百度知,是由於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 spfile

NAME                                TYPE       VALUE
------------------------------------ -----------------------------------------
spfile                              string     
值為空,表示數據庫以pfile啟動

要動態修改一定要用spfile啟動。如果現在是用pfile啟動,可以這樣切換成spfile啟動:

SQL>create spfile from pfile;

SQL>shutdown immediate;

SQL>startup;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM