Oracle9i的實體記憶體管理(轉)
Oracle9i的實體記憶體管理(轉)[@more@] 在Oracle9i以前的版本中,你只能在啟動資料庫的時候控制Oracle使用的UNIX記憶體。Oracle提供了一些INIT.ORA引數來檢測系統全域性區(system global area,SGA)的RAM大小。一旦啟動了資料庫,你將不能再改變SGA的大小和配置。 Oracle向一個24/7資料庫邁進的目標,提出了調整UNIX記憶體區的大小而不必停止和重啟資料庫的要求。更重要的是,Oracle9i的動態SGA特性允許你監控SGA內的實體記憶體使用,並根據現有的Oracle資料庫的需求調整SGA記憶體區域。 Oracle9i還加入了一項新的記憶體管理技術,使得你能夠為所有的程式全域性區(program global area,PGA)預分配記憶體,並允許Oracle按照各類連線的不同需求為各連線分配記憶體。這是對傳統Oracle資料庫的一項相當激進的更改,而且使得SORT_AREA_SIZE和其他PGA引數被廢棄。 不僅要分配SGA,Oracle9i DBA還必須擔負為UNIX Oracle伺服器分配所有記憶體的責任,同時還要為UNIX的管理需要預留20%的記憶體。 在Oracle9i之前的版本中,同時擁有數個INIT.ORA引數檔案並不罕見,因為這樣可以方便地調整資料庫並重新配置SGA以改變執行模式。比如,為線上事務處理(online transaction processing,OLTP)而分配的SGA和Oracle資料倉儲處理模式的有很大不同。 Oracle推薦為OLTP資料庫和決策支援系統(decision support system,DSS)應用程式――如Oracle資料倉儲――使用不同的記憶體配置方案。OLTP系統應該將UNIX記憶體的大部分分配給SGA,而資料倉儲和DSS應用程式對記憶體較為敏感,則應分配大部分記憶體給PGA連線。 當然,如果一個資料庫會以兩種方式運作,你可以執行一個指令碼來動態改變記憶體分配。例如,如果一個資料庫在白天以OLTP模式執行,而在晚上以DSS模式執行,那麼你可以執行一個指令碼從SGA中拿些記憶體出來,重新分配到PGA區域。 alter system set sga_memory_max = 3g; alter system set pga_aggregate_target = 3g; 在Oracle9i中,Oracle提供了增加或減少SGA記憶體以下部分大小的能力: Data buffer size - alter system set db_cache_size=300m; Shared pool size - alter system set shared_pool_size=200m; Total PGA RAM memory size - alter system set pga_aggregate_target=2000m; 在UNIX上,Oracle透過修改UNIX記憶體區的實體地址空間來達到動態記憶體分配的目的。你在UNIX上用malloc()和free()命令就能做到。 新的動態SGA特性使得Oracle SGA可以以一個較小的容量開始,並根據需要逐漸增加。為了便利這個過程還提供了一個新的SGA_MAX_SIZE引數。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-957133/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記憶體管理篇——實體記憶體的管理記憶體
- 記憶體管理兩部曲之實體記憶體管理記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- Linux實體記憶體管理Linux記憶體
- 記憶體管理 記憶體管理概述記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- C++記憶體管理:簡易記憶體池的實現C++記憶體
- 【記憶體管理】記憶體佈局記憶體
- 段頁式記憶體管理(轉載)記憶體
- Innodb記憶體管理解析[轉載]記憶體
- Go:記憶體管理與記憶體清理Go記憶體
- python的記憶體管理Python記憶體
- CF的記憶體管理。記憶體
- JavaScript的記憶體管理JavaScript記憶體
- 高階記憶體管理程式設計指南-實用的記憶管理記憶體程式設計
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- [轉載] Java直接記憶體與堆記憶體Java記憶體
- JavaScript 記憶體管理JavaScript記憶體
- iOS 記憶體管理iOS記憶體
- Android記憶體管理Android記憶體
- OC記憶體管理記憶體
- 記憶體管理-swMemoryGlobal記憶體
- Flink記憶體管理記憶體
- MySQL記憶體管理MySql記憶體
- Java 8 記憶體管理原理解析及記憶體故障排查實踐Java記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- Linux共享記憶體的管理Linux記憶體
- javascript中的記憶體管理JavaScript記憶體
- AntDB記憶體管理之記憶體上下文之記憶體上下文機制是怎麼實現的記憶體
- 有管理共享記憶體設計方法的具體實現記憶體
- 【Java基礎】實體記憶體&虛擬記憶體Java記憶體
- Java的記憶體管理機制之記憶體區域劃分Java記憶體
- Java應用程式中的記憶體洩漏及記憶體管理Java記憶體
- iOS 記憶體管理MRCiOS記憶體
- “理解”iOS記憶體管理iOS記憶體
- iOS 記憶體管理研究iOS記憶體
- 01記憶體管理-概述記憶體
- 管理 Bitmap 記憶體(譯)記憶體