> CentOS > CentOS故障 >

OS下Oracle11gR2的ORA-00845错误解决方法

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.


(责任编辑:IT)