Oracle
如何為某些目標值配置自動記憶體管理?
我對 Oracle 數據庫配置有點困惑。
我的伺服器:
- 作業系統:Windows Server 2012 R2 64bit
- 記憶體:40GB
- 甲骨文:甲骨文數據庫 12c (12.1.0.2.0) 64 位
我的目標:
- Oracle 應使用 32GB 的 40GB RAM
- 應該啟動 AMM(我不想自己配置所有內容)
目前參數:
SQL> SHOW PARAMETER SGA NAME TYPE VALUE ------------------------------------ ----------- --------- lock_sga boolean FALSE pre_page_sga boolean TRUE sga_max_size big integer 20G sga_target big integer 0 SQL> SHOW PARAMETER PGA NAME TYPE VALUE ------------------------------------ ----------- --------- pga_aggregate_limit big integer 9827M pga_aggregate_target big integer 8G SQL> SHOW PARAMETER MEMORY NAME TYPE VALUE ------------------------------------ ----------- --------- memory_max_target big integer 32G memory_target big integer 32G
- 我應該將
sga_max_size
andpga_aggregate_target
設置為零嗎?- 其他所有配置是否正確?
SGA_MAX_SIZE
使用 AMM 時不應設置參數。它修復了 SGA 大小。如果
pga_aggregate_target
在使用 AMM 時設置為非零值,則為 PGA 大小設置下限。這通常不是必需的。參數
pga_aggregate_limit
設置 PGA 上限。首先,將其保留為預設值。
*Oracle® 數據庫,管理員指南,12c 第 1 版 (12.1)*對此進行了描述
設置 MEMORY_TARGET 後,SGA_TARGET 設置成為 SGA 的最小大小,而 PGA_AGGREGATE_TARGET 設置成為實例 PGA 的最小大小。如圖所示,通過將這兩個都設置為零,沒有最小值,只要它們的總和小於或等於 MEMORY_TARGET 設置,SGA 和實例 PGA 就可以根據需要增長。SQL 工作區的大小仍然是自動的。
您可以省略將 SGA_TARGET 和 PGA_AGGREGATE_TARGET 參數值設置為零的語句,並將其中一個或兩個值保留為正數。在這種情況下,這些值充當 SGA 或實例 PGA 大小的最小值。
此外,您可以使用 PGA_AGGREGATE_LIMIT 初始化參數為 PGA 記憶體設置實例範圍的硬限制。無論您是否使用自動記憶體管理,您都可以設置 PGA_AGGREGATE_LIMIT。請參閱“使用自動 PGA 記憶體管理”。