故障現(xiàn)象
aix主機(jī)數(shù)據(jù)庫(kù)節(jié)點(diǎn)3因大量高并發(fā)insert語(yǔ)句導(dǎo)致sql積壓,從而短時(shí)間內(nèi)消耗大量主機(jī)資源,對(duì)數(shù)據(jù)庫(kù)性能產(chǎn)生了很大影響,嚴(yán)重影響數(shù)據(jù)庫(kù)的正常運(yùn)行,導(dǎo)致節(jié)點(diǎn)3數(shù)據(jù)庫(kù)發(fā)生重啟。
故障分析過(guò)程
1. 20點(diǎn)28分左右,收到節(jié)點(diǎn)3大量sql積壓告警,積壓SQL主要為:9yy1zhgjvfbpj。
2. 登陸環(huán)境核查數(shù)據(jù)庫(kù)實(shí)例狀態(tài)及實(shí)例啟動(dòng)時(shí)間,20點(diǎn)36分確認(rèn)數(shù)據(jù)庫(kù)實(shí)例狀態(tài)正常,且實(shí)例沒(méi)有重啟。當(dāng)即對(duì)異常等待事件的sql進(jìn)行查殺,但是在20點(diǎn)45分時(shí),節(jié)點(diǎn)3發(fā)生重啟。
3. 立即查看數(shù)據(jù)庫(kù)相關(guān)日志,并確認(rèn)數(shù)據(jù)庫(kù)日志,發(fā)現(xiàn)節(jié)點(diǎn)3重啟。
4. 核查查看主機(jī)日志,并確認(rèn)無(wú)異常報(bào)錯(cuò)信息。
節(jié)點(diǎn)3主機(jī)日志:
5. 通過(guò)檢查數(shù)據(jù)庫(kù)運(yùn)行狀況,發(fā)現(xiàn)節(jié)點(diǎn)3上有大量sql積壓的等待事件,對(duì)應(yīng)等待事件主要為:
enq:us-contention,row cache local行緩存鎖;
enq: IV - contention隊(duì)列等待之詢(xún)問(wèn)IV。
關(guān)于enq:us-contention官方解釋?zhuān)?/strong>這個(gè)等待事件有許多脫機(jī)撤消段,并且工作負(fù)載在短時(shí)間內(nèi)開(kāi)始聯(lián)機(jī)許多撤消段。當(dāng)使用具有自動(dòng)調(diào)整的撤銷(xiāo)保留期的系統(tǒng)管理撤銷(xiāo)時(shí),這可能會(huì)導(dǎo)致在DC_ROLLBACK_SEGMENTS 上出現(xiàn)高“閂鎖:行緩存對(duì)象”爭(zhēng)用,同時(shí)出現(xiàn)高“enq:US-爭(zhēng)用”等待。
關(guān)于row cache local官方解釋?zhuān)?/strong>該是一個(gè)共享池相關(guān)的等待事件。是由于對(duì)于字典緩沖的訪問(wèn)造成的。每一個(gè)行緩沖隊(duì)列鎖都對(duì)應(yīng)一個(gè)特定的數(shù)據(jù)字典對(duì)象,這被叫做隊(duì)列鎖類(lèi)型,并可以在V$ROWCACHE視圖中找到。在AWR中需要查看Dictionary Cache Stats部分用以確定問(wèn)題。
關(guān)于enq: IV - contention官方解釋?zhuān)?/strong>物化視圖(mview)有兩部分:(1)保存數(shù)據(jù)的表,和(2)物化視圖日志。當(dāng)提交mview基表上的DML時(shí),summary對(duì)象將失效。這是必要的,因?yàn)閙view可能需要用于查詢(xún)重寫(xiě)。失效采用IV排隊(duì),直到summary對(duì)象在所有節(jié)點(diǎn)上失效為止。如果存在大量摘要無(wú)效,則會(huì)導(dǎo)致此排隊(duì)上的爭(zhēng)用。
6. 通過(guò)核查節(jié)點(diǎn)3上sql積壓等待事件對(duì)應(yīng)的會(huì)話信息,定位到積壓sql對(duì)應(yīng)的sql_id。
7. 通過(guò)sql定位到對(duì)應(yīng)的sql語(yǔ)句。
8. 對(duì)故障時(shí)間段節(jié)點(diǎn)3分析。
故障時(shí)間段每秒產(chǎn)生的redo量相比正常時(shí)間段增長(zhǎng)了約180%。
故障時(shí)間段每秒產(chǎn)生redo量:
正常時(shí)間段每秒產(chǎn)生redo量:
經(jīng)核查,發(fā)現(xiàn)等待事件異常最早是20點(diǎn)07分。
通過(guò)分析故障時(shí)間段哪些SQL占用了資源,發(fā)現(xiàn)其中sql_id為9yy1zhgjvfbpj的語(yǔ)句占用了數(shù)據(jù)庫(kù)48.24%的DB TIME,主機(jī)資源突降至10%以下,說(shuō)明數(shù)據(jù)庫(kù)大部分時(shí)間都在對(duì)這條sql進(jìn)行處理。
9yy1zhgjvfbpj語(yǔ)句執(zhí)行頻次突增截圖:
結(jié) 論
sql_id為9yy1zhgjvfbpj的語(yǔ)句因高并發(fā)且頻次突增,引發(fā)數(shù)據(jù)庫(kù)序列及undo爭(zhēng)用,消耗了大量的數(shù)據(jù)庫(kù)資源,導(dǎo)致數(shù)據(jù)庫(kù)主機(jī)hang住并重啟。
后續(xù)改進(jìn)措施:對(duì)應(yīng)用程序進(jìn)行優(yōu)化整改,合理調(diào)整sql語(yǔ)句發(fā)起并發(fā)量。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129595.html
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20