禁用与卸载Oracle AWR特性

    AWR需要禁用?这么好的东东。缺省的情况下,AWR是可以使用的,需要耗用一定的sysaux表空间。但涉及到有关AWR相关的调试包(需要license)会访问AWR视图或者awr异常又不想更新patch,甚至没有patch可用的情况下,我们可以禁用AWR以及卸载AWR,本文演示了如果禁用AWR功能以及卸载awr相关的数据字典。

 

1、禁用AWR的目的
    If most of the space in the SYSAUX tablespace is consumed by information associated with the Automatic Workload Repository (AWR), the AWR can be disabled or uninstalled, releasing space in the sysaux tablespace. This is specially relevant to customers who do not have a license to use 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.)


    However, for those users who all the same want to disable AWR, the package DBMS_AWR described below can be instaled and used. The package gives the ability to disable and enable AWR so as not to breaching Diagnostic Pack license terms.

Affected Releases:
All Oracle Database 10g releases and onwards

禁用awr需要下载: dbmsnoawr.plb 文件。
注意这里的禁用我们指的是完全停用。当然通过设置STATISTICS_LEVEL也可以从一定程度上实现类似的目的。
如果将参数STATISTICS_LEVEL设置为BASIC,下列重要的统计信息将不会被收集。
   Automatic Workload Repository (AWR) Snapshots
   Automatic Database Diagnostic Monitor (ADDM)
   All server-generated alerts
   Automatic SGA Memory Management
   Automatic optimizer statistics collection
   Object level statistics
   End to End Application Tracing (V$CLIENT_STATS)
   Database time distribution statistics (V$SESS_TIME_MODEL and V$SYS_TIME_MODEL)
   Service level statistics
   Buffer cache advisory
   MTTR advisory
   Shared pool sizing advisory
   Segment level statistics
   PGA Target advisory
   Timed statistics
   Monitoring of statistics

 

3、演示禁用AWR

oracle@USDB:~> export ORACLE_SID=HKBO5 
oracle@USDB:~> sqlplus / as sysdba
sys@HKBO5> select * from v$version where rownum<2;

BANNER
----------------------------------------------------------------
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

--查看禁用前awr的使用频率
sys@HKBO5> 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 

 
4、卸载awr
卸载awr通用用于awr相关功能或特性异常的时候。通过先卸载在安装来达到使awr特性正常化。下面给出步骤,不再演示。
卸载awr脚本:$ORACLE_HOME/rdbms/admin/catnoawr.sql
安装awr脚本:$ORACLE_HOME/rdbms/admin/catawr.sql

sqlplus /nolog
connect / as sysdba
show parameters statistics_level
alter system set statistics_level=basic scope=spfile;
shutdown immediate
startup restrict
$ORACLE_HOME/rdbms/admin/catnoawr
shutdown immediate
startup

 

5、参考
Doc ID 1909073.1
Doc ID 787409.1

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。