• 欢迎访问极客公园网站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入极客公园 QQ群
  • Git主题现已支持滚动公告栏功能,兼容其他浏览器,看到的就是咯,在后台最新消息那里用li标签添加即可。
  • 最新版Git主题已支持说说碎语功能,可像添加文章一样直接添加说说,新建说说页面即可,最后重新保存固定连接,演示地址
  • 百度口碑求点赞啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊http://koubei.baidu.com/s/gitcafe.net
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏极客公园吧

(总结)Linux下Oracle11gR2的ORA-00845错误解决方法

原创总结 博客教主 12年前 (2012-11-30) 11140次浏览 1个评论

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.


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:(总结)Linux下Oracle11gR2的ORA-00845错误解决方法
喜欢 (0)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. 今天也遇到这个问题了,系统是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 大小在系统重启后为什么会失效?
    Terry Zheng2014-05-12 10:39