熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle9i的物理內存管理

2013-11-13 16:01:01  來源: Oracle 

  在Oraclei以前的版本中你只能在啟動數據庫的時候控制Oracle使用的UNIX內存Oracle提供了一些INITORA參數來檢測系統全局區(system global areaSGA)的RAM大小一旦啟動了數據庫你將不能再改變SGA的大小和配置
  
  
  
  Oracle向一個/數據庫邁進的目標提出了調整UNIX內存區的大小而不必停止和重啟數據庫的要求更重要的是Oraclei的動態SGA特性允許你監控SGA內的物理內存使用並根據現有的Oracle數據庫的需求調整SGA內存區域
  
  Oraclei還加入了一項新的內存管理技術使得你能夠為所有的程序全局區(program global areaPGA)預分配內存並允許Oracle按照各類連接的不同需求為各連接分配內存這是對傳統Oracle數據庫的一項相當激進的更改而且使得SORT_AREA_SIZE和其他PGA參數被廢棄
  
  不僅要分配SGAOraclei DBA還必須擔負為UNIX Oracle服務器分配所有內存的責任同時還要為UNIX的管理需要預留%的內存
  
  在Oraclei之前的版本中同時擁有數個INITORA參數文件並不罕見因為這樣可以方便地調整數據庫並重新配置SGA以改變運行模式比如為在線事務處理(online transaction processingOLTP)而分配的SGA和Oracle數據倉庫處理模式的有很大不同
  
  Oracle推薦為OLTP數據庫和決策支持系統(decision support systemDSS)應用程序——如Oracle數據倉庫——使用不同的內存配置方案OLTP系統應該將UNIX內存的大部分分配給SGA而數據倉庫和DSS應用程序對內存較為敏感則應分配大部分內存給PGA連接
  
  當然如果一個數據庫會以兩種方式運作你可以運行一個腳本來動態改變內存分配例如如果一個數據庫在白天以OLTP模式運行而在晚上以DSS模式運行那麼你可以運行一個腳本從SGA中拿些內存出來重新分配到PGA區域
  
  alter system set sga_memory_max = g;
  alter system set pga_aggregate_target = g;
  
  在Oraclei中Oracle提供了增加或減少SGA內存以下部分大小的能力
  
  Data buffer size alter system set db_cache_size=m;
  Shared pool size alter system set shared_pool_size=m;
  Total PGA RAM memory size alter system set pga_aggregate_target=m;
  
  在UNIX上Oracle通過修改UNIX內存區的物理地址空間來達到動態內存分配的目的你在UNIX上用malloc()和free()命令就能做到
  
  新的動態SGA特性使得Oracle SGA可以以一個較小的容量開始並根據需要逐漸增加為了便利這個過程還提供了一個新的SGA_MAX_SIZE參數
From:http://tw.wingwit.com/Article/program/Oracle/201311/17674.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.