[转]Oracle DB管理内存
生活随笔
收集整理的這篇文章主要介紹了
[转]Oracle DB管理内存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? 描述SGA 中的內存組件 ? 實施自動內存管理 ? 手動配置SGA 參數 ? 配置自動PGA 內存管理
通過這種內存管理方法,數據庫還可以動態調整單個SGA 組件的大小以及單個PGA 的大小。 因為目標內存初始化參數是動態的,因此可以隨時更改目標內存大小而不必重新啟動數據庫。最大內存大小相當于一個上限,以防你無意中將目標內存大小設置得太高。因為某些SGA 組件的大小不容易收縮,或者其大小必須不低于某個下限值,所以數據庫還要防止你將目標內存大小設置得太低。 這種間接的內存轉移依賴于操作系統(OS) 的共享內存釋放機制。將內存釋放給 OS 后,其它組件可以通過向OS 請求內存來分配內存。目前,Linux、Solaris 、HPUX、AIX 和Windows 平臺上已實施了自動內存管理。
- 內存管理:概覽
- 復查Oracle DB 內存結構
- 緩沖區高速緩存
- 使用多個緩沖池
- 共享池
- 大型池
- Java 池和流池
- 重做日志緩沖區
- 自動內存管理:概覽
| ? 啟用自動內存管理后, 數據庫將會自動設置內存的最佳分配方式。將不時更改內存分配以適應工作量的變化。 “最大內存大小”指定數據庫可以分配的, 并且為了使用自動內存管理而必須設置的內存量。 ? |
- Oracle DB 內存參數
自動內存管理是用兩個初始化參數進行配置的:
MEMORY_TARGET:動態控制SGA和PGA時,Oracle總共可以使用的共享內存大小,這個參數是動態的,因此提供給Oracle的內存總量是可以動態增大,也可以動態減小的。它不能超過MEMORY_MAX_TARGET參數設置的大小。默認值是0。
?
MEMORY_MAX_TARGET:這個參數定義了MEMORY_TARGET最大可以達到而不用重啟實例的值,如果沒有設置MEMORY_MAX_TARGET值,默認等于MEMORY_TARGET的值。
使用動態內存管理時,SGA_TARGET和PGA_AGGREGATE_TARGET代表它們各自內存區域的最小設置,要讓Oracle完全控制內存管理,這兩個參數應該設置為0。
?
Oracle DB 內存大小設置參數 上圖展示了內存初始化參數的層次結構。雖然僅需要設置MEMORY_TARGET 來觸發自動內存管理,但仍可以為各種高速緩存設置下限值。因此,如果子參數是用戶設置的,則這些參數值將是Oracle DB Server 自動優化該組件時的下限值。 ? 如果將SGA_TARGET和PGA_AGGREGATE_TARGET設置為非零值,則可將其分別視為SGA 和PGA 大小的下限值。MEMORY_TARGET 可以采用從SGA_TARGET+ PGA_AGGREGATE_TARGET到MEMORY_MAX_SIZE的值。 ? 如果設置了SGA_TARGET,則數據庫將僅自動優化SGA 的子組件的大小。PGA 的自動優化與是否顯式設置PGA 無關。但是,不會自動優化整個 SGA ( SGA_TARGET)? 和PGA ( PGA_AGGREGATE_TARGET) ,即不自動增長或收縮。- 監視自動內存管理
- 有效使用內存:準則
- 庫高速緩存的內存優化準則
- 自動共享內存管理:概覽
- ASMM 的工作原理
- 啟用自動共享內存管理功能
- 禁用ASMM
- 程序全局區(PGA)
- 使用V$PARAMETER 視圖
?
轉載于:https://www.cnblogs.com/gispf/p/3748050.html
總結
以上是生活随笔為你收集整理的[转]Oracle DB管理内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NGUI中UILabel使用url标签的
- 下一篇: 《无码的青春》第四章 程序员的二象性,左