1. 程式人生 > >ORACLE 11G 記憶體調整遇到的陷阱

ORACLE 11G 記憶體調整遇到的陷阱

好久不寫東西了。
————————————————————————————————————
1,問題來源

此時開發工具和資料庫都沒啟動
此時開發工具和資料庫都沒啟動,原因是當時自己覺得16G夠用了 給分配了2G。
2,解決方法:(以下命令都在CMD下)

sqlplus / as sysdba;
show parameter memory_max_target;
show parameter memory_target;
alter system set memory_max_target=600M scope=spfile;
alter system set memory_target=600
M scope=spfile;
show parameter memory_max_target;

改完需要重啟↓

shutdown immediate;
startup;

結果涼涼↓

ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 6291
45600.

3,問題分析:
通過查詢資料獲悉:
tmpfs>MEMORY_TARGET >sga+pga
所以調整不是上面那麼簡單

錯誤的原因在於:

我沒有去改【sga】的情況下改了【MEMORY_TARGET】

接下來操作就又變成了體力活

建立一個新的pfile配置檔案↓

 create pfile='D:\work\oracledb\product\11.2.0\dbhome_1\database\pfile.new' from spfile='D:\work\oracledb\product\11.2.0\dbhome_1\database\SPFILEORCL.ORA';

手工修改【pfile.new】把記憶體調合理!
最後,將新建立的配置檔案作為啟動檔案載入

create spfile from pfile='D:\work
\oracledb\product\11.2.0\dbhome_1\database\pfile.new';

4,分析總結:

  • oracle記憶體要遵循tmpfs>MEMORY_TARGET >sga+pga原則
  • 生效的profile配置檔案切記不可手工改(二進位制)

    其他沒什麼了,隨意寫的,東西基本都可以在牆內找得到,當個筆記吧