Oracle報performing DMLDDL operation over object in bin案例分析
故障描述
某次,一套已經執行數年的Oracle 11gR2 RAC環境,使用者在檢查Alert資料庫告警日誌時不經意間看到performing DML/DDL operation over object in bin.告警資訊,由於該條資訊並不是錯誤或者告警,因此並不影響系統的穩定執行。但卻成功的引起了使用者的興趣,該條日誌的背後究竟發生了什麼,才會在告警日誌中列印出來。本篇將提供分析思路,旨在為了找出它背後的“真相”。
根因分析
透過解讀日誌本身,大概就能夠評估跟資料庫回收站物件相關,並且是對回收站物件做DDL和DML操作導致,驗證如下:
對回收站的表執行DML(delete),觀測命令執行情況,如下:
alert告警日誌輸出,如下:
對回收站的表執行DDL(drop),觀測命令執行情況,如下:
alert告警日誌輸出,如下:
因此,很快就得出結論,應該是資料庫中有SQL語句對回收站物件進行DML/DDL,才會導致alert告警日誌出現相關日誌。但是,使用者很快就駁回了這一結論,理由是業務側不會對回收站中的物件做處理,同時運維側也沒有做過類似的變更操作。所以,現在又帶來了新的問題,既然不是人為手動觸發,那這類日誌是怎麼被觸發。資料庫系統中的哪些動作會存在可能,帶著疑問,去MOS平臺模糊匹配,看看是否能找到想要的答案。
在MOS上,確實找到了引起出現這類日誌的集中場景:
場景一,參考文章ORA-38301: can not perform DDL/DML over objects in Recycle Bin (Doc ID 578075.1)
場景二,參考文章ORA-604 ORA-38301 ORA-30511 on alter/drop tablespace or other DDL/DML for objects in Recycle Bin - purge dba_recyclebin not helping (Doc ID 1484583.1)
場景三,參考文章'ORA-38301: can not perform DDL/DML over objects in Recycle Bin' while gathering DBMS_STATS (Doc ID 1542641.1)
這幾種場景雖然都可能是原因,但是與使用者溝通之後,都被否決掉了。那還有什麼原因可能會導致,此時陷入了思考。不經意間,突然想起,該使用者之前有一套別的Oracle系統,當時有一個跑批慢的案例,最終定位出來是由於訪問recyclebin$很慢,導致跑批時間很長,而recyclebin$相關的SQL是業務語句遞迴呼叫執行的,那本次故障會不會也是相同的原因。所幸的是,筆者電腦上還保留著上次案例處理的10046分析日誌,在該日誌中確實找到了回收站物件的語句,如下:
分析到此處,為什麼告警日誌中頻繁出現performing DML/DDL operation over object in bin的原因也能得到解釋了。為了進一步驗證結論的準確性,建議使用者清空回收站,在跟蹤觀測alert日誌是否繼續產生該條資訊,後續得到反饋日誌中的資訊沒了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30310891/viewspace-2928396/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- performing DML/DDL operation over object in binORMObject
- performing DML/DDL operation over object in bin ORA-38301ORMObject
- ORACLE10.2.0.3 RAC for AIX,下alert日誌報performing DML/DDL operation over object in bin.OracleAIORMObject
- cygwin 多使用者 /bin/bash: Operation not permittedMIT
- oracle分析函式,keep and over解說Oracle函式
- 安裝pods提示Operation not permitted usr bin xcodeprojMITXCode
- bundler安裝失敗,Operation not permitted - /usr/bin/***MIT
- “Operation is not valid due to the current state of the object.”Object
- sum()over()和count()over()分析函式函式
- 分析函式 over函式
- oracle的分析函式over 及開窗函式Oracle函式
- oracle redo log operationOracle Redo
- ORA-38301:can not perform DDL/DML over objects in Recycle BinORMObject
- oracle SPA 效能分析案例Oracle
- Oracle分析函式之開窗函式over()詳解Oracle函式
- Oracle 中的 ROW_NUMBER() OVER() 分析函式的用法Oracle函式
- 【Mysql】Mysql似oracle分析函式sum over的實現MySqlOracle函式
- oracle的sql查詢分析函式-高階部分-分析函授over()子句OracleSQL函式
- Oracle RDBMS History Over the YearsOracle
- Oracle over()函式使用Oracle函式
- oracle recycle bin 研究Oracle
- oracle的分析函式over(Partition by...) 及開窗函式Oracle函式
- Oracle 中分析函式用法之--rank(),dense_rank(),partition,over()Oracle函式
- Oracle統計分析函式集,over(partition by..) 的運用Oracle函式
- Oracle分析函式七——分析函式案例Oracle函式
- oracle12c Performing Backup and Recovery文件筆記OracleORM筆記
- javascript Object分析JavaScriptObject
- Oracle 中$ORACLE_HOME/bin/oracle檔案Oracle
- 11 應用程式突報Oracle TNS-12514典型案例分析Oracle
- oracle over函式 詳解(轉)Oracle函式
- How to purge the Oracle Database Recycle BinOracleDatabase
- 備庫報警郵件的分析案例(一)
- 備庫報警郵件的分析案例(二)
- 備庫報警郵件的分析案例(三)
- ROW_NUMBER() OVER() 分析函式的用法函式
- Oracle資料庫壞塊典型案例分析Oracle資料庫
- oracle日誌狀態為STALE案例分析Oracle
- oracle AWR報告提取分析Oracle