Oracle AWR(Automatic workload repository)

本文介绍如何在Oracle数据库中生成AWR(Automatic Workload Repository)报告。通过设置环境变量、选择报告类型、指定快照范围等步骤,可以生成用于性能分析的HTML或纯文本报告。

How to generate an AWR report.


1. $ export ORACLE_SID=batch005

2. $ echo $ORACLE_SID

3. $ sqlplus / as sysdba

4. SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql


Current Instance

~~~~~~~~~~~~~~~~


   DB Id    DB Name      Inst Num Instance

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

  853510723 BATCH005            1 batch005



Specify the Report Type

~~~~~~~~~~~~~~~~~~~~~~~

Would you like an HTML report, or a plain text report?

Enter 'html' for an HTML report, or 'text' for plain text

Defaults to 'html'

Enter value for report_type: html


Type Specified:  html


EXT

-----

.html



Instances in this Workload Repository schema

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


   DB Id     Inst Num DB Name      Instance     Host

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

* 853510723         1 BATCH005     batch005     XXX.com


Using  853510723 for database Id

Using          1 for instance number



Specify the number of days of snapshots to choose from

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entering the number of days (n) will result in the most recent

(n) days of snapshots being listed.  Pressing <return> without

specifying a number lists all completed snapshots.



Enter value for num_days: 2                 # show latest 2-days snapshot


Listing the last 2 days of Completed Snapshots


                                                        Snap

Instance     DB Name        Snap Id    Snap Started    Level

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

batch005     BATCH005          7681 09 Jun 2015 00:00      1

                               7682 09 Jun 2015 01:00      1

                               7683 09 Jun 2015 02:00      1

                               7684 09 Jun 2015 03:01      1

                               7685 09 Jun 2015 04:00      1

                               7686 09 Jun 2015 05:00      1

                               7687 09 Jun 2015 06:00      1

                               7688 09 Jun 2015 07:00      1

                               7689 09 Jun 2015 08:00      1

                               7690 09 Jun 2015 09:00      1

                               7691 09 Jun 2015 10:00      1

                               7692 09 Jun 2015 11:00      1

                               7693 09 Jun 2015 12:00      1

                               7694 09 Jun 2015 13:00      1

                               7695 09 Jun 2015 14:00      1

                               7696 09 Jun 2015 15:00      1

                               7697 09 Jun 2015 16:00      1

                               7698 09 Jun 2015 17:00      1

                               7699 09 Jun 2015 18:01      1

                               7700 09 Jun 2015 19:00      1

                               7701 09 Jun 2015 20:00      1

                               7702 09 Jun 2015 21:00      1

                               7703 09 Jun 2015 22:00      1

                               7704 09 Jun 2015 23:00      1

                               7705 10 Jun 2015 00:00      1

                               7706 10 Jun 2015 01:00      1




Specify the Begin and End Snapshot Ids

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Enter value for begin_snap: 7705                        # show the last snapshot

Begin Snapshot Id specified: 7705


Enter value for end_snap: 7706                            # show the last snapshot

End   Snapshot Id specified: 7706




Specify the Report Name

~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is awrrpt_1_7705_7706.html.  To use this name,

press <return> to continue, otherwise enter an alternative.


Enter value for report_name: 


Using the report name awrrpt_1_7705_7706.html


SQL> quit



Here, AWR report awrrpt_1_7705_7706.html is generated.



Next step: How to read an AWR report ?

Refer to: http://oraclewindow.blogspot.jp/2013/05/how-to-read-awr-reports.html



<think>好的,我现在需要回答用户关于Oracle ADR存储位置的问题。用户之前问过关于RMAN备份遇到坏块的问题,现在转到了ADR的存储位置。我需要先回顾用户提供的引用内容,确保答案准确。 根据引用[2],ADR的基本目录由初始化参数diagnostic_dest指定。用户可以通过SQL命令`show parameter diagnostic_dest`来查看这个路径。例如,如果diagnostic_dest是/u01/app/oracle,那么ADR的基本目录就是这个路径。 引用[3]提到,可以通过查询v$diag_info视图来获取ADR的具体路径信息,比如ADR Base、ADR Home等。例如,ADR Base对应基目录,ADR Home是当前实例的主目录,包含各个子目录如Diag Trace、Diag Alert等。 用户可能需要知道如何查找这些路径,所以需要分步骤说明方法:使用SQL查询参数和视图,以及查看文件系统结构。同时,要指出默认位置(如果未设置diagnostic_dest的话),比如ORACLE_BASE下的log目录。 需要注意引用中的细节,例如ADR的结构,每个实例有自己的主目录,路径层次的一致性。还要提到Alert Log的位置,这在引用[4]和[5]中都有说明,位于ADR Home下的trace目录中,可能以alert_.log的形式存在。 用户可能还会关心如何验证或修改diagnostic_dest,需要简要说明。同时,确保回答结构清晰,分点列出,引用正确的来源,比如引用[1]-[5]中的相关内容。 最后,生成相关问题,比如如何修改存储位置,如何查看日志内容等,帮助用户进一步了解ADR的管理。</think>### **Oracle ADR存储位置详解** #### **一、核心结论** Oracle ADR(Automatic Diagnostic Repository)的存储位置由初始化参数 **`diagnostic_dest`** 决定,其路径可通过以下方式查看: 1. **直接查询参数**: ```sql SHOW PARAMETER diagnostic_dest; ``` 示例输出: ``` NAME TYPE VALUE ---------------- ------- ------------------------------ diagnostic_dest string /u01/app/oracle ``` - 若未显式设置`diagnostic_dest`,默认值为 **`ORACLE_BASE`**(若`ORACLE_BASE`未定义,则指向`ORACLE_HOME/log`)[^2][^3]。 2. **查询动态视图`v$diag_info`**: ```sql SELECT * FROM v$diag_info; ``` 关键字段: - **ADR Base**:ADR根目录(如`/u01/app/oracle`)[^3]。 - **ADR Home**:当前实例的ADR主目录(如`/u01/app/oracle/diag/rdbms/orcl/orcl`)[^1]。 - **Diag Trace**:跟踪文件目录(包含`alert_<SID>.log`等日志)[^4][^5]。 --- #### **二、目录结构解析** ADR采用标准化的目录层次结构,以数据库实例为例: ``` ADR Base │ └───diag └───rdbms └───<db_name> -- 数据库名称 └───<instance_name> -- 实例名称 ├───alert -- XML格式的警报日志 ├───trace -- 文本格式的跟踪文件(含`alert_<SID>.log`) ├───incident -- 意外事件记录 └───... -- 其他子目录(如cdump、hm等) ``` - **关键文件位置**: - **警报日志(Alert Log)**:`<ADR Home>/trace/alert_<SID>.log` [^4][^5]。 - **跟踪文件(Trace Files)**:`<ADR Home>/trace`目录下的`.trc`或`.trm`文件。 - **健康监控报告**:`<ADR Home>/hm`目录。 --- #### **三、特殊场景说明** 1. **多组件环境(如RAC、ASM)**: - 每个组件(如数据库实例、ASM实例、监听器)均有独立的ADR Home目录。 - 示例: - **ASM实例**:`<ADR Base>/diag/asm/+asm/+ASM` - **监听器**:`<ADR Base>/diag/tnslsnr/<hostname>/listener` [^1]。 2. **诊断数据持久性**: - ADR数据不会随数据库实例重启而清除,需定期手动清理或通过ADRCI工具维护[^1][^3]。 --- #### **四、验证与修改方法** 1. **验证当前配置**: - **方法1**:通过SQL*Plus查询: ```sql SHOW PARAMETER diagnostic_dest; ``` - **方法2**:通过操作系统环境变量: ```bash echo $ORACLE_BASE ``` (若`diagnostic_dest`未显式设置,默认与`ORACLE_BASE`一致)[^2][^3]。 2. **修改存储位置**: - **步骤1**:修改参数文件(需重启数据库生效): ```sql ALTER SYSTEM SET diagnostic_dest='/new/path' SCOPE=SPFILE; ``` - **步骤2**:重启数据库: ```sql SHUTDOWN IMMEDIATE; STARTUP; ``` --- #### **五、引用支持** - [^1]: ADR为Oracle组件提供统一的诊断数据存储结构,每个实例有独立目录。 - [^2]: `diagnostic_dest`参数决定ADR根目录,默认与`ORACLE_BASE`关联。 - : 通过`v$diag_info`可获取完整的路径信息。 - [^4][^5]: 警报日志(Alert Log)是运维关键文件,记录数据库重要事件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值