最近某客戶現場一套12C的RAC在一天內出現多次librarycache lock,cursor:pinSwait on X,enq:TX-rowlock contention異常等待事件,通過介入針對數據庫會話進行kill后,數據庫等待事件恢復正常。
詳細分析過程如下:
一、通過查看故障時間點awr報告存在sql頻繁解析失敗,導致大量硬解析
節點2,15:00-16:00,awr報告sql解析和硬解析占用大量db_time 節點2,18:00-19:00,awr報告sql解析和硬解析占用大量db_time 節點2,22:00-22:53,awr報告sql解析和硬解析占用大量db_time 故障時間點ash報告中存在未執行成功sql 節點2,22:15-22:20存在未執行成功sql |
二、通過檢查節點1,2都發生過sharepool抖動,另外從故障時間點(22:00-22:53)采集節點2的ADDM報告可以看出主要集中在SharedPool Latches的競爭。
節點1:share pool自動調整 節點2:share pool自動調整 另外從故障時間點(22:00-22:53)采集節點2的ADDM報告可以看出主要集中在Shared Pool Latches的競爭。 |
三、在故障發生過程中,發現系統存在自動任務調起的情況(自動統計信息收集,自動分段顧問),因為自動統計信息收集發起導致cursor失效,sql需要重新解析,這也是故障原因之一。
檢查發現目前數據庫已開啟如下自動任務如下: 任務說明: 1、自動優化器統計收集:為所有方案對象收集陳舊的或缺少的統計數據,所收集的統計信息將被用來提高SQL的執行的性能,任務名是"autooptimizer stats collection" 2、自動分段顧問:標識數據庫中的段是否有可以回收的空間,并以此信息統計為基礎做出怎樣整理段的碎片以節約空間。也可以手動的執行此job來獲取最新的建議信息,或者獲取自動段advisor 不檢測的但又可以回收的段的信息,任務名是"auto space advisor" 3、自動SQL調整顧問:自動標識并嘗試調整高負載的SQL,任務名是"sqltuning advisor"。 4、ORACLE_OCM用戶主要是用于Oracle配置管理器,當發出SR請求時,它和數據庫實例配置相聯系,把配置信息發送給Oracle供分析。 通過檢查故障時間點前后范圍ash報告,在故障前22:05:00-22:15:00,(故障發生時間為22:16分),自動優化器統計收集和自動分段顧問都自動調度起來。 |
數據庫在開啟10035后發現后臺有未執行成功的SQL。
啟用10035事件
Altersystem set events 10035 trace name context forever,level 1;
關閉10035事件
Altersystem set events 10035 trace name context off;
注:
開啟10035事件抓取解析失敗sql不能作為日常項來開展,此類sql均是因為sql語法錯誤,訪問對象不存在或字段缺失等原因導致,
應用應該上線前應該做好評審把控,做好功能測試(這類報錯往往功能測試都是通不過的),將此類問題sql控制在源頭,扎好上線的口袋;
長期開啟10035事件有以下兩點不利因素:
1、數據庫開啟10035并不是一種日常維護手段。
2、10035事件會將解析失敗的語句信息寫入數據庫alert,易造成錯誤信息刷屏,增加了數據庫目錄撐爆的風險,以及日常巡檢維護難度。
總結:
首先是應用發起的SQL解析失敗及硬解析導致cursor。然后統計信息收集導致部分cursor失效,從而加重了SQL解析壓力。sharedpool本來剩余空間就有點不足了,所以壓力一來就會grow,但是在dbcache空間不能及時釋放出來的,sharedpool grow失敗的情況下,更加加重了sharedpool閂鎖的競爭。
建議如下:
1、協助應用整改未執行成功sql。
2、目前數據庫兩個節點sharepool頻繁調整,將sharepool size 從10G調整至15G。
alter system set shared_pool_size=15G scope=spfile; |
3、關閉autospace advisor,sqltuningadvisor(已關閉理賠庫該參數)和oracle_ocm相關job及調整autooptimizerstats collection調度時間。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/130061.html
Oracle數據庫4031故障分析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; m...
摘要:命令行方式獲取顯示當前的用戶操作。類似于的可以監控所有慢的以及不慢的查詢。以及其他第三方鏈接性能調優場景現實的首頁我們希望現實最近發布的條。自動刪除舊文檔為了給新文檔創建空間,在集合中自動刪除老舊的文檔,不需要執行額外的腳本和操作。 轉載請注明出處 http://www.paraller.com 原文排版地址 http://www.paraller.com/2016/10/22/m...
摘要:清楚了以上流程,我們直接來看函數主要用作初始化應用監聽端口以及啟動。其中就是保存聊天室所有聊天消息的結構。關于的解讀我會放到閱讀源碼時講。然后把消息加到緩存里,如果緩存大于限制則取最新的條消息。 tornado 源碼自帶了豐富的 demo ,這篇文章主要分析 demo 中的聊天室應用: chatdemo 首先看 chatdemo 的目錄結構: ├── chatdemo.py ├── ...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1902·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2751·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20