ORA-00800: soft external error
問題描述:
透過自動化編排安裝Oracle 19C單機後,在告警日誌裡發現有ORA-00800的錯誤。
環境說明:
DB:Oracle 19.3.0.0 OS:Redhat 7.6
告警日誌資訊:
Errors in file /oracle/product/diag/rdbms/oradb/oradb/trace/oradb_vktm_12297.trc (incident=120046): ORA-00800: soft external error, arguments: [Set Priority Failed], [VKTM], [Check traces and OS configuration], [Check Oracle document and MOS notes], [] Incident details in: /oracle/product/diag/rdbms/oradb/oradb/incident/incdir_120046/oradb_vktm_12297_i120046.trc 2021-05-08T19:08:06.701554+08:00 Error attempting to elevate VKTM's priority: no further priority changes will be attempted for this process VKTM started with pid=5, OS id=12297
問題描述:
[oracle@cjcdb01 ~]$ oerr ora 00800 00800, 00000, "soft external error, arguments: [%s], [%s], [%s], [%s], [%s]" // *Cause: An improper system configuration or setting resulted in failure. // This failure is not fatal to the instance at the moment, however, this might result // in an unexpected behavior during query execution. // *Action: Check the database trace files and rectify system settings or the configuration. // For additional information, refer to Oracle database documentation or refer to // My Oracle Support (MOS) notes.
不正確的系統配置或設定導致故障。這個失敗目前對例項不是致命的,但是,這可能會導致在查詢執行期間發生意外行為。
問題分析:
檢視oradb_vktm_12297.trc、oradb_vktm_12297_i120046.trc日誌沒有查到有用的資訊,檢視mos ID 2718971.1,對該錯誤有更詳細的說明。 該錯誤是在嘗試提升VKTM的優先順序時出錯,並且不會對此程式優先順序進行更改。 產生此問題的原因可能是因為系統配置不當,或許可權問題引起的。 需要檢查 $ORACLE_HOME/bin/oradism檔案許可權。 Oradism should be owned by root:dba with 4750 to be able to set priority of processes defined in _high_priority_processes(default - LG*/LGWR/LMS) and _highest_priority_proesses (default - VKTM). ORA-00800: soft external error, arguments: [Set Priority Failed], [VKTM], for Oracle Linux (文件 ID 2718971.1)
解決方案:
檢查優先順序別設定
1] Check the priority of VKTM or LMS* @RDBMS level select a.ksppinm "Parameter", b.ksppstvl "Session Value", c.ksppstvl "Instance Value", a.KSPPDESC "Describtion" from x$ksppi a, x$ksppcv b, x$ksppsv c where a.indx = b.indx and a.indx = c.indx and a.ksppinm like '_%' and a.ksppinm like '_highest_priority_process%';
如果VKTM或LMS*沒有優先順序,請提高優先順序
本次案例查詢結果就是VKTM,不需要執行。
SQL> alter system set "_high_priority_processes"='VKTM' scope=spfile;
重啟例項後,再次檢視
SQL> show parameter "_high_priority_processes";
確保許可權是正確的
$ cd $ORACLE_HOME/bin/oradism $ ls -lrt oradism -rwsr-x--- 1 root oinstall 147848 Apr 17 2019 oradism >>>>>>>>>>>>>>>>>>>>>>>> Correct one
檢視當前許可權
[oracle@sy-vm-finm-db01 bin]$ pwd /oracle/product/19.3/db/bin [oracle@sy-vm-finm-db01 bin]$ ls -l |grep oradism -rwxr-x--- 1 oracle oinstall 147848 Apr 17 2019 oradism
對比另一套19C資料庫許可權。
[oracle@sy-vm-obs-db01 bin]$ ls -l oradism -rwsr-x--- 1 root oinstall 147848 Apr 17 2019 oradism
修改許可權
[root@sy-vm-finm-db01 bin]# chown root.oinstall oradism [root@sy-vm-finm-db01 bin]# chmod u+s oradism [root@sy-vm-finm-db01 bin]# ls -l oradism -rwsr-x--- 1 root oinstall 147848 Apr 17 2019 oradism
再次重啟資料庫,ORA-00800問題消失。
關於oracle程式優先順序的說明:
參考eygle老師的一篇文章 在繁忙的系統中,我們總是會期望提高某些Oracle程式的優先順序,使其能夠更容易的獲得CPU資源,執行重要的任務。 在Oracle 10g之前,這樣的工作要透過作業系統上的設定來實現。 在Oracle 10gR2中,一個新的隱含引數被引入到資料庫中,用於配置提升Oracle後臺程式的優先順序。 這個核心引數是: _high_priority_processes 在 10.2 版本中,Oracle 預設的對 LMS* 設定高優先順序,在11g開始,對 LMS*||VKTM 設定高優先順序。 在Linux平臺上,程式的核心呼叫分為三類: TS - SCHED_OTHER (SCHED_NORMAL) ,這是分時排程策略,預設的正常級別; FF - SCHED_FIFO,這是實時排程策略,先到先服務,先進先出; RR - SCHED_RR,實時排程策略,時間片輪轉; 其中 FF,RR 都是實時排程佇列的,實時程式排程佇列,是從優先順序最高的程式執行,如果當前執行的是FIFO程式,如果程式不主動讓出CPU,其他程式都不能執行,如果是RR(時間片輪轉)的,則不會一直獨佔CPU,執行一段時間會被切換出來。
關於VKTM程式的說明:
參考 https://www.cnblogs.com/macleanoracle/archive/2013/03/19/2968373.html VKTM程式消耗大量CPU的問題 11g中引入了VKTM後臺程式,VKTM是virtual keeper of time的縮寫, 該程式負責提供時鐘時間(每秒更新一次)以及參考時間服務(每20ms更新一次,僅在程式高優先順序情況下可用),該參考時間服務用於各種基於時間間隔的度量。 VKTM在SGA中釋出這些計時資訊,以便各種RDBMS Client可以廉價和快速瞭解時間資訊。 Wall-clock 時鐘時間每一秒更新一次且單調遞增。 而參考時間計數(Reference-time)則每20ms更新一次,且僅當VKTM執行在高優先順序情況下時可用。 在某些環境下VKTM持續消耗較多的CPU,特別是在虛擬化的環境中例如Vmware、Vbox等; 對於這些虛擬化環境若是非產品production環境,則可以考慮將VKTM程式不要執行在高優先順序上,雖然這會導致Reference-time參考時間計數不可用,但是實際不會產生必要的效能度量不可用的問題。 在11g中預設_high_priority_processes隱藏引數指定了LMS*和VKTM執行在高優先順序下,可以透過修改該引數,僅讓LMS執行在高優先順序下,這樣VKTM所消耗的CPU將明顯下降。
#####chenjuchao 2021-05-09 15:15#####
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2771420/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《Spelling Error Correction with Soft-Masked BERT》閱讀筆記Error筆記
- VC6.0 報錯:error LNK2001: unresolved external symbol _clrscrErrorSymbol
- error LNK2019:unresolved external symbol *** referenced in function ***的解決方案ErrorSymbolFunction
- euler install soft bak
- Redshift建立外部架構external schema和外部表external table架構
- manjaro i3 sound softJAR
- WAKE-WIN10-SOFT-MATioWin10
- Vim tips——Working with external commands
- Basically Available(基本可用),Soft stateAI
- Oracle一體機x9m ORA-00800處理Oracle
- Intellij IDEA 的 Soft-wrap 是什麼IntelliJIdea
- External Pricing in C4C and ERP
- 遊戲全球發行Soft Launch全攻略遊戲
- use azure data studio to create external table for oracleOracle
- Oracle的軟解析(soft prase)和硬解析(hard prase)Oracle
- Shadow Map(陰影貼圖)跟Soft Shadows(軟陰影)
- Linux soft lockup時遠端除錯的可能性Linux除錯
- 有關oracle external table的一點測試。Oracle
- 使用SAP CRM External Interface進行訂單同步
- external-resizer 原始碼分析/pvc 擴容分析原始碼
- IDEA 中External Libraries只有JDK沒有其他依賴IdeaJDK
- ERROR 2026 (HY000): SSL connection error: unknown error numberError
- mount error(5): Input/output errorError
- 【ERROR】OPatch failed with error code 73ErrorAI
- Original error: Error: socket hang upError
- A C++ half-edge data structure for a triangle mesh with no external dependencies whatsoeveC++Struct
- Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskMIT
- error:03000086:digital envelope routines::initialization errorErrorGit
- 如何解決"Parse error: syntax error"Error
- ERROR 1045 (28000): ProxySQL Error: 報錯ErrorSQL
- 給家庭 k8s 叢集用的 External Load BalancerK8S
- SAP Cloud for Customer銷售訂單External Note的建模細節Cloud
- SAP 電商雲 Spartacus UI 的 External Routes 設計明細UI
- external-attacher原始碼分析(2)-核心處理邏輯分析原始碼
- Error page: / Error infos: DedeCms錯誤警告Error
- Last_IO_Error: Got fatal error 1236ASTErrorGo
- Visual Studio 2019 使用模板類定義和實現分離時,在主函式中引用標頭檔案編譯報錯 Error LNK2019 unresolved external symbol函式編譯ErrorSymbol
- Error for iOSErroriOS