Ksvcreate:Process(xx) Creation Failed/ORA-00445:Background Process "xx"
|
轉到底部 |
文件內容
|
用途 |
|
排錯步驟 |
這個訊息意味著什麼? |
OS 配置檢查 |
資料庫配置檢查 |
已知問題 |
已確認的 bug |
Bug 13036685 |
OS 相關的 Bug |
|
參考 |
適用於:
Oracle Database - Enterprise Edition - 版本 10.1.0.2 和更高版本本文件所含資訊適用於所有平臺
用途
本文可用於 alert log 中如下訊息的診斷指南,請注意實際的程式型別和數字可能不同於本文列出的訊息,因此本文適用於所有如下形式的訊息:
kkjcre1p: unable to spawn %s slave process
Process %s died, see its trace file
ksvcreate: Process(%s) creation failed
您可能也會發現類似如下的訊息:
本文也列出了一些能導致 ORA-445 錯誤的已知問題。
排錯步驟
這個訊息意味著什麼?
這個訊息表明我們在作業系統級別孵化一個新的程式來滿足使用者請求的時候失敗了。該問題有多種原因。比較典型的情況是作業系統資源短缺或者作業系統配置不當,因此該問題應當從 OS 方面診斷。不過有些情況也可能是 oracle database 造成的。
預設的120秒的超時期限可以透過如下 event 動態延長,並且不需要重新啟動:
alter system set events '10281 trace name context forever, level xxx';
-- 以上的 xxxxxx 是新指定的超時期限,單位是秒。
OS 配置檢查
該錯誤通常由於 OS 資源短缺或者 OS 配置不當,典型的情況是 memory 或者 swap 不足導致無法建立一個新程式。請按如下的清單來檢查 OS 的設定情況。
- 執行 Health Check 和 Validation(HCVE) 指令碼來校驗 OS 配置情況
檢查資源相關的建議並且做出相應的改動。如下2篇文章對更好的理解這些建議有幫助:
Note 169706.1: Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2)
Note 225349.1: Address Windowing Extensions (AWE) or VLM on Windows Platforms
(通常在記憶體大於 4G 的32位 windows 作業系統中,需要在 boot.ini 檔案中開啟 /3GB 開關)
- 檢查 user limitation(ulimit) 設定 (UNIX-only)
以 oracle 使用者 (或者 oracle software 的 owner)
# ulimit -a
最小滿足要求的值可以在如下文章中找到:
Note 169706.1: Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2)
- 校驗 SWAP space 配置
對於 swap space 配置的一些準則:
如果您有 1 ~ 2Gb 的實體記憶體, 那麼您需要配置1.5倍實體記憶體的 swap space。
對於 2 ~ 8Gb 的實體記憶體, swap space 的大小必須等於實體記憶體大小。
對於大於 8Gb 的實體記憶體, swap space 需要實體記憶體0.75倍的大小。
- 檢查 OS 錯誤和 trace 檔案
您可以檢查錯誤發生時間 OS Log 中的錯誤。
同時檢查錯誤產生的 trace 檔案。注意 trace 檔案中問題發生時間的 'load verage' 和 memory 以及 swap 的狀態。
- 用 OS Watcher 來監控資源使用情況
OS Watcher 是一個 Oracle 提供的工具,它允許您從 OS 的角度來監控系統:
Note 946107.1: What Is The OSWATCHER (OSW) Effect On The Server Performance And What Are The Alternative Commands?
- 由於 Linux 的 Address Space Layout Randomization (ASLR)引發的問題
這個問題發生在 Redhat 5 和 Oracle 11.2.0.2 上.您可以透過如下命令檢查 ASLR 是否被使用:
# /sbin/sysctl -a | grep randomize
kernel.randomize_va_space = 1
如果以上引數被設定成非 0 的值,那麼 ASLR 正在被使用. 詳情參考如下 Note:
解決方案是關掉 ASLR。
資料庫配置檢查
- PGA_AGGREGATE_TARGET 被設定為 TRUE
引數 pga_aggregate_target 是一個數字型別的引數,不是 boolean 型別的引數,因此必須被設定成一個數字型的值方可正常工作。如果其被設定成了一個文字串,我們會嘗試將它轉換成一個有意義的值,但這個值可能對您的環境來說是不足的。
解決方案:正確地將 PGA_AGGREGATE_TARGET 設定成一個數字值。
- PRE_PAGE_SGA 設定成 TRUE 或者在 PRE_PAGE_SGA 設定為 TRUE 的情況下
PRE_PAGE_SGA 會讓 Oracle 在例項啟動的時候讀取整個 SGA 到 active memory 中。作業系統 page table entries 需要對所有的 SGA page 做 prebuild。這個設定可能加長例項啟動所需的時間,但是它通常會減少啟動後達到最大效能容量所需的時間。PRE_PAGE_SGA 會增加程式啟動的時間,因為每個程式的啟動必須訪問所有的 SGA page,這可能導致 PMON 程式花更多的時間來啟動並且可能超出預設的120秒的 timeout 導致例項無法啟動。
設定 PRE_PAGE_SGA 為 TRUE 會增加程式啟動的時間,因為每個程式的啟動必須訪問所有的 SGA page,如果您的系統需要反覆的建立和銷燬程式,比如持續的 logon 和 logoff,這可能會帶來顯著的開銷。
檢查 PRE_PAGE_SGA 是否設定為 TRUE
--或者--
驗證產生的 trace 檔案是否出現 function: ksmprepage()
解決方案:將 PRE_PAGE_SGA 設定為 FALSE 可以避免以上程式碼執行,這樣 page 只會在需要的時候被訪問而不是在程式啟動的時候訪問所有的 pages。這樣可以避免或者減輕問題的發生。但是底層的原因仍然是作業系統資源短缺。
已知問題
已確認的 bug
Bug 13036685
ORA-00445: BACKGROUND PROCESS "XXXX" DID NOT START AFTER 120 SECONDS
<<Bug 5583049: 'Ksvcreate: Process(m000) creation failed' after Standby Database Open Read Only Multiple Times
Note 418553.1: 'Ksvcreate: Process(m000) creation failed' after Standby Database Open Read Only Multiple Times
<< Bug 8426816: PMON may hang cleaning up a dead process (rare)
Note 1233079.1:Ksvcreate: Process(M001) Creation Failed , Database hang
OS 相關的 Bug
如下是被確認為 OS 問題的 Bug 列表。
Unpublished Bug 8336987: TB:SH:ORA-00445: BACKGROUND PROCESS "PZ99" DID NOT START AFTER 120 SECONDS
---> Platform 226 - Linux x86-64
程式長時間處於 D 狀態,例如處於 uninterruptible state in the kernel 的狀態,這是一個 Linux
ext3 檔案系統上的已知問題,當有很多 I/O 活動的時候,檔案系統必須 flush out 它的 journal,此時其他的 I/O
請求被凍結了。如果您願意,您可以嘗試改變您的 ext3 檔案系統的 mount option 讓其包含 -o data=writeback
然後觀察問題是否重現。
Unpublished Bug 7562673: FAILED IN SPAWNING MMON SLAVES AND FLOODING OF MMON TRACES IN AQ TEST
--> Status 92 - Closed, Not a Bug
WARNING: Slow process spawn detected for OS id=4260, M000 The process exec took more than 133 secs.
原因: oracle 執行檔案在遠端主機上。網路問題會延遲可執行檔案的載入從而延遲了程式的執行,解決辦法是將 oracle image/oracle home 複製到本地磁碟。
Unpublished Bug 7377880: STARETL: ORA-00445: BACKGROUND PROCESS "M000" DID NOT START AFTER 120 SECONDS
--> Status 32 - Not a Bug
問題看起來是主機上執行著過多的活動應用,解決辦法是關閉一些活動應用。
Unpublished Bug 9866293: GE+RAC: INSTANCE CRASH BECAUSE SMON DIED WITH ORA-00445
--> Status 92 - Closed, Not a Bug
在負載很高的系統上程式的啟動是非常耗時的。對於高負荷、或者高網路延遲並且 oracle image 放在遠端主機上的情況,可能會有很長的
fork/exec 時間。在這種特定情況下,往往 ps 和 gdb 在dump
被孵化程式的診斷資訊上也會發生超時,這是表明系統負載高或者網路延遲的一個很好證據。
Unpublished Bug 9543620: SQL EXEC PART:ORA-00445: BACKGROUND PROCESS "P059" DID NOT START AFTER 120 SECONDS
--> Status 92 - Closed, Not a Bug
這僅僅是一個系統負載相關的問題。ps 和 gdb 在提取被孵化程式的診斷資訊時超時了,如果 oracle image 或者依賴的 library 在遠端主機上,通常意味著 NFS 延遲,如果放在本地磁碟上,那麼一般是由於 disk 延遲引發。
目前來說,這些 bug 所定位的可能原因有:
1. 主機上有過多的活動。
2. NFS 延遲。
3. 磁碟延遲(影響 I/O)。
4. 網路延遲。
這些是 ORA-445 的4個可能原因. 這些原因沒有一個與 RDBMS 自身有關.我們推薦您聯合您的網路、儲存、作業系統管理員來共同分析問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2129642/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ksvcreate: Process(m000) creation failedAI
- ksvcreate: Process(m000) creation failed 處理AI
- 處理ksvcreate: Process(m000) creation failed 小記AI
- 問題之Process m000 died, see its trace file&ksvcreate: Process(m000) creation failedAI
- [PM2][ERROR] Process XXX not foundError
- Internal Error with background job scheduling XXXXXXXXXXXXX.Error
- 物理DATAGUARD庫上的KSVCREATE: PROCESS(M000)
- oracle 817 ora_snp background processOracle
- PostgreSQL cache lookup failed for type XXXX 錯誤SQLAI
- Action Script for resource 'ora.xxxx.xxxx2.inst' stdout redirection failed forAI
- nmap報錯: Failed to open device ethxxxAIdev
- NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load xxxx錯誤解決方法ErrorAIXMLHTTP
- unable to access ‘https://gitee.com/XXX/XXX.git/‘: Failed to connect to 127.0.0.1 portHTTPGiteeAI127.0.0.1
- [Tomcat]嚴重: Context [/xxxx] startup failed due to previous errorsTomcatContextAIError
- VM啟動報:failed to launch peer processAI
- 【MongoDB】Failed to unlink socket file xxx.sock errno:1MongoDBAI
- Docker 警告 Plugin XXX is not valid: failed to fetch metadataDockerPluginAI
- oracle11g_background process後臺程式詳解Oracle
- Java程式中使用XXXX-XX-XX XX:XX:XX格式的日期Java
- 【必殺】為應用程式池“XXX”提供服務的程式在與 Windows Process Activation Service 通訊時出現嚴重錯誤。該程式 ID 為“XXXX”。資料欄位包含錯誤號。Windows
- Error querying database. XXXXXXXXXXXXX, No database selected。ErrorDatabase
- C++ vector<std::tuple<XXX, XXX, XXX>>C++
- could not connect to redis Instance at xxx.xxx.xxx.xxx:6379Redis
- // @require file://C:xxxxxxxxx.jsUIJS
- Process Monitor Process (PMON) (121)
- Error building Player: Win32Exception: ApplicationName=‘xxxxxxxxxxxxxxxxxx//sdk\tools\zipalign.exe' ...ErrorUIWin32ExceptionAPP
- 啟動IDEA 報 failed to load jvm dll XXX 錯誤IdeaAIJVM
- SVN chechout failed: xxx is not valid as filename in directory svn檢出錯誤AI
- Checklist for PRVF-10037 : Failed to retrieve storage type for xx on node xxAI
- mysql Incorrect key file for table ‘/xxxxxxxx/xxxx.MYI'; try to repair itMySqlAI
- Linux Process/Thread Creation、Linux Process Principle、sys_fork、sys_execve、glibc fork/execve api sourcecodeLinuxthreadAPI
- undefine macro xxxxxMac
- Error:Maven Resources Compiler: Failed to copy 'XXX' to 'YYY': YYY (拒絕訪問。)ErrorMavenCompileAI
- [Linux] mutt /xxxx/xxxx/sent is not a mailbox.LinuxAI
- (徵文模板參考)xx技能樹/職業路線評測-xxxxxxxx
- Spring:錯誤No bean named 'xxxxxxx' availableSpringBeanAI
- Oracle dedicated server process and shared server processOracleServer
- Permission denied:user=xxx,access=WRITE,inode=xxx