日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle awr 数据删除,Oracle AWR 删除历史快照 说明【转自dave偶像大神】

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle awr 数据删除,Oracle AWR 删除历史快照 说明【转自dave偶像大神】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/tianlesoftware/article/details/17286523

一. AWR 概述

之前整理過一篇AWR 的說明的文檔:

Oracle AWR(Automatic Workload Repository) 說明

原創鏈接【dave博客】:http://blog.csdn.net/tianlesoftware/article/details/4682300

從Oracle 10g 開始,Oracle 推出一個工具:AWR(Automatic Workload Repository),并建議用AWR 代替9i 的Statspack。

AWR?實質上是一個?Oracle?的內置工具,它采集與性能相關的統計數據,并從那些統計數據中導出性能量度,以跟蹤潛在的問題。

AWR的快照由一個MMON的后臺進程及其從進程自動地每小時采集一次。為了節省空間,在Oracle 10g中快照會保留7天,11g的快照保留8天,超過的會自動刪除,快照頻率和保留時間都可以由用戶修改。

AWR?使用幾個表來存儲采集的統計數據,所有的表都存儲在新的名稱為?SYSAUX?的特定表空間中的SYS模式下,并且以?WRM$_*?和?WRH$_*?的格式命名:

(1)WRM$_*類表存儲元數據信息(如檢查的數據庫和采集的快照)

(2)WRH$_*類保存實際采集的統計數據。

H?代表“歷史數據?(historical)”而?M?代表“元數據?(metadata)”。

在這些表上構建了幾種帶前綴?DBA_HIST_?的視圖,這些視圖可以用來編寫您自己的性能診斷工具。視圖的名稱直接與表相關;例如,視圖?DBA_HIST_SYSMETRIC_SUMMARY?是在WRH$_SYSMETRIC_SUMMARY?表上構建的。

二. AWR 快照的刪除

2.1 為什么要刪除AWR 快照?

默認情況下,對于數據庫自身產生的AWR 報告,會保留7天或8天。

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

-------------------------------------------------------------------------------------

879543530 +00008 00:00:00.0

這個是我11g的庫,顯示為8天,如果是Oracle 10g,則會保留7天。

AWR 快照也可以從其他的數據庫中導入,我們這里看一下:

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

-------------------------------------------------------------------------------

877621333 +40150 00:00:00.0

879543530 +00008 00:00:00.0

如果是從其他庫導入的快照,在10g以后會保存110年(40150/365),這部分數據不會永久刪除。

--AWR導出腳本:

SQL> @?/rdbms/admin/awrextr.sql

--AWR導入腳本:

SQL> @?/rdbms/admin/awrload.sql

另一個很重要的原因,就是有時候自動快照不能自動收集,而手工創建快照又可以成功,對于這種問題的解決方法就是把之前的快照清空掉。

2.2 刪除AWR 快照數據

2.2.1 使用dbms_workload_repository 包來刪除

2.2.1.1 刪除本機的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 刪除其他實例的快照

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 刪除其他數據庫導入的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 會把所有的快照直接干掉,與我們上節中的刪除是不同的效果。

2.2.2.2 刪除本機的AWR

我們之前把快照清空了,所以沒有結果:

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.

--現在又有快照了:

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不能對本地的數據庫使用。所以如果本地的數據庫,就只能使用dbms_workload_repository包了。

2.2.3 小結

dbms_workload_repository:

可以刪除本地和其他數據庫的快照,可以選擇不同的快照來進行刪除。

dbms_swrf_internal:

只能對其他數據庫的快照來進行操作,會把整個快照unregister掉。

總結

以上是生活随笔為你收集整理的oracle awr 数据删除,Oracle AWR 删除历史快照 说明【转自dave偶像大神】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。