如何診斷Oracle資料庫運行緩慢或hang住的問題

來源:互聯網
上載者:User

為了診斷Oracle運行緩慢的問題首先要決定收集哪些診斷資訊,可以採取下面的診斷方法:
 1.資料庫運行緩慢這個問題是常見還是在特定時間出現
 如果資料庫運行緩慢是一個常見的問題那麼可以在問題出現的時候收集這個時期的awr或者statspack報告(通常收集時間間隔是一個小時).產生awr報告的方法如下:
 awr是通過sys使用者來收集持久系統效能統計資訊並且這些資訊儲存在sysaux資料表空間.預設情況下快照是一個小時產生一次並且保留7天.awr報告輸出了基於指定快照之間的一系列的統計資訊用於效能分析和調查其它問題.
 運行基本的報告
 可以執行下面的指令碼來產生一個awr報告:
 $ORACLE_HOME/rdbms/admin/awrrpt.sql

可以根據自己收集awr報告的原因來決定產生一個快照的時間間隔也可以指定產生awr報告的格式(text或html).

產生各種類型的awr報告
 可以根據各種要求來運行各種sql指令碼來產生各種類型的awr報告.每一種報告都有兩種格式(txt或html):
 awrrpt.sql
 顯示指定快照範圍內的各種統計資訊

awrrpti.sql
 顯示一個特定資料庫和執行個體中指定快照範圍內的各種統計資訊

awrsqrpt.sql
 顯示一個指定快照範圍內的一個特定的sql語句的統計資訊.運行這個報告是為了檢查或調查一個特定sql語句的效能

awrsqrpi.sql
 顯示一個特定sql在指定快照範圍內的的統計資訊.

awrddrpt.sql
 比較在兩個選擇的時間間隔期間內詳細的效能資料和配置情況

awrddrpi.sql
 在一個特定的資料庫和平共處執行個體中比較在兩個選擇的時間間隔期間內詳細的效能數和配置情況

各種awr相關的操作
 怎樣修改awr快照的設定:
BEGIN
  DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
    retention => 43200,        -- Minutes (43200 = 30 Days).
                              -- Current value retained if NULL.
    interval  => 30);          -- Minutes. Current value retained if NULL.
END;
/
 
建立一個awr基準:
BEGIN
  DBMS_WORKLOAD_REPOSITORY.create_baseline (
    start_snap_id => 10,
    end_snap_id  => 100,

    baseline_name => 'AWR First baseline');
END;
/
 
在oracle11G中引入了一個新的dbms_workload_repository.create_baseline_template過程來建立一個awr基準模板
 BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
start_time => to_date('&start_date_time','&start_date_time_format'),
end_time => to_date('&end_date_time','&end_date_time_format'),
baseline_name => 'MORNING',
template_name => 'MORNING',
expiration => NULL ) ;
END;
/
 
"expiration=>NULL"這意味著這個基準將永遠保持有效.

刪除一個awr基準
BEGIN
    DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (
    baseline_name => 'AWR First baseline');
END;
/
 
也能從一個老的資料庫中刪除一個awr基準:
BEGIN
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline',
cascade => FALSE, dbid => 3310949047);
END;
/
 
刪除awr快照:
BEGIN
  DBMS_WORKLOAD_REPOSITORY.drop_snapshot_range(
(low_snap_id=>40,
High_snap_id=>80);
END;
/
 
也可能基於報告時間期間對建立和刪除的awr基準指定一個模板:
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
day_of_week => 'MONDAY',
hour_in_day => 9,
duration => 3,
start_time => to_date('&start_date_time','&start_date_time_format'),
end_time => to_date('&end_date_time','&end_date_time_format'),
baseline_name_prefix => 'MONDAY_MORNING'
template_name => 'MONDAY_MORNING',
expiration => 30 );
END;
/
 
將會在'&start_date_time'到'&end_date_time'期間的每一個星期一都會產生基準

手動產生的一個awr快照:
BEGIN
  DBMS_WORKLOAD_REPOSITORY.create_snapshot();
END;
/
 
工作負載資料檔案程式庫檢視:
 V$ACTIVE_SESSION_HISTORY - 顯示曆史活動會話資訊每秒抽樣一樣
 V$METRIC - 顯示度量標準資訊
 V$METRICNAME - 顯示與每個度量標準組相關的度量標準
 V$METRIC_HISTORY - 顯示曆史度量標準
 V$METRICGROUP - 顯示所有的度量標準組
 DBA_HIST_ACTIVE_SESS_HISTORY - 顯示曆史活動會話的詳細資料
 DBA_HIST_BASELINE - 顯示基準資訊
 DBA_HIST_DATABASE_INSTANCE - 顯示資料庫環境資訊
 DBA_HIST_SNAPSHOT - 顯示快照資訊
 DBA_HIST_SQL_PLAN - 顯示sql執行計畫
 DBA_HIST_WR_CONTROL - 顯示awr設定情況

如果資料庫運行緩慢在特定時間出現那麼可以當問題存在時產生一個awr或statspack報告,報告的時間間隔包含了問題出現的時間.另外為了比較可以收集沒有出現問題而時間間隔相同的資料庫正常啟動並執行報告這樣可以對報告進行比較.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.