程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle SGA大小的解決方法的調整

Oracle SGA大小的解決方法的調整

編輯:Oracle數據庫基礎

以下的文章主要介紹的是調整Oracle SGA大小的解決方法,如果你是調整Oracle SGA大小的解決方法方面的新手,你就可以通過以下的文章對調整Oracle SGA大小的解決方法如何正確使用的詳細內容的介紹。

本文主要向你介紹的是深入講解調整Oracle SGA大小的解決方法 ,你如果是Oracle SGA的瘋狂一族的話,以下的文章,你一定不要錯過。 深入講解調整Oracle SGA大小的解決方法

在修改數據緩沖區的時候,提示錯誤如下:

  1. SQL> alter system set db_cache_size=25165824 scope=both;   
  2. alter system set db_cache_size=25165824 scope=both   
  3. *   
  4. ERROR at line 1:   
  5. ORA-02097: parameter cannot be modifIEd because 
    specifIEd value is invalid   
  6. ORA-00384: InsufficIEnt memory to grow cache   
  7. SQL>   

出現這種錯誤的具體原因:

Oracle SGA(SGA_max_size)是由共享池(shared_pool_size),緩沖區高速緩存(db_cache_size 9i以上版本),大型池(large_pool_size),Java池(Java_pool_size)組成的,在我們安裝的時候這些已經分配了一定的值,由於需求需要對其進行調整。

現在SGA的值是一定的,SGA通常是大於等於以上幾項的值之和。

假如正好SGA等於各項之和,那麼調大其中任何一項都會出錯,調小是不成問題的。

在此情況下也就出現了以上的錯誤:

下面我們以db_cache_size為例:

解決方法如下:

1、調小其它項的值,一般情況下我們不會采用這種方法,隨著業務的增大對內存的需求越來越高,估計其它項也沒有調小的余地

2、調大Oracle SGA此時數據庫需要是在關閉狀態,由於SGA不是動態參數,所以我們需要修改init$Oracle_SID.ORA的中SGA的大小

(1)首先創建參數文件,這是為了保持和服務器參數文件一致SQL>create pfile from spfile;

(2)修改init$Oracle_SID.ORA中對應的SGA_max_size大小

(3)創建服務器參數文件SQL>create spfile from pfile;

(4)啟動數據庫 修改db_cache_size的大小

  1. SQL> alter system set db_cache_size=25165824 scope=both;  
  2. System altered.  

修改完畢。

總結:

SGA_max_size需要重啟數據庫來進行調整,而其中的db_cache_size等可以動態調節,在調節共享池時需要計算好Oracle SGA的總容量,假如超過了SGA_max_size,就會出現報錯的現象。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved