最佳實踐:針對效能問題的主動型資料收集 [ID 1549179.1]
最佳實踐:針對效能問題的主動型資料收集 [ID 1549179.1]
文件內容
用途 |
提出問題、獲取幫助並分享您的經驗 |
適用範圍 |
詳細資訊 |
實施總結 |
方法 |
自上而下的方法: |
作業系統 (OS) 級的資料收集。 |
OSWatcher Black Box |
資料庫級的資料收集 |
AWR |
ASH |
建立多條基線: |
做好準備!:在問題發生前安裝並執行正確的工具 |
HangFG |
SQLHC |
SQLTXPLAIN (SQLT) |
針對不穩定的環境部署專用工具: |
LTOM |
Procwatcher |
升級前要收集的資訊 |
AWR baselines |
SQL Plan management Baselines |
主動型最佳實踐的核對錶 |
建立服務請求 |
如果未進行主動型收集,怎麼辦 |
參考 |
適用於:
Oracle Database - Enterprise Edition - 版本 10.1.0.2 和更高版本Oracle Database - Standard Edition - 版本 10.1.0.2 和更高版本
Oracle Database - Personal Edition - 版本 10.1.0.2 和更高版本
本文件所含資訊適用於所有平臺
用途
本文件介紹了一種最佳實踐方法,用於確保在第一次發生問題時主動收集到足夠的效能資料,從而能夠有效地確定根本原因。您可以將本文件與下列文件結合使用,幫助避免問題發生,或者在問題無法避免時收集進行快速診斷所需的資訊:
提出問題、獲取幫助並分享您的經驗
您想要與其他 Oracle 客戶、Oracle 員工及業內專家深入探討嗎?
單擊此處,訪問 My Oracle Support
Community(中文),在這裡您可以提出問題、獲取他人的幫助並分享您的經驗。
適用範圍
本文件旨在為資料庫使用者提供關於診斷效能資料收集的主動型最佳實踐的建議。
詳細資訊
實施總結
眾所周知,要收集足夠多的資料來解決複雜的效能問題是非常困難的。過去,使用者在遇到問題後聯絡 Oracle Support 時,有可能只是被告知未收到足夠多的資料,或者由於是第一次出現該問題,因而沒有任何資料能夠幫助他們解決問題。然後,技術支援人員會建議使用者收集某些資料(隨後是反覆收集更多資料的過程),但在使用者將這些資料傳送給他們後,可能又被告知未收集到足夠的資料,需要在下次問題發生時收集更多。
本文件介紹的方法,可以消除或減少不必要的資料收集以減少花費的時間和精力,從而及時解決問題。本文件中介紹的方法對資料庫本身效能的影響微乎其微,有些方法(例如與 Automatic Workload Repository(AWR)相關聯的方法 )甚至已經整合到資料庫中。
方法
我們的最佳實踐方法包括:
- 自上而下的資料收集方法
- 建立多條基線
- 在問題發生前安裝並執行正確的工具
- 針對不穩定的環境部署專用工具
自上而下的方法:
作業系統 (OS) 級的資料收集。
只有當 Oracle 所在的伺服器以最佳狀態執行時,Oracle 才能以最佳狀態執行。因此,當您開始在伺服器級別進行資料收集時,最好使用 OSWatcher Black Box 來捕獲作業系統指標,從而可以監視並調整伺服器效能。
-
OSWatcher Black BoxOSWatcher Black Box
包含一個內建的分析器,通過該分析器,可以對已收集的資料進行自動分析,進而主動查詢 CPU、記憶體、IO 和網路問題。建議所有使用者安裝並執行
OSWbb,因為對於查詢 OS 問題,OSWbb 的作用非常大,且幾乎沒有開銷。
在預設情況下,一旦安裝並執行 OSWatcher Black Box,它將提供對最近 48 個小時的 OS 資料進行“回看”功能。因此,如果在凌晨 2 點發生了節點驅逐,Oracle Support 將能夠從 OSWatcher 日誌中看到當時在 OS 上發生的情況。在 OSWatcher Black Box 之前,您沒有辦法回看在失去服務或出現嚴重效能問題的時候 OS 上可能發生的事情,Oracle 也無法瞭解 OS 上的情況。
有關 OSWatcher Black Box 的下載、使用者指南和使用視訊等資訊,請參閱以下文件。
Document 301137.1 OSWatcher Black Box User Guide (Includes: [Video])
資料庫級的資料收集
幾個可用於收集進行效能分析所需綜合資料的工具:
-
AWR在有關資料庫效能問題的資料收集方面,AWR 是最全面的工具。它主要用於收集資料庫指標(儘管它也可能包含一些 OS
指標)。
如果您預計不會發生效能問題且環境穩定,我們的最佳實踐建議是每 60 分鐘(預設)收集一次 AWR 快照。如果您擔心會發生效能問題,建議您提高快照的頻率。這種情況下,建議的最大快照時間間隔為 20 分鐘;如果系統能夠負擔得起,更高頻率的快照會更好。更高頻率的快照可以讓我們更加細緻地看到在資料庫上發生的情況,然後可以將這些情況與資料庫效能良好時的情況進行比較。無論您選擇哪種快照時間間隔,請保持這個間隔一直收集,以便能夠進行報告比較。
在效能良好的時候抓取一些快照作為正常基線,以便在發生問題時進行比較,這一點非常重要。在很多時候,就算只有 AWR 資料我們也足以定位 bug,並且在一些例項中,AWR 資料會提供足夠多的資訊用於診斷資料庫掛起及其他問題,且無需進行其他特殊的診斷,如收集 systemstate和 hanganalyze。
此外,AWR 還可用於深入探查特定的 sql 語句。如果問題發生在會話級別,則可以先獲取 AWR 報告並進行分析,然後嘗試進行其他 10046 或 sql 跟蹤診斷。上述資訊也可與 ASH 報告一起使用(見下文)。
有關 AWR 的更多資訊,請參閱以下文章:
Document 1363422.1 Automatic Workload Repository (AWR) Reports - Start Point -
ASHActive Session History(ASH)報告會提供非常細緻的指標收集資訊,因為它們會深入到會話級別。與
AWR 提供的效能資料的聚合檢視相比,ASH 以 1 秒級精度提供各個資料庫會話的資訊。對於間歇效能問題或掛起,這非常重要。利用 ASH
資料有時足以在會話級別診斷問題,從而無需進行其他 10046 或 sql 跟蹤診斷。可以根據需要通過 Automatic Workload
Repository(AWR) 獲取 ASH 報告。
有關 Active Session History (ASH) 的更多詳細資訊,請參閱:
Document 243132.1 10g and above Active Session History (Ash) And Analysis Of Ash Online And Offline
Automatic Workload Repository (AWR) 和 Active Session History (ASH) 報告是 Oracle Diagnostics Pack 的兩個獨立元件,且必須作為單獨選項獲得使用許可。最佳實踐建議是獲取並使用該許可,從而可以訪問該資料。請參閱:
否則,您必須使用 statspack 工具。
建立多條基線:
應根據您的業務特徵,獲取並儲存不同時段的基線。建議的基線收集包括:
- 正常活動
- 非繁忙時間
- 一天中最忙的時間
- 月末或業務週期處理
- 批處理作業
擁有上述多條基線時,您將會清楚地瞭解系統是如何正常執行的。當發生問題時,與這些基線進行比較將有助於解決問題。如果未建立基線,要理解效能問題的本質將更加困難。如果使用者在系統效能不佳時僅提供 AWR,則將更加難以分析資料庫的效能;在沒有比較的情況下,資料庫效能好壞與否可能就會變成“主觀臆測”。作為最佳實踐,Oracle Support 建議建立 O/S (OSWbb) 和資料庫 (AWR) 的基線。
做好準備!:在問題發生前安裝並執行正確的工具
除了安裝並執行 OSWbb 以及在指定的時間間隔收集 AWR 外,Oracle Support 還提供了一些專用工具,您應該在伺服器上安裝這些工具,一旦發生問題,可確保能立即派上用場。
-
HangFG
HangFG 可以自動收集掛起診斷,使用者無需知道要生成的 trace 的型別和級別。如果 HangFG 已安裝,並且資料庫發生了掛起,此時使用者可以使用一個簡單的 unix shell 命令列介面,他們可以根據自己的需要選擇不同資料量的資料收集。
請參閱下列文件,獲取有關 Hangfg 的下載和使用者指南。
Document 362094.1 HANGFG User Guide
當前有 3 個級別可供使用者選擇,以啟動掛起診斷資訊的自動生成。這為使用者提供了一定的靈活性,使用者可以確保在進行掛起診斷的時候儘可能不干擾資料庫(如果資料庫仍處於正常執行狀態)。
- 對系統產生輕度影響。此選項收集 2 個 hanganalyze 級別 3 的 trace 檔案,然後確定是否還可以在對系統產生最小影響的情況下收集 1 個 hanganalyze 級別 4 的 trace 檔案。如果可以,它將收集 hanganalyze 級別 4 的 trace 檔案。如果不可以,它將不收集其他 trace 檔案。
- 對系統產生中度影響(預設值)。此選項收集 1 個 hanganalyze 級別 3 的 trace 檔案,然後確定是否還可以在對系統產生最小影響的情況下收集 2 個 hanganalyze 級別 4 的 trace 檔案。如果可以,它將收集 2 個其他的 hanganalyze 級別 4 的 trace 檔案。如果不可以,它將收集 1 個其他的 hanganalyze 級別 3 的 trace 檔案。此選項還收集 1 個 systemstate 級別 266 的 trace 檔案。
- 對系統產生重度影響。此選項收集 2 個 hanganalyze 級別 4 的 trace 檔案和 2 個 systemstate 級別 266 的 trace 檔案。
-
SQLHC
SQL Tuning Health-Check Script. 是 Oracle Server Technologies Center of Expertise 開發的一款工具。該工具,又稱為 SQLHC,用於檢查單個 SQL 語句執行的環境,並檢查基於成本的 optimizer (CBO) 統計資訊、schema 物件後設資料、配置引數和可能會影響正在分析的 SQL 效能的其他元素。
有關此工具的更多詳細資訊,請參閱:
Document 1366133.1 SQL Tuning Health-Check Script. (SQLHC)
SQLHC 旨在允許使用者確保單個 SQL 執行的環境是健康的,並儘量避免能夠避免的 SQL 效能問題。執行時,它“不會在資料庫上留下任何痕跡”,從而確保可以在所有系統上執行。針對一個 SQL_ID 執行時,該指令碼會生成一個 HTML 報告,其中包括有關所提供的那個 SQL 語句的一組健康檢查結果。 -
SQLTXPLAIN (SQLT)
這是一款更加複雜的工具,用於解決 SQL 效能問題(但會在資料庫上留下痕跡)。SQLTXPLAIN,又稱為 SQLT,是由 Oracle Support 提供的一款工具,輸入一個 SQL 語句後,它會輸出一組診斷檔案。這些檔案通常用於診斷效能不佳的 SQL 語句。SQLT 會連線到資料庫,並收集執行計劃、基於成本的 optimizer CBO 統計資訊、schema 物件後設資料、效能統計資訊、配置引數和會影響正在分析的 SQL 效能的其他因素。
有關 SQLT 的更多詳細資訊,請參閱以下文件。
Document 215187.1 SQLT (SQLTXPLAIN) - Tool that helps to diagnose a SQL statement performing poorly
針對不穩定的環境部署專用工具:
大部分使用者的環境是穩定的,沒有任何效能問題。對於擁有不穩定環境且正遇到無法通過上述傳統資料收集方法解決的掛起或遇到瞬間效能問題的使用者,Oracle Support 提供了一些專用工具,以協助除錯此類問題。
-
LTOM
LTOM 是一款可安裝在客戶 unix/linux 平臺上的非常特別的工具。對於那些很少發生,或者發生時間很短以至於無法手工收集資訊的問題,此工具可以用來自動收集需要的資訊。例如,LTOM 可以監控瞬間發生的問題,並在發生問題時自動收集診斷,然後通過電子郵件通知使用者,同時生成解決問題所必需的診斷 trace 檔案。如果您的資料庫在凌晨 2 點掛起,周圍沒有工作人員,LTOM 會自動檢測並獲取診斷,因此在您記錄 SR 時 Oracle Support 就可以獲取所必需的診斷 trace 檔案。
有關下載和使用者指南,請參閱以下文章。
Document 352363.1 LTOM - The On-Board Monitor User Guide -
Procwatcher
Procwatcher 工具用於按時間間隔檢查和監控 Oracle 資料庫和/或叢集程式。該工具會使用 Oracle 工具(如 oradebug short_stack)和/或 OS 除錯程式(如 pstack、gdb、dbx 或 ladebug)收集堆疊 trace 檔案,如果指定的話還會收集 SQL 資料。
有關詳細資訊,請參閱以下文章:
Document 459694.1 Procwatcher: Script. to Monitor and Examine Oracle DB and Clusterware Processes
升級前要收集的資訊
升級可以視為一種您知道某些東西將要發生變化的特殊情況,特別是資料庫的版本變化。由於版本變化可能會包含新的功能以及可能會改變某些查詢效能的缺陷修正,因此有必要在升級前收集基線資訊,從而能夠在升級後進行比較。為進行此操作,我們建議建立以下基線:
AWR baselines
與前面建議的標準基線類似,獲取關鍵基線效能操作的 AWR 快照,從而可以在發生問題時將其與升級後的情況進行比較。建議的基線收集包括:
- 正常活動
- 一天中最忙的時間
- 月末或業務週期處理
- 批處理作業
SQL Plan management Baselines
SQL Plan Management 可用於跨版本保持SQL 效能。如果您希望保持升級前後的 SQL 效能,請對有此需求的 SQL 語句建立基線。我們建議您至少對應用程式中的 關鍵SQL 語句執行該操作。將這些基線傳輸到新系統中並啟用它們。
主動型最佳實踐的核對錶
______ 將 OSWatcher Black Box 安裝在安裝了 Oracle Database 的每個節點上,然後執行它。
每天執行 OSWatcher Black Box Analyzer 以檢視伺服器上的效能問題。
______ 獲取 Diagnostics Pack 許可
______ 配置 AWR 快照時間間隔並驗證 AWR 快照是否按預期時間間隔進行
______ 建立 O/S(使用 OSWbb)和資料庫(使用 AWR)的多條基線。
______ 下載 Hangfg 並準備好在資料庫掛起時執行
______ 安裝 SQLHC 並按預期時間間隔執行
______ 下載 SQLT 並準備好在需要時安裝到資料庫上
______ 如果執行環境不穩定,且問題無法使用上述工具解決,請考慮下載並安裝 LTOM
建立服務請求
如果需要 SR,請參閱以下文件,瞭解有關 SR 內容的詳細資訊:
如果未進行主動型收集,怎麼辦
在出現問題之前沒有采取主動型步驟來收集資訊的情況很明顯是存在的。針對這些情況,我們有大量的文章概述瞭如何處理每種特定的情況,並給出了關於收集相關資料的最佳實踐建議。請參閱:
請注意,在這些情況下,為了能夠收集資訊,可能需要重現問題,因為無法以回顧性方式收集所有情況下的診斷資訊。
References
NOTE:459694.1 - Procwatcher: Script. to Monitor and Examine Oracle DB and Clusterware ProcessesNOTE:243132.1 - 10g and above Active Session History (Ash) And Analysis Of Ash Online And Offline
NOTE:362094.1 - HANGFG User Guide
NOTE:1366133.1 - SQL Tuning Health-Check Script. (SQLHC)
NOTE:215187.1 - SQLT (SQLTXPLAIN) - Tool that helps to diagnose a SQL statement performing poorly or one that produces wrong results
NOTE:1377446.1 - * Troubleshooting Performance Issues
NOTE:1482811.1 - Best Practices: Proactively Avoiding Database and Query Performance Issues
NOTE:301137.1 - OSWatcher Black Box (Includes: [Video])
NOTE:250655.1 - How to use the Automatic Database Diagnostic Monitor
NOTE:1363422.1 - Automatic Workload Repository (AWR) Reports - Start Point
NOTE:210014.1 - How to Log a Good Performance Service Request
NOTE:352363.1 - LTOM - The On-Board Monitor User Guide
|
|
- Oracle Database Products > Oracle Database > Oracle Database > Oracle Database - Enterprise Edition > RDBMS > Database Level Performance Issues (not SQL Tuning)
- Oracle Database Products > Oracle Database > Oracle Database > Oracle Database - Standard Edition > Generic RDBMS > Database Level Performance Issues (not SQL Tuning)
- Oracle Database Products > Oracle Database > Oracle Database > Oracle Database - Personal Edition > RDBMS > Database Level Performance Issues (not SQL Tuning)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17252115/viewspace-763561/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最佳實踐:針對效能問題的主動型資料收集 (文件 ID 1549179.1)
- 收集最佳化統計資料(Optimizer Statistics)的最佳實踐方法
- Oracle收集優化統計資料的最佳實踐方法Oracle優化
- 針對 “測試用例最佳實踐” 的說明
- 收集優化統計資料(Optimizer Statistics)的最佳實踐方法優化
- oracle對BLOB型別資料的操作與效能問題(轉載)Oracle型別
- 粒子群演算法(主要針對連續型函式最佳化問題)演算法函式
- 企業微信針對百萬級組織架構的客戶端效能最佳化實踐架構客戶端
- 離線批次資料通道Tunnel的最佳實踐及常見問題
- 針對資料泵匯出 (expdp) 和匯入 (impdp)工具效能降低問題的檢查表
- Oracle 12c資料庫最佳化器統計資訊收集的最佳實踐(二)Oracle資料庫
- JavaScript最佳實踐:效能JavaScript
- es針對nested型別資料無法進行過濾查詢的問題記錄型別
- Chrome89針對sessionStorage的更新導致資料共享問題ChromeSession
- 提高.NET效能的最佳實踐
- 針對XML資料的關係型檢視XYXML
- Android 中的升級資料庫最佳方法實踐Android資料庫
- TiDB 效能分析&效能調優&最佳化實踐大全TiDB
- Oracle 12c資料庫優化器統計資訊收集的最佳實踐Oracle資料庫優化
- [譯] 瞭解“多型”JSON 資料的效能問題多型JSON
- 內容型(業務側)資料產品治理最佳實踐
- Canvas 最佳實踐(效能篇)Canvas
- 多租戶最佳實踐和已知問題 (文件 ID 2047555.1)
- 測試環境使用問題及其最佳化對策實踐
- TiDB 異構資料庫複製最佳實踐TiDB資料庫
- 最佳實踐:解讀GaussDB(DWS) 統計資訊自動收集方案
- Android最佳效能實踐(3):高效能編碼優化Android優化
- Oracle效能最佳化:資料庫配置和IO問題Oracle資料庫
- 資料庫優化的最佳實踐資料庫優化
- Oracle 12c資料庫優化器統計資訊收集的最佳實踐(二)Oracle資料庫優化
- Oracle 12c資料庫優化器統計資訊收集的最佳實踐(一)Oracle資料庫優化
- ClickHouse主鍵索引最佳實踐索引
- 每刻費用型別對接金蝶雲星空的最佳實踐型別
- 活字格效能最佳化技巧(1)——如何利用資料庫主鍵提升訪問效能資料庫
- 資料治理:管理資料資產的最佳實踐框架框架
- Oracle 12c資料庫最佳化器統計資訊收集的最佳實踐(三)|何時不需要收集統計資訊Oracle資料庫
- 千億級資料遷移mongodb成本節省及效能最佳化實踐(附效能對比質疑解答)MongoDB
- Android最佳效能實踐(1):合理管理記憶體Android記憶體