正在加载...

PS:前些时间一台演示环境的Oracle 11g for Linux不知什么原因,启动不起来,报错ORA-00845。搜索了下,这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小。当时解决了没空写总结,今天有点空,总结分享一下:

SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

[root@oracle11g ~]# df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 3072000 1374176 1697824 45% /dev/shm

Oracle在metalink的文档:Doc ID: Note:460506.1中进行了说明。解决这个问题只有两个方法,一种是修改初始化参数,使得初始化参数中SGA的设置小于/dev/shm的大小,另一种方法就是调整/dev/shm的大小。

我的解决方法:

1、修改/dev/shm的大小可以通过修改/etc/fstab文件来实现(size的值要根据内存大小来调整,我调整了几次才成功。):

[root@oracle11g ~]# vim /etc/fstab

/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults,size=3000m 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0


2、修改/etc/fstab,重新mount /dev/shm,就可以启动数据库了,问题解决。

[root@oracle11g ~]# umount /dev/shm
[root@oracle11g ~]# mount /dev/shm



[root@oracle ~]# su - oracle
[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 30 17:09:42 2012

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1102344192 bytes
Fixed Size 2212576 bytes
Variable Size 838864160 bytes
Database Buffers 251658240 bytes
Redo Buffers 9609216 bytes
Database mounted.
Database opened.

: http://www.ha97.com/5175.html

本文相关评论 - 才一条评论
Terry Zheng
2014-05-12 10:39:28
Google Chrome 34.0.1847.132 Google Chrome 34.0.1847.132 GNU/Linux x64 GNU/Linux x64

今天也遇到这个问题了,系统是CentOS 6.2,修改 /etc/fstab 重启之后,mount 命令看到 tmpfs 的挂载参数和 /etc/fstab 是一致的,但是用 df 看到的 tmpfs 大小却是默认的,和修改 /etc/fstab 之前的一样。通过 `mount -o remount tmpfs’ 命令重新挂载 tmpfs 之后大小就是指定的大小;我现在是把这条命令写入到 `/etc/rc.local’ 里了,感觉有点 dirty。

Oracle Linux (OEL)下修改tmpfs大小并使之生效(http://blog.csdn.net/sunjiapeng/article/details/8504639) 这篇 Blog 说修改 /etc/rc.sysinit 这个脚本,这个方法我没有测试,请问教主是怎么修改 tmpfs 大小的,通过 /etc/fstab 修改 tmpfs 大小在系统重启后为什么会失效?