Oracle10g/11g数据库性能的诊断和监控方法论
?
《oracle大型數據庫系統在AIX/unix上的實戰詳解》討論32:Oracle10g/11g數據庫性能的診斷和監控方法論? 文平
還是繼續年前的話題,繼續討論 Oracle10g/11g中數據庫性能的診斷,對應的監控方法論。10g/11g中提供的ADDM工具很好,但絕非萬能,還在使用。正確的方法論尤為重要,如何使用之?
當一套Oracle數據庫應用系統發生性能問題時,必須首先進行準確和恰當的診斷,并在進行切實調整時,了解問題出現的節點和位置。對一套系統歷史狀態、現行狀態的了解程度,加上本身作為一個數據庫 DBA 的工作經驗,這會有助于快速定位問題,至少在相當大的程度上增加了成功的可能性。
對于一套oracle系統的性能問題,通過統計數據分析并得到結論是不二法門。Oracle10g以后版本中增加的自動工作量資料檔案庫(AWR)記載了關于性能的歷史數據,與此功能對應,自動數據庫診斷監視器( ADDM )是一個分析AWR數據,然后依據Oracle的知識庫定位性能問題的產程成因,并提出推薦的解決方案。AWR在這個環節中的作用是歷史性能數據的抓取和保存,ADDM是分析AWR數據的工具和參謀。
具體而言,每次AWR快照抓取,其后即尾隨一次ADDM分析,并且分析結果存儲在數據庫表中。我們可以通過Oracle企業管理器(OEM)查看分析結果,或者通過SQL*Plus直接查看報表。
具體實施中,性能調整人員首先要讀取ADDM輸出結果,并分析ADDM給出的結論。ADDM提供了相對準確的數據庫分析報告,所謂相對準確,是指ADDM所包含的技術含量,可能大多數情況下比你提供的多。ADDM具有如下特點:
- 每小時自動執行的自動性能診斷報告
- 匯集了Oracle性能診斷和調整方面多年的智慧
- 以時間為基礎的量化問題診斷及提供準確的方案
- 有助于識別出根本原因,而非基于表象的結論
- 推薦方案針對根本問題,而非表象問題
- 數據庫性能診斷對系統性能影響微小,可忽略不計
ADDM功能強大,但還是基于一個根本性的認同:性能調整時一個迭代過程。其含義包含如下方面:當你解決了一個性能瓶頸時,系統性能問題可能在另外一個位置又出現了,就象在下面的圖中,我們解掉第一把鎖,第二把鎖隨后顯露出來:
從結果上看,上圖中的改進,其直接結果將不明顯,因為,還有第二把鎖在發揮瓶頸作用。因此,對于ADDM的使用,或者任何其它優化工具,不能期待一次性解決問題,這將是一個循環往復的過程。
自動數據庫診斷監視器( ADDM )是Oralcle新版本人性化設計、開發的一個典型案例。究竟,Oracle的工程師更了解自己多一些。ADDM提供了AWR取樣期間任何時間段內對統計數據進行分析并提供調整方案的能力。
在Oracle10g中,關于性能調整指標的確認,和Oracle9i以前版本不同。Oracle10g提出了一個綜合的性能度量指標:DB time。DB 時間是數據庫服務器在處理用戶要求時花費的累積時間。它包括所有激活(非空閑)用戶會話的等待時間和CPU時間。性能分析的目標是減少DB time度量時間。DB time可以通過V$SESS_TIME_MODEL 和V$SYS_TIME_MODEL 視圖查詢。
但是一點需要注意,ADDM的目標在于系統整體,并不在于調整會話個體的相應時間。如果希望調整單個用戶連接會話,則需要使用端對端的應用跟蹤技術。
通過減少DB time,數據庫服務器將降低處理當前載荷的工作壓力,進而在使用同樣資源情況下,承受更大的載荷壓力。ADDM的診斷報告中,DB time的使用情況按照從大到小的順序排列,排列在前面的操作,是系統性能瓶頸的可能性最大。
ADDM報告的問題歸類如下:
- 系統CPU使用是否受Oracle或其它應用約束
- Oracle使用的操作系統內存部分如SGA、PGA大小是否足夠
- I/O子系統的執行是否存在問題
- 系統中是否含有高消耗的SQL語句
- 系統中是否含有高負載的PL/SQL塊、Java塊
- RAC(真正應用集群)中全局緩存結構中存在哪些熱塊和對象、其節點間內部連接和通信是否存在問題
- 應用中是否存在低效的用戶連接、SQL解析、鎖問題
- 數據庫配置是夠存在問題,是否日志文件大小不當、檢查點過于稀疏或緊密等
- 多用戶訪問下是否存在并發性問題,是否存在緩存塊忙、爭用等問題
- 系統中熱點對象、熱點SQL有哪些
ADDM除去標示了系統問題所在,同時也標示了系統哪些方面不必進行性能上的考慮。這樣做大大節省了調優工程師閱讀報告上所需花費的漫長時間,提高分析效率。
除問題診斷外,ADDM還推薦了可能的解決方案,這些方案可能涉及:
- 硬件級別的調整:例如,增加CPU、內存、調整 I/O子系統
- 數據庫級別的調整:例如調整數據庫系統初始化參數放置
- 應用模式對象調整:例如,進行表的分區演化,使用ASSM管理表空間使用
- 應用系統的調整:例如改變序列號產生辦法、使用綁定變量等技術
- 使用其它顧問:例如推薦使用Oracle10g帶來的顧問工具來調整段、SQL、還原等操作
未完,待續,參見 www.usedb.cn ,wenping…
?
…
轉載于:https://blog.51cto.com/wenping/281669
總結
以上是生活随笔為你收集整理的Oracle10g/11g数据库性能的诊断和监控方法论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三亚去世侏儒抹香鲸被解剖:胃内有大量塑料
- 下一篇: shell编程中特殊字符的问题总结