Oracle-ADR工具使用

Automatic Diagnostic Repository (ADR)

诊断数据包括事件和问题描述、跟踪文件、转储、运行状况监视器报告、警报日志条目等。

概述

自动诊断存储库 (ADR) 是一个基于文件的存储库,用于存储数据库诊断数据,例如跟踪、转储、警报日志、运行状况监视器报告等。它具有跨多个实例和多个产品的统一目录结构。从11g 开始,数据库、Oracle 自动存储管理 (Oracle ASM) 和其他 Oracle 产品或组件将所有诊断数据存储在 ADR 中。每个产品的每个实例都在其自己的 ADR 主目录下存储诊断数据。例如,在具有共享存储和 Oracle ASM 的 Oracle Real Application Clusters (Oracle RAC) 环境中,每个数据库实例和每个 Oracle ASM 实例在 ADR 中都有一个主目录。 ADR 的统一目录结构使客户和 Oracle 支持部门能够关联和分析跨多个实例和多个产品的诊断数据。

使用

帮助

Syntax:
   adrci [-help] [script=script_filename] [exec="command [;command;...]"]
 
Options      Description                     (Default)
-----------------------------------------------------------------
script       script file name                (None)
help         help on the command options     (None)
exec         exec a set of commands          (None)
-----------------------------------------------------------------

adrci> help

 HELP [topic]
   Available Topics:
        CREATE REPORT
        ECHO
        ESTIMATE
        EXIT
        HELP
        HOST
        IPS
        PURGE
        RUN
        SELECT
        SET BASE
        SET BROWSER
        SET CONTROL
        SET ECHO
        SET EDITOR
        SET HOMES | HOME | HOMEPATH
        SET TERMOUT
        SHOW ALERT
        SHOW BASE
        SHOW CONTROL
        SHOW HM_RUN
        SHOW HOMES | HOME | HOMEPATH
        SHOW INCDIR
        SHOW INCIDENT
        SHOW LOG
        SHOW PROBLEM
        SHOW REPORT
        SHOW TRACEFILE
        SPOOL

 There are other commands intended to be used directly by Oracle, type
 "HELP EXTENDED" to see the list

adrci> 

Interactive Mode(交互模式)

adrci
adrci> show homes

Batch Mode(批处理模式)

  • EXEC :

    # 语法格式
    ADRCI EXEC="COMMAND[; COMMAND]..."
    
    # 示例
    ADRCI EXEC="SHOW HOMES; SHOW INCIDENT"
    
  • SCRIPT :

    # 语法格式
    ADRCI SCRIPT=SCRIPT_FILE_NAME
    
    cat > adrci_script.txt <<-EOF
    SET HOMEPATH diag/rdbms/orcl/orcl; SHOW ALERT -term
    EOF
    
    # 示例
    ADRCI SCRIPT=adrci_script.txt
    

实例

查看alert日志

滚动刷新显示警报日志中的最后 100 个条目
adrci EXEC="SHOW ALERT -TAIL -F 100"
仅显示包含字符串“ORA-600”的警报日志消息
adrci
SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-600%'"

清理日志

purge [-i {id | start_id end_id} | 
  -age mins [-type {ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP}]]

image-20210831215411094

修改配置

用法
adrci> help set control

  Usage: SET CONTROL (<purge_policy>=<value>, ...) 

  Purpose: Set the purging policy.

  Arguments:
    <purge_policy>: The purging policy name. The current valid values are
    "SHORTP_POLICY", "LONGP_POLICY" and "SIZEP_POLICY".

    <value>: The purging time value in hours.

  Examples:  
    set control (SHORTP_POLICY = 1440) 
    set control (SIZEP_POLICY = 1000000000) 

adrci> 
说明

SHORTP_POLICY和LONGP_POLICY的任务都是清理历史文件,但各自负责的类型不同

  • SHORTP_POLICY:清除ADR目录中N小时前的内容,默认720小时(即30天),最大值35791394

    • Trace files, including those files stored in the cdmp_timestamp subdirectories
    • Core dump files
    • Packaging information
  • LONGP_POLICY:清除ADR目录中N小时前的内容,默认8760小时(即365天),最大值35791394

    • Incident information
    • Incident dumps
    • Alert logs
  • SIZEP_POLICY:Oracle Database 12c Release 2 (12.2) 新引入的属性,用于限制ADR目录大小。MMON 进程收集ADR目录的统计信息,默认24小时清理一次。MMON每4小时检查SIZEP_POLICY设置状态

  • PURGE_THRESHOLD: 由SIZEP_POLICY的值触发,默认情况下,PURGE_THRESHOLD 的值是 SIZEP_POLICY 值的 95%

修改配置
set control (SHORTP_POLICY = 48 LONGP_POLICY = 72 )

image-20210901102914236

使用ADRCI一条命令收集每小时连接频率

adrci exec='set home diag/tnslsnr ; show alert -term -p \"' "MESSAGE_TEXT like \'%establish%\' and ORIGINATING_TIMESTAMP > \'2019-08-31 00:00:00\'" '\"' | awk '/establish/{sub(/:.*/,"",$2);print "connection/hour at "$1,$2":00-"$2":59"}'|uniq -c

[-term]: Direct results to terminal. If this option is not specified,
the results will be open in an editor.
By default, it will open in vi on Linux, but "set editor" can be used
to set other editors.

附录

参考文档

11g ADRCI: ADR Command Interpreter
21C ADRCI

posted @ 2021-09-01 15:03  KuBee  阅读(537)  评论(0编辑  收藏  举报