作者公众号,欢迎一起交流。
今天在做数据库(数据库版本为11.2.0.4)迁移,将数据库关闭后使用stratup命令启动出错,错误信息如下:ORA-00845: MEMORY_TARGET not supported on this system,看错误提示是MEMORY_TARGET设置过大造成的,打算将该参数调小,由于没有文本参数文件pfile,故打算以startup nomount方式重启,执行create pfile from spfile生成pfile,然后对参数MEMORY_TARGET进行修改,但执行startup nomount命令时,仍出现该错误,问题解决后在测试环境进行复现,并进行分析。
经分析,该库使用的内存管理方式是AMM,即自动内存管理。从Oracle 11g数据库开始,自动内存管理特性需要更多的共享内存share memory(/dev/shm)和文件描述符file descriptions,共享内存的大小必须大于参数memory_target或memory_max_target的大小,否则就会出现ORA-00845错误。
查看共享内存大小:
[oracle@g11 dbs]$ df -h /dev/shm/
Filesystem Size Used Avail Use% Mounted on
tmpfs 2.0G 80K 2.0G 1% /dev/shm
查看spfile中memory_targe大小ÿ