一个项目上的oracle 11G数据库,操作系统为redhat 6.3 X86_64,数据库版本为oracle 11G R2。
按照原有系统相关配置,配置好oracle所需的环境变量。所有准备就绪后,启动数据库进行测试,结果报如下错误:
ORA-00845: MEMORY_TARGET not supported on this system
这个是由于/dev/shm(共享内存)空间太小,而数据库所需的内存(建库是设置的全局共享内存)超过/dev/shm目录大小所致,tmpfs 的值默认情况是为系统内存的一半,那么我们就需要给tmpfs增加空间。
]# df –h
Filesystem Size Used Avail Use% Mounted on
tmpfs 32G 14G 18G 44% /dev/shm
修改/etc/fstab文件:
tmpfs /dev/shm tmpfs defaults,size=46G 0 0
重新挂载/dev/shm使修改生效:
# mount -o remount /dev/shm
再次查看空间大小
[root@orc09-lx ~]# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 46G 14G 33G 31% /dev/shm
修改成功后,再次启动数据库,已经没有报错,数据库正常启动。注意,数据库正常启动了是不是就完成了呢?不是的,重启服务器后,你会发现tmpfs又变成默认大小了,刚才修改的并没有生效,我们需要将它设置为永久生效呢。这里要注意,在RHEL6.0以上版本,除了修改/etc/fstab文件我们还要修改一个非常重要的文件:/etc/rc.d/rc.sysinit
1、注释以下内容:
# mount -f /dev/shm >/dev/null 2>&1
2、在/etc/rc.d/rc.sysinit文件中找到并修改如下内容:
# Mount all other filesystems (except for NFS and /proc, which is already
# mounted). Contrary to standard usage,
# filesystems are NOT unmounted in single user mode.
# The ‘no’ applies to all listed filesystem types. See mount(8).
if [ "$READONLY" != "yes" ] ; then
action $”Mounting local filesystems: ” mount -a -t tmpfs,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev
else
action $”Mounting local filesystems: ” mount -a -n -t tmpfs,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev
fi
修改完成后,重新启动操作系统,发现已经成功。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14184018/viewspace-766417/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14184018/viewspace-766417/