歸檔日誌滿導致ORA-13516錯誤,awr報表不能自動收集
問題描述:
一個壓力測試環境,需要模擬大量資料,於是寫了個job在週末跑,結果今天來看結果的時候,發現由於產生大量的歸檔日誌,導致磁碟空間耗盡,job已經停了。看看資料也造的差不多,也沒在意。於是QA開始做壓力測試,但是壓了一段時間去看AWR報表的時候,卻發現最新的報表只到週末為止,沒有新的自動收集的報表產生???
這樣的問題是第一次碰到,首先到DBA_HIST_SNAPSHOT查詢最新的記錄,結果確實沒有最新的記錄產生。接下來手工的去建立一次資訊統計:
SQL> exec dbms_workload_repository.create_snapshot;
begin dbms_workload_repository.create_snapshot; end;
ORA-13516: AWR Operation failed: only a subset of SQL can be issued
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 10
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 33
ORA-06512: at line 1
錯誤資訊說明DBMS_WORKLOAD_REPOSITORY包執行的第十行有錯,檢視此包的程式碼準備進行單步跟蹤,結果發現此包的程式碼是加密的。嘗試把以前收集的統計資訊全部刪除,然後再重新建立新的:
SQL> exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 0,high_snap_id => 10000);
begin dbms_workload_repository.drop_snapshot_range(low_snap_id => 0,high_snap_id => 10000); end;
ORA-13516: AWR Operation failed: only a subset of SQL can be issued
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 65
ORA-06512: at line 1
結果出現同樣的錯誤,看來此路不通。google了一把,發現有人碰見過類似的錯誤(原文),不過他是升級到10G出現的問題,按照提供的一點線索,執行:
SQL> SELECT NAM.KSPPINM NAME, VAL.KSPPSTVL, NAM.KSPPDESC DESCRIPTION
2 FROM X$KSPPI NAM, X$KSPPSV VAL
3 WHERE NAM.INDX = VAL.INDX
4 AND NAM.KSPPINM = '_awr_restrict_mode'
5 ORDER BY 1;
NAME KSPPSTVL DESCRIPTION
-------------------- ---------------- -----------------------
_awr_restrict_mode FALSE AWR Restrict Mode
從返回結果沒有得到什麼幫助資訊。後來想到awr是透過什麼方式實現定時收集資訊的呢?無非是job、schedule或者後臺程式,檢視了job和schedule後沒發現有awr相關的資訊,於是注意力轉移到後臺程式。GOOGLE一把ORA-13516、後臺程式兩個關鍵字,得到了awr執行是透過MMON程式來執行的,於是到伺服器上執行:
[root@db1 ~]# ps -ef | grep mmon
root 8028 13026 0 17:45 pts/1 00:00:00 grep mmon
可以看到沒有mmon程式了,而另外幾個機器執行相同的命令都有mmon程式存在,看來是這個程式宕掉了。這時才想起來看alert檔案,因為測試環境發生過多次的歸檔日誌滿的情況,都是直接刪除些檔案,騰出點空間,然後就ok了,也沒注意到mmon程式或者其他程式是否宕掉。alert中有如下的記錄:
ORA-19502: write error on file "/u02/archive/db/Arc_1_178_629204558.arc", blockno 14337 (blocksize=512)
Sat Aug 11 16:26:05 2007
ARC1: Failed to archive thread 1 sequence 178 (19502)
Sat Aug 11 16:32:23 2007
Shutting down instance: further logons disabled
Sat Aug 11 16:34:14 2007
Stopping background process QMNC
Sat Aug 11 16:34:14 2007
Stopping background process CJQ0
Sat Aug 11 16:34:16 2007
Stopping background process MMNL
Sat Aug 11 16:34:24 2007
Stopping background process MMON
Sat Aug 11 16:34:25 2007
Shutting down instance (normal)
License high water mark = 625
Sat Aug 11 16:34:25 2007
Stopping Job queue slave processes
Sat Aug 11 16:34:25 2007
Job queue slave processes stopped
Sat Aug 11 16:53:16 2007
MMNL absent for 1202 secs; Foregrounds taking over
日誌中明確記錄了QMNC、CJQ0、MMNL、MMON四個程式都宕了,查詢資料,這四個程式分別是負責以下工作:
1、QMNC程式對於AQ表來說就相當於CJQ0程式之於作業表,QMNC程式會監視高階佇列,並警告從佇列中刪除等待訊息的“出隊程式”(dequeuer)
2、CJQ0程式是作業佇列協調器(job queue coordinator)
3、MMNL是可管理性監視器燈(manageability monitor light)
4、MMON是可管理性監視器(manageability monitor)
MMON、MMNL和Mnnn這些程式用於填充自動工作負載儲存庫(Automatic Workload Repository,AWR),這是Oracle 10g中新增的一個特性。MMNL程式會根據排程從SGA將統計結果重新整理輸出至資料庫表。MMON程式用於“自動檢測”資料庫效能問題,並實現新增的自調整特性。Mnnn程式類似於作業佇列的Jnnn或Qnnn程式;MMON程式會請求這些從屬程式代表它完成工作。Mnnn程式本質上是臨時性的,它們將根據需要來來去去。
由此可見,MMON和MMNL程式宕掉是awr不能自動收集的根本原因,但是這個咚咚為什麼會宕,宕了之後為什麼不自動起來?不得而知!重新google了半天,沒有答案,由於是測試庫,按照前面那個老兄的解決辦法,重新啟動了database後,一切恢復正常。
總結:任何問題都有原因的,可是我知其然,不知道oracle是否知其所以然否?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-955196/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 錯誤碼[-718]:收集到的歸檔日誌不連續
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 使用go+gin編寫日誌中間,實現自動化收集http訪問資訊,錯誤資訊等,自動化生成日誌檔案GoHTTP
- dbca建立資料庫時報錯ORA-13516: AWR Operation failed: CATPROC not valid資料庫AI
- 歸檔日誌挖掘
- PostgreSQL 歸檔日誌SQL
- oracle歸檔日誌Oracle
- RMAN刪除歸檔日誌出現RMAN-0813錯誤的處理
- Oracle歸檔日誌所在目錄時間不對&&Oracle叢集日誌時間顯示錯誤Oracle
- 排查錯誤日誌
- 配置rman來自動刪除應用過的歸檔日誌
- 歸檔oracle alert日誌Oracle
- 14. 日誌歸檔
- Oracle歸檔日誌清理Oracle
- [bug]MySQL 雜湊掃描錯誤地應用日誌導致主從中斷MySql應用日誌
- Oracle歸檔檔案丟失導致OGG不用啟動Oracle
- 手工rm刪除歸檔日誌對備份歸檔日誌的影響
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- 日誌查詢錯誤
- net 日誌分析錯誤
- Mabatis配置錯誤日誌BAT
- 批量註冊歸檔日誌
- ORACLE DATAGUARD災備歸檔空間滿導致的ORA-00600 [2619]Oracle
- MogDB/openGauss誤刪未歸檔的xlog日誌如何解決
- Docker啟動出現"No space left on device" 或者 docker日誌太多導致磁碟佔滿問題Dockerdev
- 達夢資料庫[-718]收集到的歸檔日誌不連續資料庫
- asm磁碟組依賴導致資料庫自啟動報錯ASM資料庫
- MySQL 狂寫錯誤日誌MySql
- DG歸檔日誌缺失恢復
- ArgoWorkflow教程(四)---Workflow & 日誌歸檔Go
- logminer異機挖掘歸檔日誌
- Oracle資料庫分割槽表SPLIT操作導致歸檔瘋漲Oracle資料庫
- impdp/expdp報錯: ORA-39064: 無法寫入日誌檔案 ORA-29285: 檔案寫入錯誤
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- Apiclude中Talkingdata模組異常日誌不能收集問題API
- node錯誤處理與日誌
- SAP 錯誤日誌的調查
- rman 還原歸檔日誌(restore archivelogRESTHive