使用ASMM和AMM時設定shared_pool
從10g中引入了asmm後,相比以前的手動調整各種記憶體元件,在自動管理方面前進了一大步。DBA隻需要定義sga_target和sga_max_target就可以了
其他的各種事情就交給oracle自己去搞定了.
11g引入了amm,隻需要定義memory_target和memory_max_target就可以了,oracle會自動配置設定pga和sga中的各個元件.一切變得更簡單了.
特别需要關注的是對shared_pool的調整,我們知道shared _pool非常重要,在自動管理的環境情,可能會被其他的記憶體元件占用shared_pool的空間,
當shared_pool空間不夠時會引發各種各樣的問題,嚴重情況一下會引起DB被hang住,有時候也把這種情況稱為記憶體颠簸。在這裡值得一提的是在自動管理
記憶體的環境下也可以定義各種元件的大小,這時候的定義是表示一個元件的最小值。是以非常建議給shared_pool_size手動設定一個最小值,這樣保證shared_pool不
至于太小而引發的各種問題。初始大小設定為(memory_target*0.6)*0.4 .觀察一段時間,再根據實際情況做部分修改.
引發記憶體颠簸的情形還有可能是bug,具體可以參看mos相關文檔,也可以設定_memory_broker_stat_interval參數,定義了每次進行resize的時間(可能調整或不調整),
default為30秒。在v$sga_resize_ops表現了resize的操作.
另外還有db_recycle_cache_size和db_keep_cache_size需要手動設定.