Oracle启动失败ORA-00845: MEMORY_TARGET not supported on this system

使用虚拟机时,机器实在太卡,原来虚拟机会把你所分配给它的内存扣死,昨天把虚拟机的内存从1.5G缩小到1G。机器果然顺畅了,不过担心的问题也出现了--oracle的实例启动不了。

SQL> startup

ORA-00845: MEMORY_TARGET not supported on this system


来自Oracle的官方解析是:

Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm)and file descriptors. The size of the shared memory should be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on the computer. If MEMORY_MAX_TARGET or MEMORY_TARGET is set to a non zero value, and an incorrect size is assigned to the shared memory, it will result in an ORA-00845 error at startup.

简单来说就是 MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小

我不知道怎样调整MEMORY_MAX_TARGET,所以就调整/dev/shm的大小


查看原本大小

[root@Shine2 oracle]# df -h|grep shm

tmpfs    505M  75K  505M  1% /dev/shm


在文件搜索里找到6个initXXX.ora文件,随便打开两个发现memorytarget的值不同。。。

其中有一个是1G,那就1G吧。。。也不知道是什么

[oracle@Shine2 ~]$ gedit /etc/fstab

把文件中

tmpfs                   /dev/shm                tmpfs   defaults        0 0

改为

tmpfs                   /dev/shm                tmpfs   defaults,size=1G        0 0


[root@Shine2 oracle]# umount /dev/shm

出现错误:/dev/shm is busying,并提示我使用lsof命令。

lsof(list open files)是一个列出当前系统打开文件的工具。

[root@Shine2 oracle]# lsof |grep shm

lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/oracle/.gvfs

Output information may be incomplete.

pulseaudi 2997    oracle  mem       REG       0,16  67108904       9562 /dev/shm


[root@Shine2 oracle]# kill 2997

[root@Shine2 oracle]# lsof |grep shm

lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/oracle/.gvfs

Output information may be incomplete.

把使用该文件的进程干掉了


[root@Shine2 oracle]# umount /dev/shm

[root@Shine2 oracle]# mount /dev/shm

[root@Shine2 oracle]# df -h|grep shm

tmpfs                 1.0G  400M  625M  40% /dev/shm

卸载再重新挂载后,实例终于可以启动了~哈哈


[oracle@Shine2 ~]$ sqlplus

SQL*Plus: Release 11.2.0.1.0 Production on Sat Jul 30 09:34:01 2011

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

Enter user-name: / as sysdba

Connected to an idle instance.


SQL> startup

ORACLE instance started.


Total System Global Area  640286720 bytes

Fixed Size            1338420 bytes

Variable Size          461374412 bytes

Database Buffers      171966464 bytes

Redo Buffers            5607424 bytes

Database mounted.

Database opened.

相关推荐

评论