在RHL4的Oralce11:startup时报错:
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
官方解释:
ORA-00845: MEMORY_TARGET not supported on this system
Cause: The MEMORY_TARGET parameter was not supported on this operating system or /dev/shm was not sized correctly on Linux.
<!-- class="msgexplan" -->
Action: Refer to documentation for a list of supported operating systems. Or, size /dev/shm to be at least the SGA_MAX_SIZE on each Oracle instance running on the system.
意思是oracle SGA的大小超过了系统shm的大小,有两种解决方案:1.修改shm的大小 .2 修改SGA_MAX_SIZE的大小。
建议修改shm,shm类似于Windows平台的虚拟内存,shm默认自动调节大小,大约是内存的一半。我的内存是1G,查看shm的大小是508M,而oralce默认的SGA大小是422M.因为shm的剩余空间是随着应用程序的变化而调节的,当shm小于SAG,启动oracle就会出现此问题。
解决方案是自定义shm的大小,需要修改/etc/fstab文件:
[oracle@oracle11g ~]$ vi /etc/fstab
把文件中:
none /dev/shm tmpfs defaults 0 0
修改为:
none /dev/shm tmpfs defaults,size=1G 0 0
然后保存退出,重新挂载shm
[oracle@oracle11g ~]$ umount /dev/shm
[oracle@oracle11g ~]$ mount /dev/shm
查看shm大小
[oracle@oracle11g ~]$ df -h |grep shm
none 1.0G 308M 200M 30% /dev/shm
重新启动oracle,OK!