一、 问题背景
想禁用掉oracle的AMM特性,在修改内存参数时执行了 alter system set MEMORY_MAX_TARGET=0 scope=spfile; 在设置时没有报错,但在启动数据库时遇到报错:
- ORA-00843: Parameter not taking MEMORY_MAX_TARGET into account
- ORA-00849: SGA_TARGET 10737418240 cannot be set to more than MEMORY_MAX_TARGET 0
懵了一下,还好有备份参数文件,赶紧先恢复然后启动数据库,搜索了一下有好多人都遇到过这个问题 - -||
二、 解决方法
在数据库启动的情况下,其他内存参数还是照设,MEMORY_MAX_TARGET 设置方法有两种:
1. 法一
利用reset将参数改回默认值(MEMORY_MAX_TARGET 默认值为0),重启数据库
alter system reset memory_target;
alter system reset memory_max_target;
2. 法二
利用spfile创建pfile
create pfile from spfile;
在pfile中删除掉 memory_target 和 memory_max_target相关行
利用pfile启动数据库
startup pfile='xxxx'
利用pfile创建spfile
create spfile from pfile;
正常启动数据库
startup
参考
ORA-00843 ORA-00849 Trying to Change SGA_TARGET with MEMORY_MAX_TARGET=0 Being Active (文档 ID 1397761.1)
ORA-00843: Parameter not taking MEMORY_MAX_TARGET into account,-十字螺丝钉-ChinaUnix博客