oracle的自動記憶體管理

db_wjw發表於2011-10-13
    Oracle從9i開始引入了pga自動記憶體管理,從10g引入了sga自動記憶體管理(automatic shared memory management,ASSM),從11g引入了自動記憶體管理(automatic memory management,AMM)。

1、要啟動pga自動記憶體管理,需要使用兩個引數:
    workarea_size_policy=auto(預設值)
    pga_aggregate_target=**
2、在使用SGA自動管理時,例項將監視各個SGA元件的記憶體需求,並根據需要將記憶體分配給元件。一般規則是,分配給大池、java池、流池的記憶體不可轉讓,分配給共享池、資料庫緩衝區快取的記憶體是可以轉讓的,而日誌緩衝區(log_buffer)的大小在啟動時就固定下來,無法進行自動管理。
    手動管理SGA的引數有
    shared_pool_size
    db_cache_size
    large_pool_size
    java_pool_size
    streams_pool_size
    要啟用SGA自動管理,需要保留以上引數的預設值(或者將其設定為0),並設定一個引數
    sga_target
    如果設定了任何手動設定的引數,則給定的值將作為最小大小(ASSM不會使元件的大小低於此值),日誌緩衝區包含在sga_target中。
3、自動記憶體管理可以根據需要再SGA和PGA之間轉換記憶體,要啟用自動記憶體管理,需要設定兩個引數:
    memory_target
    memory_max_target(為靜態引數,調整後需要重啟例項)
    如果啟用了自動記憶體管理,又設定了pga_aggregate_target或sga_target,則指定的值將是最小大小

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26194851/viewspace-709116/,如需轉載,請註明出處,否則將追究法律責任。

相關文章