新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
【AWR】調(diào)整AWR數(shù)據(jù)采樣時間間隔及歷史快照保留時間
1.AWR默認(rèn)的采樣間隔和歷史快照保留時間
默認(rèn)是保留七天,采集間隔是1小時,這個信息可以從DBA_HIST_WR_CONTROL視圖中獲得。
sys@ora10g> col SNAP_INTERVAL for a20
sys@ora10g> col RETENTION for a20
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
3973098169 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT
SNAP_INTERVAL=+00000 01:00:00.0 表示采樣間隔是1小時
RETENTION=+00007 00:00:00.0 表示采樣數(shù)據(jù)保留期限是7天
關(guān)于DBA_HIST_WR_CONTROL視圖的更多參考可參見Oracle官方文檔
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_3202.htm#REFRN23462
2.修改AWR默認(rèn)的采樣間隔和歷史快照保留時間之GC方法
請按照如下的順序操作即可。
1)點擊Targets
2)點擊Databases,選擇需要調(diào)整的數(shù)據(jù)庫并進(jìn)入
3)搜索“Automatic Workload Repository”關(guān)鍵字(該內(nèi)容屬于Administration - Database Administration - Statistics Management)進(jìn)入,此時可以看到系統(tǒng)當(dāng)前的設(shè)置情況
4)點擊Edit進(jìn)行修改,注意這里System Snapshot Interval只有10 Minutes、15 Minutes、20 Minutes、30 Minutes、1Hour、2 Hours這幾種選項,多少有些局限(命令行修改方法不受這個約束)。
3.修改AWR默認(rèn)的采樣間隔和歷史快照保留時間之SQL方法
萬變不離其宗,任何能從界面上進(jìn)行修改的內(nèi)容都可以通過SQL調(diào)整的方法來完成。
我們即將使用到的是DBMS_WORKLOAD_REPOSITORY包中的MODIFY_SNAPSHOT_SETTINGS存儲過程。
該存儲過程的簡單描述信息如下。
sec@ora10g> desc DBMS_WORKLOAD_REPOSITORY
…… ……
PROCEDURE MODIFY_SNAPSHOT_SETTINGS
Argument Name Type In/Out Default?
------------------------------ --------------- ------ --------
RETENTION NUMBER IN DEFAULT
INTERVAL NUMBER IN DEFAULT
TOPNSQL VARCHAR2 IN
DBID NUMBER IN DEFAULT
例如我們需要將采集間隔調(diào)整為15分鐘,采樣數(shù)據(jù)保留2天,可以做如下調(diào)整
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 15,
4 retention => 2*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
驗證修改結(jié)果
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +00000 00:15:00.0 +00002 00:00:00.0 DEFAULT
更多關(guān)于該存儲過程的說明請參考Oracle官方文檔http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_wkrpos.htm#BACEHJJI。
值得注意的是:
RETENTION參數(shù)的取值范圍要求是1天到100年,即快照至少需要保留1天,最長可以保留100年;
INTERVAL參數(shù)的取值范圍要求是10分鐘到100年,即快照采集間隔最少可以是10分鐘,最長可以是100年(官方文檔這里描述的有問題,不但用詞不正確,而且給出的最長是1年也是不正確的,用詞方面的錯誤在11gR1文檔中得到修改)。
1)驗證RETENTION參數(shù)的取值范圍
當(dāng)RETENTION參數(shù)被賦予少于1天或超過100年的時候都會給出提示性錯誤ORA-13510,從提示信息中也可以得到該參數(shù)的取值范圍(1440, 52560000),1440分鐘即1天, 52560000分鐘即100年。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 60,
4 retention => 0.5*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13510: invalid RETENTION 720, must be in the range (1440, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 60,
4 retention => 36501*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13510: invalid RETENTION 52561440, must be in the range (1440, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
2)驗證INTERVAL參數(shù)的取值范圍
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 9,
4 retention => 7*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13511: invalid INTERVAL 9, must be in the range (10, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
可見此處INTERVAL參數(shù)的取值是10分鐘到52560000分鐘(即100年),當(dāng)間隔取到整100年的時候是沒有問題的。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 36500*24*60,
4 retention => 7*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +36500 00:00:00.0 +00007 00:00:00.0 DEFAULT
4.停止AWR采樣發(fā)生的迂回方法
我們可以將采樣時間間隔調(diào)整為最長100年,同時把采樣數(shù)據(jù)保留時間調(diào)整到最小1天的方式實現(xiàn)“禁用”AWR。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 36500*24*60,
4 retention => 1*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +36500 00:00:00.0 +00001 00:00:00.0 DEFAULT
5.小結(jié)
本文通過簡單的演示給大家展示了一下調(diào)整AWR數(shù)據(jù)采樣時間間隔及歷史快照保留時間的方法。
Oracle官方文檔亦存在瑕疵,盡信書不如無書。驗證Oracle官方文檔正確性的最有效的工具是你的雙手。
Good luck.
secooler
10.07.18
-- The End --
本文標(biāo)題:【AWR】調(diào)整AWR數(shù)據(jù)采樣時間間隔及歷史快照保留時間
分享URL:http://fisionsoft.com.cn/article/jpihhe.html
默認(rèn)是保留七天,采集間隔是1小時,這個信息可以從DBA_HIST_WR_CONTROL視圖中獲得。
sys@ora10g> col SNAP_INTERVAL for a20
sys@ora10g> col RETENTION for a20
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
3973098169 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT
SNAP_INTERVAL=+00000 01:00:00.0 表示采樣間隔是1小時
RETENTION=+00007 00:00:00.0 表示采樣數(shù)據(jù)保留期限是7天
關(guān)于DBA_HIST_WR_CONTROL視圖的更多參考可參見Oracle官方文檔
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_3202.htm#REFRN23462
2.修改AWR默認(rèn)的采樣間隔和歷史快照保留時間之GC方法
請按照如下的順序操作即可。
1)點擊Targets
2)點擊Databases,選擇需要調(diào)整的數(shù)據(jù)庫并進(jìn)入
3)搜索“Automatic Workload Repository”關(guān)鍵字(該內(nèi)容屬于Administration - Database Administration - Statistics Management)進(jìn)入,此時可以看到系統(tǒng)當(dāng)前的設(shè)置情況
4)點擊Edit進(jìn)行修改,注意這里System Snapshot Interval只有10 Minutes、15 Minutes、20 Minutes、30 Minutes、1Hour、2 Hours這幾種選項,多少有些局限(命令行修改方法不受這個約束)。
3.修改AWR默認(rèn)的采樣間隔和歷史快照保留時間之SQL方法
萬變不離其宗,任何能從界面上進(jìn)行修改的內(nèi)容都可以通過SQL調(diào)整的方法來完成。
我們即將使用到的是DBMS_WORKLOAD_REPOSITORY包中的MODIFY_SNAPSHOT_SETTINGS存儲過程。
該存儲過程的簡單描述信息如下。
sec@ora10g> desc DBMS_WORKLOAD_REPOSITORY
…… ……
PROCEDURE MODIFY_SNAPSHOT_SETTINGS
Argument Name Type In/Out Default?
------------------------------ --------------- ------ --------
RETENTION NUMBER IN DEFAULT
INTERVAL NUMBER IN DEFAULT
TOPNSQL VARCHAR2 IN
DBID NUMBER IN DEFAULT
例如我們需要將采集間隔調(diào)整為15分鐘,采樣數(shù)據(jù)保留2天,可以做如下調(diào)整
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 15,
4 retention => 2*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
驗證修改結(jié)果
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +00000 00:15:00.0 +00002 00:00:00.0 DEFAULT
更多關(guān)于該存儲過程的說明請參考Oracle官方文檔http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_wkrpos.htm#BACEHJJI。
值得注意的是:
RETENTION參數(shù)的取值范圍要求是1天到100年,即快照至少需要保留1天,最長可以保留100年;
INTERVAL參數(shù)的取值范圍要求是10分鐘到100年,即快照采集間隔最少可以是10分鐘,最長可以是100年(官方文檔這里描述的有問題,不但用詞不正確,而且給出的最長是1年也是不正確的,用詞方面的錯誤在11gR1文檔中得到修改)。
1)驗證RETENTION參數(shù)的取值范圍
當(dāng)RETENTION參數(shù)被賦予少于1天或超過100年的時候都會給出提示性錯誤ORA-13510,從提示信息中也可以得到該參數(shù)的取值范圍(1440, 52560000),1440分鐘即1天, 52560000分鐘即100年。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 60,
4 retention => 0.5*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13510: invalid RETENTION 720, must be in the range (1440, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 60,
4 retention => 36501*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13510: invalid RETENTION 52561440, must be in the range (1440, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
2)驗證INTERVAL參數(shù)的取值范圍
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 9,
4 retention => 7*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13511: invalid INTERVAL 9, must be in the range (10, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
可見此處INTERVAL參數(shù)的取值是10分鐘到52560000分鐘(即100年),當(dāng)間隔取到整100年的時候是沒有問題的。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 36500*24*60,
4 retention => 7*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +36500 00:00:00.0 +00007 00:00:00.0 DEFAULT
4.停止AWR采樣發(fā)生的迂回方法
我們可以將采樣時間間隔調(diào)整為最長100年,同時把采樣數(shù)據(jù)保留時間調(diào)整到最小1天的方式實現(xiàn)“禁用”AWR。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 36500*24*60,
4 retention => 1*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +36500 00:00:00.0 +00001 00:00:00.0 DEFAULT
5.小結(jié)
本文通過簡單的演示給大家展示了一下調(diào)整AWR數(shù)據(jù)采樣時間間隔及歷史快照保留時間的方法。
Oracle官方文檔亦存在瑕疵,盡信書不如無書。驗證Oracle官方文檔正確性的最有效的工具是你的雙手。
Good luck.
secooler
10.07.18
-- The End --
本文標(biāo)題:【AWR】調(diào)整AWR數(shù)據(jù)采樣時間間隔及歷史快照保留時間
分享URL:http://fisionsoft.com.cn/article/jpihhe.html