oracle awr 数据删除,Oracle AWR 删除历史快照 说明【转自dave偶像大神】
http://blog.csdn.net/tianlesoftware/article/details/17286523
一. AWR 概述
之前整理過一篇AWR 的說明的文檔:
Oracle AWR(Automatic Workload Repository) 說明
原創(chuàng)鏈接【dave博客】:http://blog.csdn.net/tianlesoftware/article/details/4682300
從Oracle 10g 開始,Oracle 推出一個(gè)工具:AWR(Automatic Workload Repository),并建議用AWR 代替9i 的Statspack。
AWR?實(shí)質(zhì)上是一個(gè)?Oracle?的內(nèi)置工具,它采集與性能相關(guān)的統(tǒng)計(jì)數(shù)據(jù),并從那些統(tǒng)計(jì)數(shù)據(jù)中導(dǎo)出性能量度,以跟蹤潛在的問題。
AWR的快照由一個(gè)MMON的后臺(tái)進(jìn)程及其從進(jìn)程自動(dòng)地每小時(shí)采集一次。為了節(jié)省空間,在Oracle 10g中快照會(huì)保留7天,11g的快照保留8天,超過的會(huì)自動(dòng)刪除,快照頻率和保留時(shí)間都可以由用戶修改。
AWR?使用幾個(gè)表來存儲(chǔ)采集的統(tǒng)計(jì)數(shù)據(jù),所有的表都存儲(chǔ)在新的名稱為?SYSAUX?的特定表空間中的SYS模式下,并且以?WRM$_*?和?WRH$_*?的格式命名:
(1)WRM$_*類表存儲(chǔ)元數(shù)據(jù)信息(如檢查的數(shù)據(jù)庫和采集的快照)
(2)WRH$_*類保存實(shí)際采集的統(tǒng)計(jì)數(shù)據(jù)。
H?代表“歷史數(shù)據(jù)?(historical)”而?M?代表“元數(shù)據(jù)?(metadata)”。
在這些表上構(gòu)建了幾種帶前綴?DBA_HIST_?的視圖,這些視圖可以用來編寫您自己的性能診斷工具。視圖的名稱直接與表相關(guān);例如,視圖?DBA_HIST_SYSMETRIC_SUMMARY?是在WRH$_SYSMETRIC_SUMMARY?表上構(gòu)建的。
二. AWR 快照的刪除
2.1 為什么要?jiǎng)h除AWR 快照?
默認(rèn)情況下,對(duì)于數(shù)據(jù)庫自身產(chǎn)生的AWR 報(bào)告,會(huì)保留7天或8天。
SQL> select dbid, retention fromdba_hist_wr_control;
DBID RETENTION
-------------------------------------------------------------------------------------
879543530 +00008 00:00:00.0
這個(gè)是我11g的庫,顯示為8天,如果是Oracle 10g,則會(huì)保留7天。
AWR 快照也可以從其他的數(shù)據(jù)庫中導(dǎo)入,我們這里看一下:
SQL> select dbid, retention fromdba_hist_wr_control;
DBID RETENTION
-------------------------------------------------------------------------------
877621333 +40150 00:00:00.0
879543530 +00008 00:00:00.0
如果是從其他庫導(dǎo)入的快照,在10g以后會(huì)保存110年(40150/365),這部分?jǐn)?shù)據(jù)不會(huì)永久刪除。
--AWR導(dǎo)出腳本:
SQL> @?/rdbms/admin/awrextr.sql
--AWR導(dǎo)入腳本:
SQL> @?/rdbms/admin/awrload.sql
另一個(gè)很重要的原因,就是有時(shí)候自動(dòng)快照不能自動(dòng)收集,而手工創(chuàng)建快照又可以成功,對(duì)于這種問題的解決方法就是把之前的快照清空掉。
2.2 刪除AWR 快照數(shù)據(jù)
2.2.1 使用dbms_workload_repository 包來刪除
2.2.1.1 刪除本機(jī)的AWR 快照
SQL> select dbid, retention fromdba_hist_wr_control;
DBID RETENTION
---------- --------------------
879543530 +00008 00:00:00.0
SQL> selectmin(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 879543530;
MIN(SNAP_ID)MAX(SNAP_ID)
------------------------
161????????? 176
SQL> execdbms_workload_repository.drop_snapshot_range(161, 176, 879543530)
PL/SQL proceduresuccessfully completed.
SQL> select *from dba_hist_snapshot where dbid = 879543530;
no rows selected
2.2.1.2 刪除其他實(shí)例的快照
SQL> select dbid, retention fromdba_hist_wr_control;
DBID RETENTION
---------- ---------------------------------------------------------------------
877621333 +40150 00:00:00.0
879543530 +00008 00:00:00.0
SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 877621333;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
160????????? 192
SQL> execdbms_workload_repository.drop_snapshot_range(160, 170, 877621333)
PL/SQL procedure successfully completed.
SQL>?select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid =877621333;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
171????????? 192
SQL>
刪除成功。
2.2.2 使用dbms_swrf_internal包來刪除
2.2.2.1 刪除其他數(shù)據(jù)庫導(dǎo)入的AWR
SQL> select dbid, retention fromdba_hist_wr_control;
DBID RETENTION
-------------------------------------------------------------------------------
877621333 +40150 00:00:00.0
879543530 +00008 00:00:00.0
SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 877621333;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
160????????? 192
SQL> exec dbms_swrf_internal.unregister_database(877621333)
PL/SQL procedure successfully completed.
SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 877621333;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
SQL> select dbid, retention fromdba_hist_wr_control;
DBID RETENTION
-------------------------------------------------------------------------------
879543530 +00008 00:00:00.0
SQL>
dbms_swrf_internal.unregister_database 會(huì)把所有的快照直接干掉,與我們上節(jié)中的刪除是不同的效果。
2.2.2.2 刪除本機(jī)的AWR
我們之前把快照清空了,所以沒有結(jié)果:
SQL> select * from dba_hist_snapshotwhere dbid = 879543530;
no rows selected
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
--現(xiàn)在又有快照了:
SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 879543530;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
177????????? 180
--刪除快照:
SQL> exec dbms_swrf_internal.unregister_database(879543530)
BEGINdbms_swrf_internal.unregister_database(879543530); END;
*
ERROR at line 1:
ORA-13521: Unregister operation on localDatabase id (879543530) not allowed
ORA-06512: at"SYS.DBMS_SWRF_INTERNAL", line 99
ORA-06512: at line 1
這里直接提示,dbms_swrf_internal.unregister_database不能對(duì)本地的數(shù)據(jù)庫使用。所以如果本地的數(shù)據(jù)庫,就只能使用dbms_workload_repository包了。
2.2.3 小結(jié)
dbms_workload_repository:
可以刪除本地和其他數(shù)據(jù)庫的快照,可以選擇不同的快照來進(jìn)行刪除。
dbms_swrf_internal:
只能對(duì)其他數(shù)據(jù)庫的快照來進(jìn)行操作,會(huì)把整個(gè)快照unregister掉。
總結(jié)
以上是生活随笔為你收集整理的oracle awr 数据删除,Oracle AWR 删除历史快照 说明【转自dave偶像大神】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 又一个国产ChatGPT 李开复再创业:
- 下一篇: linux msleep 头文件,Lin