首页 > 代码库 > ORA-00845: MEMORY_TARGET not supported on this system

ORA-00845: MEMORY_TARGET not supported on this system

[oracle@localhost ~]$ sqlplus / as sysdba

SQL> startup

ORA-00845: MEMORY_TARGET not supported on this system


问题定位:安装数据库时或者修改了参数MEMORY_TARGET或者SGA_TARGET的大小。
 SGA参数的大小超过了操作系统/dev/shm的大小。
 linux安装完后默认/dev/shm为物理内存的一半。

技术背景:linux大内存支持(VeryLarge Memory)中,使用了shmfs/tmpfs选项,ramfs也可以。
 /dev/shm目录挂载类型为tmpfs,此共享内存用于交换,尤其对于大文件优势明显。
 相对于ramfs,tmpfs的优势在于动态调整物理内存的占用,而ramfs不能调整。
 /dev/shm与swap的区别:shm基于内存的文件系统,swap基于硬盘的文件系统。

解决方法:

1调整MEMORY_TARGET(11G)或者SGA_TARGET(9i,10G)大小(不建议)。

2调整/dev/shm的大小。
 修改/etc/fstab,重新mount /dev/shm,然后就可以启动数据库了。

1)查看/dev/shm 大小
 df -k /dev/shm
 Filesystem 1K-blocks UsedAvailable Use% Mounted on
 tmpfs 4089416 0 4089416 0% /dev/shm
2)调整/dev/shm大小
 vi /etc/fstab
 #tmpfs /dev/shm tmpfs defaults 00
 tmpfs /dev/shm tmpfsdefaults,size=10240M 0 0
3)重新加载
 umount /dev/shm
 mount /dev/shm
 df -k /dev/shm
4)登陆测试
 sqlplus / as sysdba

ORA-00845: MEMORY_TARGET not supported on this system