Oracle內(nèi)存分配不足的過程解析(業(yè)務(wù)干掛數(shù)據(jù)庫)
最近一套核心的19C業(yè)務(wù)庫掛了,嚴(yán)重的影響了生產(chǎn),經(jīng)過全方位的排查,分析出來的結(jié)果業(yè)務(wù)劇增導(dǎo)致的內(nèi)存不足,特將本次故障分析分享給大家!
1.故障現(xiàn)象
應(yīng)用反饋數(shù)據(jù)庫已經(jīng)夯住,通過監(jiān)控平臺看到很多高警如下,初步判定跟Log file sync有關(guān)系,但是別經(jīng)驗主義,詳細(xì)的分析還要看具體報告!
Warning: log write elapsed time 783ms, size 5KB
*** 2025-01-20T11:56:02.114674+08:00
Warning: log write elapsed time 2215ms, size 4KB
*** 2025-01-20T12:00:30.111624+08:00
Warning: log write elapsed time 657ms, size 146KB
*** 2025-01-20T12:02:39.413947+08:00
Warning: log write elapsed time 534ms, size 109KB
*** 2025-01-20T12:02:40.422849+08:00
Warning: log write elapsed time 578ms, size 86KB
*** 2025-01-20T12:02:40.981447+08:00
Warning: log write elapsed time 558ms, size 41KB
2. 分析過程
2.1 AAS負(fù)載
一看AAS,嚇一跳啊,AAS>> # of CPUS,這明顯的出現(xiàn)了很嚴(yán)重的性能瓶頸。
2.2 等待事件
等待事件是衡量數(shù)據(jù)庫優(yōu)化情況的重要指標(biāo),明顯出現(xiàn)了異常。
acknowledge over PGA limit的解釋為:如果實例接近PGA_AGGREGATE_LIMIT限制,它將迫使需要更多PGA的進(jìn)程等待一段時間,同時發(fā)現(xiàn)了PGA的內(nèi)存在故障期間嚴(yán)重出現(xiàn)了內(nèi)存抖動。
再次確認(rèn)數(shù)據(jù)庫參數(shù)的設(shè)置,PGA_AGGREGATE_LIMIT為20G,sga_target為55G,processes為5120的設(shè)置,按照官方的經(jīng)驗其實這是是合理的。
(1)OLTP系統(tǒng):
SGA_TARGET = (total_mem * 0.8) * 0.8
PGA_AGGREGATE_TARGET=(total_mem * 0.8) * 0.2
(2)OLAP(DSS)系統(tǒng):
SGA_TARGET= (total_mem * 0.8) * 0.5
PGA_AGGREGATE_TARGET =(total_mem * 0.8) * 0.5
(3)PGA_AGGREGATE_LIMIT=3MB*processes
RAC環(huán)境為:PGA_AGGREGATE_LIMIT=5MB*processes
那么這次怎么會導(dǎo)致over PGA limit呢?最大可能為業(yè)務(wù)劇增,那么繼續(xù)排查。
那么如果想盡快恢復(fù)業(yè)務(wù),可以臨時設(shè)置PGA_AGGREGATE_LIMIT=0處理,但這不是長久之計。
2.3 transactions分析
ADDM的報告中也給出了這個結(jié)論,明顯出現(xiàn)了劇增的業(yè)務(wù)。
一般來說transactions不超過200都是正常的,或者200左右都是正常的,超多1000就是非常繁忙了!
user calls/(user commits+user rollbacks) 本次平均值為4.84= 4.84/(0.33+0.67) ,平均每4.84 次 user calls 就會有一次 commit,業(yè)務(wù)提交特別的頻繁。
2.4 阻塞分析
比較’log file sync’和’log file parallel write’的平均等待時間,此時IO存在嚴(yán)重的阻塞。
大量的SQL出現(xiàn)嚴(yán)重的library cache lock、latch: shared pool。
3.總結(jié)分析
上面的一切初始建議值,都是在上線前的最佳配置建議值,在上線執(zhí)行一段時間后,系統(tǒng)執(zhí)行特性真面目就慢慢的體現(xiàn)出來了,這時,就應(yīng)該依據(jù)執(zhí)行實際需求及時的調(diào)整SGA_TARGET與PGA_AGGREGATE_TARGET的值了,但是業(yè)務(wù)也要做好評估,必須期間提升硬件性能,同時一些低效率低的SQL也要做好優(yōu)化!
到此這篇關(guān)于Oracle內(nèi)存分配不足的文章就介紹到這了,更多相關(guān)Oracle內(nèi)存分配不足內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于sql腳本導(dǎo)入Oracle時重復(fù)生成check約束的問題解決
這篇文章主要給大家介紹了關(guān)于sql腳本導(dǎo)入Oracle時重復(fù)生成check約束的問題解決方法,文中給出了詳細(xì)的檢查步驟,對大家理解和解決這個問題具有很好的幫助,需要的朋友們下面來一起看看吧。2017-05-05CentOS8下安裝oracle客戶端完整(填坑)過程分享(推薦)
這篇文章主要介紹了CentOS8下安裝oracle客戶端完整(填坑)過程分享,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12Oracle?EBS數(shù)據(jù)庫密碼復(fù)雜度設(shè)置圖文教程
選擇安全的密碼并實施良好的密碼策略是迄今為止防止基于密碼的安全威脅的極為重要的防御措施,下面這篇文章主要給大家介紹了關(guān)于Oracle?EBS數(shù)據(jù)庫密碼復(fù)雜度設(shè)置的相關(guān)資料,需要的朋友可以參考下2024-04-04oracle 9i使用閃回查詢恢復(fù)數(shù)據(jù)庫誤刪問題
本篇文章給大家介紹在oracle 9i中使用閃回查詢恢復(fù)數(shù)據(jù)庫誤刪問題,涉及到數(shù)據(jù)庫增刪改查的基本操作,對oracle數(shù)據(jù)庫閃回查詢感興趣的朋友可以一起學(xué)習(xí)下本篇文章2015-10-10delete archivelog all無法清除歸檔日志解決方法
最近在因歸檔日志暴增,使用delete archivelog all貌似無法清除所有的歸檔日志,究竟是什么原因呢?本文將為您解答,需要的朋友可以參考下2012-12-12解決navicat 鏈接oracle時出現(xiàn)的各種問題
這篇文章主要介紹了解決navicat 鏈接oracle時出現(xiàn)的各種問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08解析如何查看Oracle數(shù)據(jù)庫中某張表的字段個數(shù)
本篇文章是對查看Oracle數(shù)據(jù)庫中某張表的字段個數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06深入探討:Oracle中如何查詢正鎖表的用戶以及釋放被鎖的表的方法
本篇文章是對Oracle中查詢正鎖表的用戶以及釋放被鎖的表的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05