1.3 管理自動工作負載庫(AWR)
本節講述如何管理AWR,包含以下主題:
? ? ·管理快照
? ? ·管理基線
? ? ·管理基線模板
? ? ·傳輸自動工作負載庫數據
? ? ·使用自動工作負載庫視圖
? ? ·生成AWR報告
? ? ·生成AWR對比報告
? ? ·生成ASH報告
? ? ·使用ASH報告
1.3.1 管理快照
? ? 默認情況下,Oracle數據庫每小時生成一個快照,并將統計信息保留在工作負載庫中8天。必要時,你可以使用DBMS_WORKLOAD_REPOSITORY程序手動生成、刪除和修改快照。要調用這些程序,用戶必須擁有DBA角色。
? ? 管理快照的基本接口是OEM。只要可能,你就應該用OEM管理快照。如果OEM不可用,你可以使用DBMS_WORKLOAD_REPOSITORY包,就像下面小節描述的:
? ? ·創建快照
? ? ·刪除快照
? ? ·修改快照設置
1.3.1.1 創建快照
????你可以使用CREATE_SNAPSHOT程序手動創建快照以在不同于自動生成快照的時段來捕獲統計信息。例如:????
? ? 在這個例子中,為該實例創建的一個快照立刻就被生成。你可以從DBA_HIST_SNAPSHOT中查看這個快照信息。
1.3.1.2 刪除快照
? ? 你可以使用DROP_SNAPSHOT_RANGE程序來刪除一個范圍內的快照。可以從DBA_HIST_SNAPSHOT視圖查看數據庫ID和快照ID。例如,你可以刪除下列范圍中的快照:
? ? 在這個例子中,從22到32的快照全部被刪除。可選項數據庫ID為 3310949047,如果你不指定一個DBID值,本地數據庫ID值會被作為默認值。
? ? 當調用DROP_SNAPSHOT_RANGE程序時,屬于該快照段范圍所對應時段內的ASH數據也一并被刪除。
1.3.1.3 修改快照設置
? ? 你可以調整指定數據庫的快照間隔、保留時間和捕獲的top SQL數目,但需要注意你做的這些設置可能會影響到Oracle數據庫診斷工具的診斷準確性。
? ? 間隔就是指數據庫自動生成兩個快照之間的時間。保留時間即數據庫將快照保留在工作負載庫中的時間。topsql設置快照捕獲的包含詳細信息的SQL語句的數目。要修改這些設置,可以使用MODIFY_SNAPSHOT_SETTINGS程序。例如:
? ? 需要注意的是,如果不指定DBID,那么本地DBID就會作為默認值。可以從DBA_HIST_WR_CONTROL中查看當前的相關設置。
1.3.2 管理基線
????管理基線的基本的接口就是OEM。同時可以通過DBMS_WORKLOAD_REPOSITORY包來管理基線。
1.3.2.1 創建基線
? ? 上例中,270是開始快照,280是結束快照,基線名為peak baseline。DBID選項是可選的,如果不指定,本地數據庫的DBID為默認值。expiration設置為30,意即30天后基線過期將被刪除。如果不指定expiration值,基線永不過期。
?? ? 系統自動給每個新創建的基線賦予一個唯一的基線ID。基線ID和DBID都可以從DBA_HIST_BASELINE中訪問。
1.3.2.2 刪除基線
?? ? cascade參數設置為false,則只刪除基線。如果cascade設置為true,那么用作基線設置的相關AWR快照也會刪除。不指定DBID將以本地數據庫DBID值作為默認值。
1.3.2.3 重命名基線
?? ? 使用DBMS_WORKLOAD_REPOSITORY包的RENAME_BASELINE程序可以重命名基線。
?? ? 上例基線名從peak baseline變為peak mondays,不指定DBID將以本地數據庫DBID值作為默認值。
?????
?????
????
待續
本節講述如何管理AWR,包含以下主題:
? ? ·管理快照
? ? ·管理基線
? ? ·管理基線模板
? ? ·傳輸自動工作負載庫數據
? ? ·使用自動工作負載庫視圖
? ? ·生成AWR報告
? ? ·生成AWR對比報告
? ? ·生成ASH報告
? ? ·使用ASH報告
1.3.1 管理快照
? ? 默認情況下,Oracle數據庫每小時生成一個快照,并將統計信息保留在工作負載庫中8天。必要時,你可以使用DBMS_WORKLOAD_REPOSITORY程序手動生成、刪除和修改快照。要調用這些程序,用戶必須擁有DBA角色。
? ? 管理快照的基本接口是OEM。只要可能,你就應該用OEM管理快照。如果OEM不可用,你可以使用DBMS_WORKLOAD_REPOSITORY包,就像下面小節描述的:
? ? ·創建快照
? ? ·刪除快照
? ? ·修改快照設置
1.3.1.1 創建快照
????你可以使用CREATE_SNAPSHOT程序手動創建快照以在不同于自動生成快照的時段來捕獲統計信息。例如:????
點擊(此處)折疊或打開
- BEGIN
- ??DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
- END;
- /
1.3.1.2 刪除快照
? ? 你可以使用DROP_SNAPSHOT_RANGE程序來刪除一個范圍內的快照。可以從DBA_HIST_SNAPSHOT視圖查看數據庫ID和快照ID。例如,你可以刪除下列范圍中的快照:
點擊(此處)折疊或打開
- BEGIN
- ??DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22,
- ???????????????????????????high_snap_id => 32, dbid => 3310949047);
- END;
- /
? ? 當調用DROP_SNAPSHOT_RANGE程序時,屬于該快照段范圍所對應時段內的ASH數據也一并被刪除。
1.3.1.3 修改快照設置
? ? 你可以調整指定數據庫的快照間隔、保留時間和捕獲的top SQL數目,但需要注意你做的這些設置可能會影響到Oracle數據庫診斷工具的診斷準確性。
? ? 間隔就是指數據庫自動生成兩個快照之間的時間。保留時間即數據庫將快照保留在工作負載庫中的時間。topsql設置快照捕獲的包含詳細信息的SQL語句的數目。要修改這些設置,可以使用MODIFY_SNAPSHOT_SETTINGS程序。例如:
點擊(此處)折疊或打開
- BEGIN
- ??DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200,
- ?????????????????interval => 30, topnsql => 100, dbid => 3310949047);
- END;
- /
1.3.2 管理基線
????管理基線的基本的接口就是OEM。同時可以通過DBMS_WORKLOAD_REPOSITORY包來管理基線。
1.3.2.1 創建基線
點擊(此處)折疊或打開
- BEGIN
- ????DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 270,
- ???????????????????end_snap_id => 280, baseline_name => 'peak baseline',
- ???????????????????dbid => 3310949047, expiration => 30);
- END;
- /
?? ? 系統自動給每個新創建的基線賦予一個唯一的基線ID。基線ID和DBID都可以從DBA_HIST_BASELINE中訪問。
1.3.2.2 刪除基線
點擊(此處)折疊或打開
- BEGIN
- ??DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline',
- ??????????????????cascade => FALSE, dbid => 3310949047);
- END;
- /
1.3.2.3 重命名基線
?? ? 使用DBMS_WORKLOAD_REPOSITORY包的RENAME_BASELINE程序可以重命名基線。
點擊(此處)折疊或打開
- BEGIN
- ????DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (
- ???????????????????old_baseline_name => 'peak baseline',
- ???????????????????new_baseline_name => 'peak mondays',
- ???????????????????dbid => 3310949047);
- END;
- /
?????
?????
????
待續