使用虚拟机 linux 5 ,安装oracle11g 后可以正常使用。
今天扩大参数 memory_max_target ,后报错,无法启动。将过反复测试,发现此参数最大能为物理内存的1/2。
小于等于1/2物理内存时一切OK,大于1/2物理内存时启动报错。
操作过程如下:
> alter system set memory_max_target=1200M scope=spfile;
将最大使用内存分配1.2G,
shutdown 后 再 startup 使新参数生效,发生错误
ORA-00845: MEMORY_TARGET not supported on this system
怀疑是因为分配内存过多引起的错误。
> create pfile from spfile ;
导出pfile文件,查看 pfile
> cd $ORACLE_HOME/dbs
> vi initora11g.ora 参数文件
修改内存参数
memory_max_target =900M
memory_target=900M
sqlplus / as sysdba
create spfile from pfile;
startup ;
可以顺利启动。
将高人指点,linux下需要修改文件 /etc/fstab 中的tmpfs参数的默认值。(默认值是物理内存的一半)
将第二行
tmpfs /dev/shm tmpfs defaults 0 0
修改为
tmpfs /dev/shm tmpfs defaults, size = 1500M 0 0
然后
1) mount -a 加载/etc/fstab中的所有内容
或者
2)先 umount tmpfs,然后再
mount tmpfs /dev/shm -t tmpfs -o size=1500M
使得参数 tmpfs生效。
使用命令 mount 查看mount的情况
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
tmpfs on /dev/shm type tmpfs (rw,size=1500M)
说明tmpfs已经挂载成功。
此时 memory_max_target 可以扩大到1450M而不会报错。
可以简单的理解为 tmpfs就是建立在内存上的临时文件,oracle 11g使用共享内存时要用到就行啦