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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP呼叫webservice遇到 Soap WSDL Error - "failed to load external entityPHPWebErrorAI
- 《Spelling Error Correction with Soft-Masked BERT》閱讀筆記Error筆記
- External Views (33)View
- error LNK2019:unresolved external symbol *** referenced in function ***的解決方案ErrorSymbolFunction
- VC6.0 報錯:error LNK2001: unresolved external symbol _clrscrErrorSymbol
- docker 報錯 Error response from daemon: driver failed programming external connectivity on endpoint my...DockerErrorAI
- Redshift建立外部架構external schema和外部表external table架構
- sqlldr與external tableSQL
- WAKE-WIN10-SOFT-MATioWin10
- manjaro i3 sound softJAR
- Linux create soft linkLinux
- oracle 外部表 external tableOracle
- Oracle外部表 External TableOracle
- ORACLE_DATAPUMP & External TableOracle
- Parallel Access to External Tables (173)Parallel
- 模板例項化函式連結出錯:error LNK2019: unresolved external symbol函式ErrorSymbol
- 資料庫表--external table資料庫
- Basically Available(基本可用),Soft stateAI
- soft parse(軟解析),hard parse(硬解析)
- Oracle一體機x9m ORA-00800處理Oracle
- 遊戲全球發行Soft Launch全攻略遊戲
- fast parse,soft parse,hard parse的區別!AST
- Creating External Lists From Code
- sqlldr和external table的關係!SQL
- Data Loading with External Tables (172)
- 使用隨機取樣實現 soft shadow隨機
- Vim tips——Working with external commands
- 【移動資料】External Table 外部表
- MediaStore 與Media.EXTERNAL_CONTENT_URIAST
- alert_log設定成external table
- Oracle的軟解析(soft prase)和硬解析(hard prase)Oracle
- Intellij IDEA 的 Soft-wrap 是什麼IntelliJIdea
- ORACLE 11G 靜默安裝soft db listenerOracle
- use azure data studio to create external table for oracleOracle
- External Tables: Querying Data From Flat Files in OracleOracle
- Android4 Source Analysis - Root-ExternalAndroid
- 使用SAP CRM External Interface進行訂單同步
- external-resizer 原始碼分析/pvc 擴容分析原始碼