接到應(yīng)用側(cè)反應(yīng)數(shù)據(jù)庫無法連接,登錄系統(tǒng)查看集群狀態(tài):
發(fā)現(xiàn)集群狀態(tài)為:stuckarchiver,此狀態(tài)數(shù)據(jù)庫開啟了歸檔且歸檔日志目錄滿導(dǎo)致的。
核實ASM存儲,歸檔日志大小,以及歸檔位置:
經(jīng)定位的確空間不足導(dǎo)致,對歸檔做了清理后集群狀態(tài)恢復(fù)。
分析歸檔切換頻率:
執(zhí)行結(jié)果:發(fā)現(xiàn)該時段有異常的歸檔日志切換,導(dǎo)致本身充足的200GASM磁盤在短短的2小時被歸檔撐滿(一個歸檔500M),最終導(dǎo)致數(shù)據(jù)庫故障。
快速定位相關(guān)變更對象:
塊是oracle數(shù)據(jù)庫的最小存儲結(jié)構(gòu),數(shù)據(jù)庫中增刪改都是會記錄塊變更的,因此快速定位歸檔日志增長推薦采用塊變更視圖。
通過塊表更快速準(zhǔn)確定位相關(guān)對象,以及相關(guān)sql讓業(yè)務(wù)側(cè)核實業(yè)務(wù)邏輯;
經(jīng)查詢有一個日志表塊變更極度頻繁,每一次塊變更都基本上對應(yīng)一次insert操作,數(shù)據(jù)庫默認(rèn)塊大小時8k,而每次insert數(shù)據(jù)在沒有clob字段的情況下,幾乎不會超過8K,因此可以快速定位這個期間,該表進(jìn)行了快速的增刪改操作。
經(jīng)抓取15-16,16-17兩個時間段的awr報告發(fā)現(xiàn),這兩個時間段有一條insert sql,頻繁的執(zhí)行了幾千萬次,最終導(dǎo)致歸檔短時間撐爆ASM磁盤,導(dǎo)致無法正常切換歸檔的問題。
業(yè)務(wù)側(cè)找到了導(dǎo)致死循環(huán)的任務(wù),將任務(wù)停止后,歸檔不再增加,系統(tǒng)恢復(fù)正常。但是短期的insert導(dǎo)致的表空間增長是勢必要解決的,但是當(dāng)我們分析數(shù)據(jù)庫大對象是發(fā)現(xiàn),導(dǎo)致短時間產(chǎn)生750個歸檔,近300G存儲容量的表,實際上只有24G,客戶對此有點(diǎn)疑問,一般情況下歸檔日志肯定記錄要大于表數(shù)據(jù),畢竟日志記錄的要多一點(diǎn),但是為了更好的比對一下比例不妨做一個簡單的實驗。
截圖:問題數(shù)據(jù)庫中大對象存儲明細(xì)
前期準(zhǔn)備:
數(shù)據(jù)庫版本 | 11.2.0.4.0 |
歸檔狀態(tài) | 已開啟 |
第一步:清空測試環(huán)境歸檔目錄
切換歸檔日志:保證實驗時產(chǎn)生的歸檔都是插入導(dǎo)致的
Alter system switchlogfile;
清空歸檔目錄:便于觀察歸檔大小
Crosscheckarchivelog all;
delete nopromptarchivelog until time sysdate-0.001;
用于隨機(jī)導(dǎo)入數(shù)據(jù)特定的數(shù)據(jù)
create or replace procedure zzj_test_proc(num1 Number) is begin For cur In 1 .. num1 Loop Insert Into zzj_test_awr Values(cur,Sysdate); If Mod(cur,100)=1 Then Commit; End If; End Loop; Commit; end zzj_test_proc; |
第三步:調(diào)用插入實驗過程觀察相關(guān)待驗證結(jié)果
1:調(diào)用存儲過程:Callzzj_test_proc(100000);
2:切換日志看歸檔日志大小
Alter system switchlogfile;
發(fā)現(xiàn)當(dāng)前歸檔日志足足產(chǎn)生了41M
3:核實塊表更情況
快變更依賴dba_hist_snapshot視圖,此視圖依賴于快照信息,所以執(zhí)行完后需要手工收集一下數(shù)據(jù)庫快照
手工收集快照:
begin
dbms_workload_repository.create_snapshot();
end;
/
詳細(xì)見截圖:
可以看到塊變更次數(shù)幾乎滿足于存儲過程執(zhí)行的次數(shù),再一次證明每一次插入都會對應(yīng)一次塊變更的記錄更新。
核實插入十萬行數(shù)據(jù)表大小的變化:
我們可以看到表大小僅僅變化了3M,而歸檔足足增加了41M,綜上可以判斷日志產(chǎn)生基本上是數(shù)據(jù)的十倍以上,這也解釋了,為啥短時間歸檔日志產(chǎn)生了足足300G,而表空間增長卻很緩慢。
歸檔和表數(shù)據(jù)增長的明顯不成比例,當(dāng)發(fā)現(xiàn)歸檔的過度增加是因為某一個對象導(dǎo)致的,而對象存儲的增長卻明顯很低,這種顯然很難從對應(yīng)的官方文檔或是MOS上找到想要的解釋,而這種現(xiàn)象卻可以通過簡單地實驗去驗證自己的設(shè)想,顯然如上實驗清晰明了的證明了歸檔日志的數(shù)據(jù)存儲的確遠(yuǎn)大于數(shù)據(jù)庫表記錄存儲占用的空間,在專注技術(shù)的道路上,學(xué)會實驗驗證自己的猜想很重要。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129957.html
摘要:截止年月日,迅雷全年總營收約為億美元,較年增長。第四季度總營收約為萬美元,同比增長,環(huán)比增幅,是迅雷連續(xù)個季度營收增長以來的最高增幅,也是迅雷自年上市以來的最高紀(jì)錄。其中,云計算業(yè)務(wù)的收入增長最為迅猛。北京時間3月15日上午,迅雷正式公布了2017年第四季度及全年未經(jīng)審計的財務(wù)報告。截止2017年12月31日,迅雷全年總營收約為2億美元,較2016年增長43.2%。第四季度總營收約為8240...
摘要:更新語句以上就是一條查詢的執(zhí)行流程,那么接下來我們看看一條更新語句如何執(zhí)行的呢語句如下張三我們來給張三修改下年齡,在實際數(shù)據(jù)庫肯定不會設(shè)置年齡這個字段的,不然要被技術(shù)負(fù)責(zé)人打的。 該文已加入筆主的開源項目——JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識的文檔類項目),地址:https://github.com/Snailclimb/JavaGuide 。覺得不錯...
摘要:當(dāng)前人才極度緊缺,據(jù)中國人才生態(tài)白皮書研究分析,到年底,我國人工智能人才缺口將突破萬,到年,這一數(shù)字將攀升到萬。最近,已經(jīng)上升到語言流行度指數(shù)的第四名。 showImg(https://upload-images.jianshu.io/upload_images/13825820-441c48554e878284.jpg?imageMogr2/auto-orient/strip%7Ci...
摘要:當(dāng)前人才極度緊缺,據(jù)中國人才生態(tài)白皮書研究分析,到年底,我國人工智能人才缺口將突破萬,到年,這一數(shù)字將攀升到萬。最近,已經(jīng)上升到語言流行度指數(shù)的第四名。 showImg(https://upload-images.jianshu.io/upload_images/13825820-441c48554e878284.jpg?imageMogr2/auto-orient/strip%7Ci...
閱讀 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