诊断 ORA-27300 ORA-27301 ORA-27302 错误 (文档 ID 2179478.1)
诊断 ORA-27300 ORA-27301 ORA-27302 错误 (文档 ID 2179478.1)
Oracle Database - Enterprise Edition - 版本 12.1.0.2 到 12.1.0.2 [发行版 12.1]
Oracle Database - Enterprise Edition - 版本 11.2.0.4 到 11.2.0.4 [发行版 11.2]
Oracle Database - Enterprise Edition - 版本 9.2.0.1 到 11.2.0.3 [发行版 9.2 到 11.2]
本文档所含信息适用于所有平台
用途
这篇文档帮助确定 ORA-2730x 错误可能发生的原因,并提供可用的解决办法。这类错误通常是由于操作系统调用错误或者操作系统配置问题引起的,形式如下:
ORA-27300: OS system dependent operation:%s failed with status: %s
ORA-27301: OS failure message: %s
ORA-27302: failure occurred at: %s
你可以参考各自的操作系统手册,来理解 Unix 系统错误的背景信息。例如:
http://www.ibm.com/developerworks/aix/library/au-errnovariable/
请注意只有少数的错误适用于所有基于 Unix 的平台。有可用的 OS 级别的文档来介绍一些独立的操作或者 OS 调用,例如fork()或 semget()。ORA-27300 错误中的‘status’通常对应一个 Unix 错误代码,这个错误代码定义在 OS 的头文件“errno.h”中 ,由 OS 调用返回。
例如:
ORA-27300: OS system dependent operation:fork failed with status: 11
“man fork”显示:
The fork() 函数会失败,如果:
EAGAIN (status 11):系统缺少创建一个进程的必要的资源,或者系统强制限制整个系统运行的进程的总数,或某个用户{CHILD_MAX}运行的进程的总数。EAGAIN 对应 status 11。
The fork() 函数会失败,如果:
ENOMEM (status 12):可用的存储空间不足。
排错步骤
这篇文档根据 status 的值被分解为几个部分。
STATUS 0
ORA-27300: OS system dependent operation:invalid_process_id failed with status: 0
ORA-27301: OS failure message: Error 0
ORA-27302: failure occurred at: skgpalive1
参考 Note 356640.1 ORA-27300, ORA-27301, ORA-27302 Failure Occurred At Skgpalive1 During 'Shutdown' - 未公开的 Bug 4923667。
10.2.0.5 及以上版本,参考 Note 1252265.1 - ORA-27300 ORA-27301 ORA-27302: failure occurred at: skgpalive1 - bug 10010310。
ORA-27300: OS system dependent operation:invalid_process failed with status: 0
ORA-27301: OS failure message: Error 0
ORA-27302: failure occurred at: skgpstime3
ORA-27144: attempt to kill process failed
参考 Note 458442.1 > />10.2.0.3 PMON CRASHES ON STARTUP ON AIX 5L 5.3 ML05 -- WORKS on ML06> />
STATUS 1 - EPERM Not owner
尝试修改不属于当前用户的文件,或者当前用户被文件的属主或超级用户禁止修改这个文件。
ORA-27300: OS system dependent operation:invalid_egid failed with status: 1
ORA-27301: OS failure message: Not owner
ORA-27302: failure occurred at: skgpwinit6
ORA-27303: additional information: startup egid = 202 (?), current egid = 101 (dba)
参考 Note 453959.1 Cannot Connect As "/ as sysdba" ORA-27140 ORA-27300 ORA-27301
ORA-27512: IPC error posting a process
ORA-27300: OS system dependent operation:kill failed failed with status: 1
ORA-27301: OS failure message: Not owner
ORA-27302: failure occurred at: skgxppost1
参考 Note 3411021.8 - Bug 3411021 - Oracle process may die due to ORA-27300/ORA-27301/ORA-27302 at skgxppost1
ORA-27300: OS system dependent operation:invalid_euid failed with status: 1
ORA-27301: OS failure message: Not owner
ORA-27302: failure occurred at: skgpwinit5
ORA-27303: additional information: startup euid = 100 (grid), current euid = 101 (oracle)
STATUS 2 - ENOENT No such file or directory
这个错误发生在尝试访问一个不存在的文件或者子目录时。
ORA-12012: error on auto execute of job 71010
ORA-27370: job slave failed to launch a job of type EXECUTABLE
ORA-27300: OS system dependent operation:accessing execution agent failed with status: 2
ORA-27301: OS failure message: No such file or directory
ORA-27302: failure occurred at: sjsec 3
参考 Note 277399.1 DBMS_SCHEDULER Fails To Execute Jobs With Program_type
EXECUTABLE On HP-UX
ORA-27300: OS system dependent operation:open failed with status: 2 (Doc ID 1664332.1)
ORA-27300: OS system dependent operation:open failed with status: 2
ORA-27301: OS failure message: No such file or directory
ORA-27302: failure occurred at: sskgmsmr_7
STATUS 3 - ESRCH No such process
传递给信号处理程序的进程号属于一个不存在的进程,或者这个进程已经消失了。
在 RAC 环境中,以下形式的错误可能导致进程失败:
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:sskgxp_select failed with status: 3
ORA-27301: OS failure message: No such process
ORA-27302: failure occurred at: skgxpvfymmtu
ORA-27303: additional information: MTU could not be verified. Did not receive valid message.
参考 Note 746888.1 ORA-27302: Failure Occurred at: skgxpvfymmtu Signalled in the Alert.log
STATUS 6 - ENXIO No such device or address
在一个丢失的设备组成部分上发生 I/O 错误。
Windows 特有的:
ORA-27300: OS system dependent operation:SuspendThread failed with status: 6
ORA-27301: OS failure message: The handle is invalid.
ORA-27302: failure occurred at: sssxcpttcs6
参考 BUG: 6991131 - Status: 32,Not a Bug
这是 shutdown
过程中发生的问题。我们给 MMON 发送 shutdown
命令,然后等待30秒来检查它是否关闭。如果它仍然存在,那么我们收集诊断信息并试图挂起目标线程(在这个例子中是“MMON”)。然而我们发现目标线程句柄已经无效了,因为这个线程已经退出或即将退出。这样导致这个错误显示在报警日志中。这个错误在
shutdown 的过程中可以被忽略,只要它不会 hang 住,因为目标线程在我们尝试收集诊断信息的时候已经消失了。
======
ORA-27300: OS system dependent operation:GetThreadTimes failed with status: 6
ORA-27301: OS failure message: The handle is invalid.
ORA-27302: failure occurred at: skgpalive
参考未公开的 BUG: 6455284 - Status 80 : DNFS NT: ORA-27300,ORA-27301,ORA-27302: FAILURE OCCURRED AT: SKGPALIVE
在 11.1.0.7 和 11.2 中修复了。
STATUS 8 - ENOEXEC Exec format error
尝试执行一个不具有可执行格式的文件。
ORA-27300: OS system dependent operation:CreateThread failed with status: 8
ORA-27301: OS failure message: Not enough storage is available to process this command.
ORA-27302: failure occurred at: ssthrddcr.
参考 Note 466370.1 ORA-7445 [ACCESS_VIOLATION] [unable_to_trans_pc] [UNABLE_TO_WRITE] ORA-27301 OS failure message Not enough storage ORA-27300 ORA-27302> />
对于 Windows,参考 Note 225349.1 Implementing Address Windowing Extensions (AWE) or VLM on Windows Platforms
STATUS 11 - EAGAIN No more processes
执行 fork,但是系统的进程控制表已经满了,或者不允许用户创建更多的进程。
ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn3
参考 Note 392006.1 Ora-27300 OS system dependent operation fork failed with status 11
和
Note 1546393.1 ORA-27300: OS System Dependent Operation:fork Failed With Status: 11
允许每个用户创建的 PROCESSES 的最大值可能太小了(例如:AIX 中的 maxuproc,HP 和 Solaris 中的 maxuprc。在 Solaris 10 中,检查 project.max-lwps)
@参考 Bug 7620133 - project.max-lwps was changed from the default which is 2 billion。
ORA-27300: OS system dependent operation:socket failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: sskgxpcre1
参考 Note 364353.1 ORA-00603 ORA-27504 ORA-27300 ORA-27504 in the Alert Log
(HP特有的)
1. 设置 MAX_ASYNC_PORTS 为足够高的值
2. 在 OS 层面禁用异步 IO
ORA-27300: OS system dependent operation:ioctl failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgxpvaddr1
参考 Note.6629265.8 Bug 6629265 - Intermittent ORA-27504 / ORA-27300 ioctl error 11
当系统资源过载时,创建套接字时的间断错误会导致新的进程启动失败,报以上错误。
参考未公开的 Bug 17783533 : ORA-27300: OS SYSTEM DEPENDENT OPERATION:FORK FAILED WITH STATUS: 11
ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn3
这个 bug 在 12.1.0.2及以上版本中修复了。
STATUS 12 - ENOMEM Not enough core / memory
在 exec 或者 break 过程中,程序需要的内存比系统可用的多。这个错误也发生在分配文本数据或堆栈段需要过多段寄存器的时候。
ORA-27300: OS system dependent operation:fork failed with status: 12
ORA-27301: OS failure message: Not enough space
ORA-27302: failure occurred at: skgpspawn3
参考 Note 465002.1 Database Crash With Error ORA-00490
Note 580552.1 Ora-04030 Ora-07445 Ora-27300 Ora-27301 Ora-27302 Crashed Database
Note 560309.1> /> Database Cannot Start Due to Lack of Memory
** swap 已用光。检查操作系统日志发现更多信息。在某些操作系统中增加 nproc 或 maxuprc 是必要的 **> />
STATUS 13 - EACCES Permission denied
尝试去访问一个被系统保护而禁止访问的文件。
ORA-27300: OS system dependent operation:accessing execution agent failed with status: 13
ORA-27301: OS failure message: Permission denied
ORA-27302: failure occurred at: sjsec 3
参考 Note 557153.1 ORA-27370, ORA-27301(Permission denied) when running job of type EXECUTABLE .
使用恰当的用户重启 Oracle 数据库(通常是“oracle”用户)
STATUS 17 - EEXIST File exists
一个已经存在的文件被作为一个命令的参数输入,这个命令将要修改它。
ORA-27300: OS system dependent operation:semget failed with status: 17
ORA-27301: OS failure message: File exists
ORA-27302: failure occurred at: sskgpcreate
STATUS 22 - EINVAL Invalid argument
传递无效参数。
例如:在信号函数中传递一个无效信号。
ORA-27300: OS system dependent operation:semctl failed with status: 22
ORA-27301: OS failure message: Invalid argument
ORA-27302: failure occurred at: sskgpwrm1
ORA-27157: OS post/wait facility removed
ORA-27300: OS system dependent operation:semop failed with status: 36
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1
参考 Note 438205.1 > />ORA-27300 ORA-27301 ORA-27302 ORA-27157 Database Crash Semaphores/shared memory might have been removed> />
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1
这个错误发生在当我们等待一个 latch 时,但是对应的标识符被移除了,这不是我们期望的情况,并会引起 ora-600 错误。
如果在实例启动时发生相同的错误,那么可能是遇到了以下 bug。
(未公开的)Bug 17638002 - ORA-600 [KSLGESS_3] [] [] [] [] [] [] [] [] [] [] []
ORA-27300: OS system dependent operation:mpctl_ldomspus failed with status: 22
ORA-27301: OS failure message: Invalid argument
ORA-27302: failure occurred at: skgsnnprocs
参考 BUG: 7232946 - ORA-600[KSKRECONFIGNUMA2] CAUSES INSTANCE CRASH
10.2.0.4.0
这可能是由 NUMA 问题造成的,因为在 10.2.0.4 上 NUMA 默认是开启的。想要关闭 NUMA,你需要查看以下参数:
_db_block_numa=1
_enable_NUMA_optimization=FALSE
ORA-27300: OS system dependent operation:pw_postv failed with status: 22
ORA-27301: OS failure message: Invalid argument
ORA-27302: failure occurred at: sskgpwvp3
ORA-27303: additional information: ukid, errno, post_count = 0x7a9d93eb191f0b4e, 22, 3
参考 Note 6441119.8 - unpublished Bug 6441119 - Instance crash due to ORA-27300 / ORA-27152
从 sskgpwpost 或 sskgpwvectorpost 发出的 ORA-27300 错误可能会导致实例崩溃。
ORA-00600: internal error code, arguments: [ksbmoveme4], [], [], [], [], [], [], []
ORA-27300: OS system dependent operation:run on node failed with status: 22
ORA-27301: OS failure message: Invalid argument
ORA-27302: failure occurred at: skgpmoveme:1
参考 Note 848387.1 - With NUMA Enabled, Database Fails To Open With
ORA-600 [ksbmoveme4], ORA-27300, ORA-27301, ORA-27302 Errors Reported
STATUS 28 - ENOSPC No space left on device
当写一个文件的时候,设备空间不足。
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 occured at: sskgpcreates
参考 Note 314179.1 Instance Startup Fails With Error ORA-27154,ORA-27300,ORA-27301,ORA-27302
Oracle 10.2 安装手册 (对于 Solaris 8 和 9):
semsys:seminfo_semmns 1024
semsys:seminfo_semmsl 256
对于 Linux:
检查信号量的设置:
cat /proc/sys/kernel/sem
STATUS 34
ORA-27303: additional information: old_semid post_count 0x278031 6
ORA-27152: attempt to post process failed
ORA-27300: OS system dependent operation:semop failed with status: 34
ORA-27301: OS failure message: Numerical result out of range
ORA-27302: failure occurred at: sskgpwvp2
ORA-27303: additional information: old_semid post_count 0x278031 6
修改 系统 sem 参数来避免kernel错误:
比如:
从
kernel.sem = 250 32000 100 128
到:
kernel.sem = 1024 60000 1024 256
STATUS 59
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:sendmsg failed with status: 59
ORA-27301: OS failure message: Message too long
ORA-27302: failure occurred at: sskgxpsnd1
参考 RAC: Note 300956.1 Ora-27302: sskgxpsnd1 - Starting Instance
Note 295832.1 - Unable To Create Database Ora-00603, ORA-27300
STATUS 63
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:ioctl failed with status: 63
ORA-27301: OS failure message: Out of stream resources
ORA-27302: failure occurred at: skgxpvaddr1
错误代码63是 ENOSR,“流资源不足”,和 ora-27301 错误信息中的一样。
STATUS 227
ORA-27300: OS system dependent operation:bind failed with status: 227
ORA-27301: OS failure message: Can't assign requested address
ORA-27302: failure occurred at: sskgxpcre3
参考 BUG: 9059053 - Status 92 - Not a bug.
解决办法:
提高 udp 端口范围,建议的设置是:
udp_smallest_anon_port=9000
udp_largest_anon_port=65535
STATUS 997
ORA-27300: OS system dependent operation:spcdr:9261:4200 failed with status: 997
ORA-27301: OS failure message: Overlapped I/O operation is in progress.
ORA-27302: failure occurred at: skgpspawn
参考 Note 371074.1 ORA-27300 ORA-27301 ORA-27302 in alert log. Cannot connect to database。
Windows 特有的系统资源问题:
在一个32位的 Windows 环境中,一个进程(例如‘oracle.exe’)可访问的内存达到了最大值。
STATUS 10054
ORA-27508 : IPC error sending a message
ORA-27300 : OS system dependent operation:IPCSOCK_Send failed with status: 10054
ORA-27301 : OS failure message: An existing connection was forcibly closed by the remote host.
ORA-27302 : failure occurred at: send_3
参考 Note 297498.1 Resolving Instance Evictions on Windows Platforms
也是在 Windows 上:
观察到以下现象:
无论 DOS 命令或者 BATCH 文件是否被执行都会收到这些错误:
ORA-27370: job slave failed to launch a job of type EXECUTABLE
ORA-27300: OS system dependent operation:accessing execution agent failed with status: 2
ORA-27301: OS failure message: Le fichier spécifié est introuvable.
ORA-27302: failure occurred at: sjsec 6a
ORA-27303: additional information: Le fichier spécifié est introuvable.
可以发现 OracleJobScheduler 服务已经停止。
因此,如果你遇到了这个错误,请检查 OracleJobScheduler 服务。
对于 IBM AIX on POWER Systems (64-bit)
请参考以下:
Ora-27300: Os System Dependent Operation:Fork Failed With Status: 12 <>
如果你发现了函数 Skgpspawn skgpspawn5 中的任何一个
详细信息请参考 <1125188.1> , <812115.1> 和 <435787.1>。
如果搜索到的解决办法没有在上述“总”表中列出,那么缩小搜索范围的一个提示是尝试使用以下关键词:
ORA-27300 OS 调用引起的错误(ORA-27300 中的第一个 %s)Oracle 调用 OS 发生的错误(ORA-27302 中的 %s)例如尝试搜索: ORA-27300 fork skgpspawn3