診斷 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