SQL> alter system set memory_target=200m scope=spfile; System altered. SQL> alter system set sga_target=0 scope=spfile; System altered. SQL> alter system set pga_aggregate_target=0 scope=spfile; System altered.
SQL> select a.ksppinm name,b.ksppstvl value 2 from x$ksppi a,x$ksppcv b 3 where a.indx=b.indx 4 and (a.ksppinm like '%sga_target%' 5 or a.ksppinm like '%pga_aggregate_target%');
NAME VALUE ---------------------------------------- ------------------------------ sga_target 0 __sga_target 125829120 pga_aggregate_target 0 __pga_aggregate_target 79691776
下面我们了解一下ORA-00845的由来与解决方案: 如果memory_max_target/memory_target设置过大,可能导致instance无法启动,报ORA-00845错误 SQL> alter system set memory_max_target=300m scope=spfile; System altered.
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORA-00845: MEMORY_TARGET not supported on this system
这个错误有点误导,实际上这并不是说该平台版本上不支持AMM特性,只是设置的memory_max_target超过了系统中设置的share memory(/dev/shm)而已。在Oracle11g for linux中似乎使用了一种新的机制来管理共享内存段,而不是传统的sys /dev/shm了。在alert.ora中可以找到更准确的错误描述