oracle启动失败怎么办,oracle 启动失败ORA-27300

Server:  sun OS

Db: 9.2.0.8

$ uname -a

SunOS hsun90 5.8 Generic_117350-62 sun4u sparc SUNW,Sun-Fire-V240

$ more /etc/system

……………..

set shmsys:shminfo_shmmax=8589934590

set shmsys:shminfo_shmmin=1

set shmsys:shminfo_shmmni=100

set shmsys:shminfo_shmseg=10

set semsys:seminfo_semmsl=1500

set semsys:seminfo_semmns=10000

set semsys:seminfo_semopm=100

set semsys:seminfo_semvmx=32767

……….

$ ulimit -a

time(seconds)        unlimited

file(blocks)         unlimited

data(kbytes)         unlimited

stack(kbytes)        8192

coredump(blocks)     unlimited

nofiles(descriptors) 256

vmemory(kbytes)      unlimited

该服务器上有两个db,但是只能启动其中一个,尝试启动第2个的时候会报告如下错误

Connected to an idle instance.

SQL> startup nomount;

ORA-27154: post/wait create failed

ORA-27300: OS system dependent operation:semget failed with status: 28

ORA-27301: OS failure message: No space left on device

ORA-27302: failure occurred at: sskgpbitsper

$  ipcs -a

IPC status from as of Tue Apr 17 09:12:34 MEST 2012

T         ID      KEY        MODE        OWNER    GROUP  CREATOR   CGROUP CBYTES  QNUM QBYTES LSPID LRPID   STIME    RTIME    CTIME

Message Queues:

T         ID      KEY        MODE        OWNER    GROUP  CREATOR   CGROUP NATTCH      SEGSZ  CPID  LPID   ATIME    DTIME    CTIME

Shared Memory:

m       3100   0xb911e7e8 --rw-r-----   oracle      dba   oracle      dba      8  222298112 14823 17807  9:07:51  9:08:00  8:28:19

T         ID      KEY        MODE        OWNER    GROUP  CREATOR   CGROUP NSEMS   OTIME    CTIME

Semaphores:

s    4128768   0x607f4428 --ra-r-----   oracle      dba   oracle      dba    24  9:08:29  8:28:20s      65539   0x7c4d     --ra-ra-ra-     root    other     root    other     1  6:43:45  6:23:30

如果没有db运行,随便启动任意一个db都可以成功,但就是不能两个都启动

使用truss跟踪sqlplus

$ truss -aefo sqlplus.log /opt/oracle/u01/app/oracle/product/9.2.0/bin/sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.8.0 - Production on Tue Apr 17 04:53:32 2012

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;

ORA-27154: post/wait create failed

ORA-27300: OS system dependent operation:semget failed with status: 28

ORA-27301: OS failure message: No space left on device

ORA-27302: failure occurred at: sskgpbitsper

SQL> exit

日志摘录如下

28814:  stat("/opt/oracle/u01/app/oracle/product/9.2.0/dbs/spfilePROD025.ora", 0xFFFFFFFF7FFFB368) Err#2 ENOENT

28814:  stat("/opt/oracle/u01/app/oracle/product/9.2.0/dbs/spfile.ora", 0xFFFFFFFF7FFFB368) Err#2 ENOENT

28814:  brk(0x103511020)                                = 0

28814:  brk(0x103531020)                                = 0

28814:  open("/opt/oracle/u01/app/oracle/product/9.2.0/oracore/mesg/lrmus.msb", O_RDONLY) = 13

28814:  fcntl(13, F_SETFD, 0x00000001)                  = 0

28814:  lseek(13, 0, SEEK_SET)                          = 0

28814:  read(13, "1513 "011303\t\t\0\0\0\0".., 256)     = 256

28814:  open("/opt/oracle/u01/app/oracle/product/9.2.0/dbs/initPROD025.ora", O_RDONLY) = 14

28814:  stat("/opt/oracle/u01/app/oracle/product/9.2.0/dbs/initPROD025.ora", 0xFFFFFFFF7FFFAAF8) = 0—挨个搜查pfile,然后lseek读取每个参数

28814:  fstat(14, 0xFFFFFFFF7FFFAAB0)                   = 0

28814:  brk(0x103531020)                                = 0

28814:  brk(0x103535020)                                = 0

28814:  ioctl(14, TCGETA, 0xFFFFFFFF7FFFA9EC)           Err#25 ENOTTY

28814:  read(14, " # # # # # # # # # # # #".., 8192)    = 2830

28814:  lseek(14, 0, SEEK_CUR)                          = 2830

28814:  close(14)                                       = 0

28814:  sysconfig(_CONFIG_NPROC_CONF)                   = 2

28814:  pset_bind(-2, P_PID, -1, 0xFFFFFFFF7FFFB0A4)    = 0

………………………….

28814:  write(7, " [ 1 7 - A P R - 2 0 1 2".., 45)      = 45

28814:  lseek(9, 92160, SEEK_SET)                       = 92160

28814:  read(9, "\0\r13A0\0\0\0 V13A6\0\0".., 512)      = 512

28814:  lseek(9, 13312, SEEK_SET)                       = 13312

28814:  read(9, "\01903A2\0\0\09E03A3\0\0".., 512)      = 512

28814:  lseek(7, 0, SEEK_CUR)                           = 92045

28814:  lseek(7, 0, SEEK_CUR)                           = 92045

28814:  write(7, " [ 1 7 - A P R - 2 0 1 2".., 40)      = 40

28814:  shmget(-1190008856, 0, 0)                       Err#2 ENOENT

28814:  shmget(-1190008855, 0, 0)                       Err#2 ENOENT

28814:  shmget(-1190008854, 0, 0)                       Err#2 ENOENT

28814:  shmget(-1190008853, 0, 0)                       Err#2 ENOENT28814:  close(6)                                        = 0

28814:  open("/opt/oracle/u01/app/oracle/admin/PROD025/bdump/alert_PROD025.log", O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE, 0664) = 6

………………………….

28814:  getuid()                                        = 1025 [1025]

28814:  getgid()                                        = 101 [101]

28814:  semget(0, 1, 0600|IPC_CREAT|IPC_EXCL)           Err#28 ENOSPC

28814:  stat("/opt/oracle/u01/app/oracle/admin/PROD025/udump", 0xFFFFFFFF7FFFA040) = 0

28814:  getpid()                                        = 28814 [28813]

28814:  getpid()                                        = 28814 [28813]

28814:  close(5)                                        = 0

28814:  lstat("/opt/oracle/u01/app/oracle/admin/PROD025/udump/prod025_ora_28814.trc", 0xFFFFFFFF7FFFA260) Err#2 ENOENT

使用sysdef -i查看更详细的信号量设置,

$ /usr/sbin/sysdef -i | grep -i sem

sys/semsys

sys/sparcv9/semsys

* IPC Semaphores

10  semaphore identifiers (SEMMNI) 10000  semaphores in system (SEMMNS)

30  undo structures in system (SEMMNU)

1500  max semaphores per id (SEMMSL)

100  max operations per semop call (SEMOPM)

10  max undo entries per process (SEMUME)

32767  semaphore maximum value (SEMVMX)

16384  adjust on exit max value (SEMAEM)

其中SEMMNI仅设置为10,是不是该参数过小导致第2个启动的oracle无法分配信号量进而启动失败?

请各位指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值