嘗試動態增加DB_CACHE_SIZE遭遇ORA-02097/ORA-00384: Insufficient memory to grow cache,根因在於SGA_MAX_SIZE固定,各組件總和已達上限。
ALTER SYSTEM SET db_cache_size=25165824 SCOPE=BOTH;
-- ORA-00384: Insufficient memory to grow cache
SGA_MAX_SIZE = Σ(各組件當前值),任何單一組件增大都會超過上限SGA_MAX_SIZE為靜態參數,修改需重啟實例;組件參數多為動態可調-- 1. 建立參數檔備份(與SPFILE同步)
CREATE PFILE FROM SPFILE;
-- 2. 編輯init.ora,調大SGA_MAX_SIZE
-- *.sga_max_size = 2G (視實體記憶體而定)
-- 3. 由參數檔重建SPFILE
CREATE SPFILE FROM PFILE;
-- 4. 重啟實例
SHUTDOWN IMMEDIATE;
STARTUP;
-- 5. 動態調整目標組件
ALTER SYSTEM SET db_cache_size=25165824 SCOPE=BOTH;
-- System altered.
MEMORY_TARGET/MEMORY_MAX_TARGET(11g+)採用自動記憶體管理(AMM)簡化運維V$SGAINFO、V$SGA_RESIZE_OPS追蹤調整歷史SHARED_POOL_SIZE縮減可能導致Library Cache刷新,謹慎操作