国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Oracle數(shù)據(jù)庫出現(xiàn)WARNING: too many parse errors告警的分析思路

這篇具有很好參考價值的文章主要介紹了Oracle數(shù)據(jù)庫出現(xiàn)WARNING: too many parse errors告警的分析思路。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Oracle數(shù)據(jù)庫的告警日志中出WARNING: too many parse errors這些告警信息的話,如果遇到這個問題,我們應(yīng)該如何分析呢?

下面簡單聊一下如何分析這個錯誤。該告警信息其實是12.2版本中的一個特性增強。在以前的Oracle版本中,數(shù)據(jù)庫出現(xiàn)了解析錯誤時,數(shù)據(jù)庫的alert日志中不會有任何相關(guān)的提示,我們一般只能通過AWR報告才能了解數(shù)據(jù)庫出現(xiàn)了解析錯誤,例如,從"failed parse elapsed time" 和"parse count(failures)"指標中查看解析出錯信息,如下截圖所示:

Oracle數(shù)據(jù)庫出現(xiàn)WARNING: too many parse errors告警的分析思路

Oracle數(shù)據(jù)庫出現(xiàn)WARNING: too many parse errors告警的分析思路 ..................... Oracle數(shù)據(jù)庫出現(xiàn)WARNING: too many parse errors告警的分析思路

如果數(shù)據(jù)庫中解析錯誤的次數(shù)非常頻繁時,可能會造成大量的Library Cache Lock等待,整個數(shù)據(jù)庫可能會處于hang死的狀態(tài)。要找出解析錯誤的root cause,則需要在數(shù)據(jù)庫中設(shè)置10035 event,如果再次出現(xiàn)解析錯誤時,會向數(shù)據(jù)庫的alert日志中寫入解析錯誤的詳細信息。

ALTER?SYSTEM?SET?EVENTS?'10035?trace?name?context?forever,?level?1';
ALTER?SESSION?SET?EVENTS?'10035?trace?name?context?forever,?level?1';
EVENT="10035?trace?name?context?forever,?level?1"

Levels:
level?1+?Print?out?failed?parses?of?SQL?statements?to

Note:
The?event?can?be?turned?off?as?follows:

ALTER?SYSTEM?SET?EVENTS?'10035?trace?name?context?off';
ALTER?SESSION?SET?EVENTS?'10035?trace?name?context?off';

而從12.2版本開始,即使未設(shè)置10035 event,當數(shù)據(jù)庫出現(xiàn)解析錯誤的情況時,仍然會向數(shù)據(jù)庫的alert日志中寫入一條解析錯誤的告警信息。

如下所示,你可能會看到類似這樣的報錯信息:

2024-04-18T00:26:00.288821+08:00
*******(3):WARNING:?too?many?parse?errors,?count=592?SQL?hash=0xd4b65b68
*******(3):PARSE?ERROR:?ospid=969851,?error=903?for?statement:?
*******(3):Additional?information:?hd=0x1c6a4c5b80?phd=0x1f598d0500?flg=0x28?cisid=290?sid=290?ciuid=290?uid=290?sqlid=9mj0cyvabcqv8
*******(3):...Current?username=***
*******(3):...Application:?IgniteMonitor?Action:?

這里比較關(guān)鍵的信息是第二行錯誤信息的錯誤代碼:"PARSE ERROR: ospid=969851, error=903 for statement",這個例子中,它提示SQL解析出錯是因為遇到了ORA-903這個錯誤

$?oerr?ora?903
00903,?00000,?"invalid?table?name"
//?*Cause:?????A?table?or?cluster?name?was?invalid?or?does?not?exist.
//?????????????This?message?was?also?issued?if?an?invalid?cluster?name?or?no
//?????????????cluster?name?was?specified?in?an?ALTER?CLUSTER?or?DROP?CLUSTER
//?????????????statement.
//?*Action:????Check?spelling.?A?valid?table?name?or?cluster?name
//?????????????must?begin?with?a?letter?and?may?contain?only?alphanumeric
//?????????????characters?and?the?special?characters?$,?_,?and?#.?The?name
//?????????????must?be?less?than?or?equal?to?30?characters?and?cannot?be?a
//?????????????reserved?word.

我們可以嘗試通過SQL_ID找到對應(yīng)的SQL,但是有時候,可能通過SQL_ID可能已無法找到SQL語句,只能等到下一次出現(xiàn)時及時定位。

SELECT?c.username,
??????,a.program
??????,b.sql_text
??????,b.command_type
??????,a.sample_time
FROM?dba_hist_active_sess_history?a
JOIN?dba_hist_sqltext?b
ON?a.sql_id?=?b.sql_id
JOIN?dba_users?c
ON?a.user_id?=?c.user_id
WHERE?a.sample_time?BETWEEN?SYSDATE?-?1?AND?SYSDATE
and?a.sql_id='9mj0cyvabcqv8'
ORDER?BY?a.sample_time?DESC;

這里如果可以找出具體SQL語句,就可以找出SQL解析出錯的原因,跟開發(fā)人員一起修復(fù)這個問題,像官方文檔Doc ID 2649163.1[1]中提及的案例中

2020-01-07T11:35:33.918516+10:30
WARNING:?too?many?parse?errors,?count=1091700?SQL?hash=0xbbcb647d
PARSE?ERROR:?ospid=33376,?error=923?for?statement:
2020-01-07T11:35:33.918632+10:30
select?1
Additional?information:?hd=0xb336ab08?phd=0xb336af30?flg=0x28?cisid=120?sid=120?ciuid=120?uid=120
2020-01-07T11:39:04.673714+10:30
WARNING:?too?many?parse?errors,?count=1091800?SQL?hash=0xbbcb647d
PARSE?ERROR:?ospid=38578,?error=923?for?statement:sdkjfdsfkjsadfkjsadfkj
2020-01-07T11:39:04.673839+10:30
select?1

出現(xiàn)這個錯誤,是因為應(yīng)用程序中輸入的SQL不完整,沒有from關(guān)鍵字,從錯誤代碼error=923也能看出出錯的可能性。如下所示:

$?oerr?ora?923
00923,?00000,?"FROM?keyword?not?found?where?expected"
//?*Cause:?????In?a?SELECT?or?REVOKE?statement,?the?keyword?FROM?was
//?????????????either?missing,?misplaced,?or?misspelled.?The?keyword?FROM
//?????????????must?follow?the?last?selected?item?in?a?SELECT?statement?or
//?????????????the?privileges?in?a?REVOKE?statement.
//?*Action:????Correct?the?syntax.?Insert?the?keyword?FROM?where
//?????????????appropriate.?The?SELECT?list?itself?also?may?be?in?error.?If
//?????????????quotation?marks?were?used?in?an?alias,?check?that?double
//?????????????quotation?marks?enclose?the?alias.?Also,?check?to?see?if?a
//?????????????reserved?word?was?used?as?an?alias.

還有一些bug會引起WARNING: too many parse errors,此時就必須在Oracle metalink上進行搜索,仔細匹配了。例如Doc ID 2976229.1 [2]。它的現(xiàn)象是Oracle DG的備庫中一直出現(xiàn)"WARNING: too many parse errors",而且數(shù)據(jù)庫版本為Oracle Database - Enterprise Edition - Version 19.3.0.0.0 to 19.21.0.0.0

2023-09-04T13:19:41.797929+00:00

WARNING:?too?many?parse?errors,?count=13900?SQL?hash=0x0cd5bf3b

PARSE?ERROR:?ospid=15822,?error=1219?for?statement:

2023-09-04T13:19:41.798049+00:00

select?count(*)?from?cdb_service$

Additional?information:?hd=0x6cbc40d0?phd=0x6cbc4828?flg=0x20?cisid=0?sid=0

ciuid=2147483620?uid=2147483620?sqlid=<SQL?ID>

...Current?username=SYSRAC

...Application:?oraagent.bin@<HOSTNAME>?(TNS?V1-V3)?Action:

WARNING:?too?many?parse?errors,?count=13900?SQL?hash=0xeb8d02bf

PARSE?ERROR:?ospid=15822,?error=1219?for?statement

引起這個的原因是Bug,官方描述如下

The issue is analyzed and discussed in internal / unpublished Bug 34046765 - ORAAGENT DAGENT::SETCONNECTIONPOOLMAX GENERATES TOO MANY PARSE ERRORS ON STANDBY DATABASE

另外,最重要的就是監(jiān)控數(shù)據(jù)庫的alert日志,一旦出現(xiàn)這類告警就必須發(fā)出告警郵件或告警提示。以前我們監(jiān)控數(shù)據(jù)庫的alert日志,一般是過濾ORA-這類關(guān)鍵字,而這樣過濾的話,是無法獲取WARNING這類的告警信息的。所以監(jiān)控腳本過濾關(guān)鍵字時,必須增加WARNING這個關(guān)鍵字信息。

參考資料

[1]

1: https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=510335864406137&id=2649163.1&_afrWindowMode=0&_adf.ctrl-state=im4fw4kqq_78

[2]

2: https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=510414734632502&id=2976229.1&_afrWindowMode=0&_adf.ctrl-state=im4fw4kqq_127文章來源地址http://www.zghlxwxcb.cn/news/detail-856590.html

到了這里,關(guān)于Oracle數(shù)據(jù)庫出現(xiàn)WARNING: too many parse errors告警的分析思路的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-Oracle數(shù)據(jù)庫文件出現(xiàn)壞塊的數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-Oracle數(shù)據(jù)庫文件出現(xiàn)壞塊的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫故障初檢分析: 打開Oracle數(shù)據(jù)庫時報錯,報錯信息:“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開”。用戶急需恢復(fù)zxfg用戶下的數(shù)據(jù)。 出現(xiàn)上述報錯的可能原因包括:控制文件損壞、數(shù)據(jù)文件損壞,數(shù)據(jù)文件與控制文件的SCN不一致等。 北亞企安數(shù)據(jù)

    2024年02月14日
    瀏覽(20)
  • MySQL出現(xiàn)too many connections錯誤

    MySQL出現(xiàn)too many connections錯誤

    1、現(xiàn)象 navicat連接MySQL時報 too many connections 錯誤 2、原因 my.ini 中設(shè)定的并發(fā)連接數(shù)太少或者系統(tǒng)繁忙導(dǎo)致連接數(shù)被占滿。 連接數(shù)超過了 MySQL 設(shè)置的值,與 max_connections 和 wait_timeout 都有關(guān)。 wait_timeout 的值越大,連接的空閑等待就越長,這樣就會造成當前連接數(shù)越大。 3、解

    2024年02月11日
    瀏覽(23)
  • 使用 python multiprocessing.Queue 出現(xiàn) too many open files 錯誤

    問題描述 使用 python 子進程 multiprocessing.Process 執(zhí)行任務(wù),并使用 multiprocessing.Queue 回傳任務(wù)執(zhí)行結(jié)果。程序執(zhí)行時間長以后,出現(xiàn) Too many open files 錯誤。使用 lsof -p 進程號 能看到有很多未關(guān)閉的 pipe。后經(jīng)排查發(fā)現(xiàn)大概率是 multiprocessing.Queue的問題,為了驗證想法,寫了一個測

    2024年02月09日
    瀏覽(22)
  • 出現(xiàn)OSError: [Errno 24] Too many open files錯誤解決方法。

    出現(xiàn)了: 這是因為 1,打開文件太多 2,其實不然,是線程限制,通常我們采用更改限制即可。 輸入下面的命令看一下: ?輸出:1024 果然如我所預(yù)想,得到的結(jié)果是1024,就是說系統(tǒng)限制為同時打開1024個文件。 修改方法: 1、將自己的線程數(shù)改小,使之符合這個限制(只是方

    2024年02月16日
    瀏覽(28)
  • conda出現(xiàn)http429報錯:CondaHTTPError: HTTP 429 TOO MANY REQUESTS for url <xxx>

    我的報錯信息如下: 在報錯的第一行我們可以看到是url:https://mirrors. ustc .edu.cn/anaconda/pkgs/main/linux-64/current_repodata.json有問題,只要 把和ustc相關(guān)的源刪掉 就好了,步驟如下: 查看該環(huán)境下的所有channel (channel就是源,用來找你要安裝的包的) 執(zhí)行命令后,我的電腦上顯示:

    2024年04月27日
    瀏覽(19)
  • PLS-00172 string literal too long ORA-06550 字段太長插入不進去數(shù)據(jù)庫

    String literal too long 數(shù)據(jù)庫報這個錯,一般是由于插入的字段過長導(dǎo)致。我們一般可以用以下的方法解決: 將長的內(nèi)容分段,即可解決,數(shù)據(jù)長將數(shù)據(jù)插入不進去的問題。

    2024年02月07日
    瀏覽(27)
  • 數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: Oracle數(shù)據(jù)庫ASM磁盤組有4塊成員盤。 數(shù)據(jù)庫故障分析: Oracle數(shù)據(jù)庫ASM磁盤組掉線 ,ASM實例無法掛載,用戶聯(lián)系我們要求恢復(fù)oracle數(shù)據(jù)庫。 數(shù)據(jù)庫數(shù)據(jù)恢復(fù)工程師拿到磁盤后,先將所有磁盤以只讀方式進行扇區(qū)級別的鏡像備份,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢

    2024年02月13日
    瀏覽(40)
  • Oracle數(shù)據(jù)庫

    Oracle數(shù)據(jù)庫

    ①層次型數(shù)據(jù)庫 ②網(wǎng)狀型數(shù)據(jù)庫 ③關(guān)系型數(shù)據(jù)庫(主要介紹) E-R圖:屬性(橢圓形),實體(矩形),聯(lián)系(菱形-一對一、一對多、多對多) 注:有的聯(lián)系也有屬性 關(guān)系型數(shù)據(jù)庫的設(shè)計范式: 第一范式(1NF):屬性不可再分,字段保證原子性 第二范式(2NF):在滿足1

    2024年02月08日
    瀏覽(34)
  • Oracle 數(shù)據(jù)庫恢復(fù)刪除的數(shù)據(jù)

    需求描述: 同事讓刪除臟數(shù)據(jù),結(jié)果刪錯了,需要恢復(fù)數(shù)據(jù) 思路: 利用閃回恢復(fù)數(shù)據(jù)只能恢復(fù)15分鐘之內(nèi)的,后面undo空間會被重寫,就恢復(fù)不了,所以刪除數(shù)據(jù)后,要謹慎再三確認,若發(fā)現(xiàn)不對,則利用閃回恢復(fù) 先查詢刪除時的時間節(jié)點的快照 查到時間戳之后 閃回恢復(fù)數(shù)

    2024年01月24日
    瀏覽(36)
  • 【數(shù)據(jù)庫】日常使用PL/SQL 登錄ORACLE 數(shù)據(jù)庫查詢數(shù)據(jù)

    一、PL/SQL 登錄方式 username: ##訪問數(shù)據(jù)庫的賬號 password: ##訪問數(shù)據(jù)庫的密碼 Databse: ##數(shù)據(jù)庫IP地址/實例名 數(shù)據(jù)庫集群心跳地址/實例名 Connect as : ##Normal,如果使用sysdba賬戶登錄選擇SYSDBA 二、PL/SQL使用SQL語句查詢 點擊上方導(dǎo)航欄,New,選擇SQL Window,即可再次輸入要查詢的

    2024年02月19日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包