禁用与卸载OracleAWR特性
AWR需要禁用?这么好的东东。缺省的情况下,AWR是可以使用的,需要耗用一定的sysaux表空间。但涉及到有关AWR相关的调试包(需要license)会访问AWR视图或者awr异常又不想更新patch,甚至没有patch可用的情况下,我们可以禁用AWR以及卸载AWR,本文演示了如果禁
AWR需要禁用?这么好的东东。缺省的情况下,AWR是可以使用的,需要耗用一定的sysaux表空间。但涉及到有关AWR相关的调试包(需要license)会访问AWR视图或者awr异常又不想更新patch,甚至没有patch可用的情况下,我们可以禁用AWR以及卸载AWR,本文演示了如果禁用AWR功能以及卸载awr相关的数据字典。
1、禁用AWR的目的
2、如何禁用AWR(Oracle 10g and above)
AWR is enabled by default because many database features that are not part of the Diagnostic Pack such as Automatic Segment Advisor and Undo Advisor need information captured in AWR. Use of these features, which implicitly access some AWR views, does not require Diagnostic Pack license.
What is not permitted without the Diagnostic Pack license is direct access by customers of AWR views and reports. Oracle, therefore, recommends that all customers, with or without Diagnostic Pack license, leave AWR enabled so that they can benefit from features that do not require a license but implicitly use AWR. (When running both AWR and Statspack collection on one database, it is advised to schedule the two types of collections at different times. For example, if the AWR takes a snapshot every hour, on the hour, then you could schedule a Statspack snapshot every hour, at the bottom of each hour.)
Affected Releases:
禁用awr需要下载: dbmsnoawr.plb 文件。
3、演示禁用AWR
oracle@USDB:~> export ORACLE_SID=HKBO5 oracle@USDB:~> sqlplus / as sysdba sys@HKBO5> select * from v$version where rownum SELECT name, 2 detected_usages detected, 3 total_samples samples, 4 currently_used used, 5 to_char(last_sample_date,'MMDDYYYY:HH24:MI') last_sample, 6 sample_interval interval 7 FROM dba_feature_usage_statistics 8 WHERE name = 'Automatic Workload Repository'; NAME DETECTED SAMPLES USED LAST_SAMPLE INTERVAL ---------------------------------------------------------------- ---------- ---------- ----- -------------- ---------- Automatic Workload Repository 0 207 FALSE 09112014:00:12 604800 oracle@USDB:~> ll *awr* -rw-r--r-- 1 oracle oinstall 2369 2014-08-21 17:26 dbmsnoawr.plb --Author : Leshami --Blog : http://blog.csdn.net/leshami --执行dbmsnoawr.plb,其实质是添加了一个名为dbms_awr的pkg到当前数据库 sys@HKBO5> @dbmsnoawr.plb Package created. Package body created. sys@HKBO5> exec dbms_awr.disable_awr(); PL/SQL procedure successfully completed. sys@HKBO5> desc dbms_awr FUNCTION AWR_ENABLED RETURNS BOOLEAN FUNCTION AWR_STATUS RETURNS VARCHAR2 PROCEDURE DISABLE_AWR PROCEDURE ENABLE_AWR --查看disable后awr的状态,返回值为disable sys@HKBO5> select dbms_awr.awr_status from dual; AWR_STATUS ------------------------------------------------------------- DISABLED --查询awr的数据字典,发现SNAP_INTERVAL变成了0值 sys@HKBO5> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- ---------------------------------------- ---------------------------------------- ---------- 733951103 +40150 00:00:00.0 +00007 00:00:00.0 DEFAULT --再次enable awr sys@HKBO5> exec dbms_awr.enable_awr(); PL/SQL procedure successfully completed. --此时SNAP_INTERVAL采样恢复到了缺省值,也就是说过程DISABLE_AWR修改了SNAP_INTERVAL设置 sys@HKBO5> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- ---------------------------------------- ---------------------------------------- ---------- 733951103 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT sqlplus /nolog