Oracle ADRCI 诊断数据工具总结

发布时间:2026/10/7 18:06:05

Oracle ADRCI 诊断数据工具总结 Oracle ADRCI 诊断数据工具总结一、ADRCI概述1.1 什么是ADRCIADRCIAutomatic Diagnostic Repository Command Interpreter自动诊断存储库命令解释器是Oracle 11g版本开始引入的故障诊断基础架构的一部分。它是一个命令行工具用于管理Oracle数据库的自动诊断存储库ADRAutomatic Diagnostic Repository中的诊断数据。ADR是一个基于文件的数据库诊断数据存储库用于存储跟踪文件trace files、转储文件dumps、警报日志alert logs、运行状况监视器报告等诊断数据。从Oracle 11g开始数据库、自动存储管理ASM以及其他Oracle产品或组件将所有诊断数据统一存储在ADR中。1.2 ADRCI的核心功能ADRCI使DBA能够完成以下任务查看ADR中的诊断数据告警日志、Trace文件等查看运行状况监视器Health Monitor报告查看和跟踪事件Incident与问题Problem将事件和问题信息打包成ZIP文件便于提交给Oracle支持团队分析批量清理过期的诊断日志文件释放磁盘空间1.3 ADRCI的优势优势说明无需数据库开启即使数据库实例未启动也可以查看诊断数据统一管理跨多个实例和产品统一管理诊断数据无需反复切换环境变量问题追踪每个问题都有唯一的问题键和问题ID可通过SHOW PROBLEM查看事件记录每个问题根据发生的次数记录为一个个事件每个事件由唯一的事件ID标识跨平台支持所有平台均支持1.4 核心概念概念说明ADR BaseADR的根目录由DIAGNOSTIC_DEST参数控制默认值为$ORACLE_BASEADR Home每个数据库实例、ASM实例或组件对应的独立诊断目录事件Incident单个故障的具体发生实例每个事件有唯一ID问题Problem同一根因导致的故障集合如重复出现的ORA-006001.5 ADR 与 ADRCI 的关系ADRAutomatic Diagnostic Repository是 Oracle 11g 引入的统一诊断数据存储架构它将所有数据库组件如 RDBMS、ASM、CRS 等的诊断数据集中存储在文件系统中的一个特定目录树中。ADRCI 则是操作和管理这个 ADR 目录树的专用命令行接口。二、查询Alert日志地址2.1 使用ADRCI查看Alert日志地址ADRCI最大的便利之一就是无需记忆复杂的日志路径直接通过命令即可查看alert日志地址# 进入ADRCI交互模式$ adrci# 查看alert日志位置adrcishow home ADR Homes: diag/rdbms/orcl/orcl --这个位置就是alert日志位置 diag/tnslsnr/host51/listener2.2 通过SQL查询Alert日志地址在数据库中可以查询V$DIAG_INFO视图来定位alert日志的位置-- 查询诊断信息setlinesize200pagesize999col name format a21 colvalueformat a65SELECTname,valueFROMv$diag_info;-- 重点关注以下条目-- Diag Trace - trace文件目录包含文本格式的alert日志-- Diag Alert - alert日志目录XML格式-- Default Trace File - 当前会话的trace文件NAMEVALUE--------------------- -----------------------------------------------------------------Diag EnabledTRUEADR Base/u01/app/oracle ADR Home/u01/app/oracle/diag/rdbms/orcl/orcl Diag Trace/u01/app/oracle/diag/rdbms/orcl/orcl/trace Diag Alert/u01/app/oracle/diag/rdbms/orcl/orcl/alert Diag Incident/u01/app/oracle/diag/rdbms/orcl/orcl/incident Diag Cdump/u01/app/oracle/diag/rdbms/orcl/orcl/cdump Health Monitor/u01/app/oracle/diag/rdbms/orcl/orcl/hmDefaultTraceFile/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_93864.trc Active Problem Count0Active Incident Count02.3 Alert日志的物理路径Oracle 11g及以后版本alert日志的默认存储路径为$ORACLE_BASE/diag/rdbms/数据库名/实例名/trace/alert_实例名.log例如/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log同时ADR中也存储了XML格式的alert日志$ORACLE_BASE/diag/rdbms/数据库名/实例名/alert/log.xml注意Oracle建议对alert日志内容的解析应基于XML格式版本因为文本格式是非结构化的可能在不同版本间发生变化。三、GI集群中查询Alert日志地址3.1 GI集群的ADR结构在GIGrid Infrastructure集群环境中每个组件都有自己独立的ADR Home。每个ADR Home中的alert日志都特定于其组件类型如数据库、Oracle ASM、监听器Listener和Oracle Clusterware。3.2 集群中各组件的Alert日志路径组件ADR Home路径示例数据库实例diag/rdbms/db_name/instance_nameASM实例diag/asm/asm/ASM监听器diag/tnslsnr/hostname/listenerClusterwarediag/crs/hostname/crs3.3 在集群中使用ADRCI查看日志查看所有可用的ADR Homesu- grid adrci adrcishow homes11g版本的输出示例adrci show homes; ADR Homes: diag/asm/asm/ASM1 diag/tnslsnr/host40rac1/listener 11g版本的GI集群日志并没有纳入进ADRCI管控19c版本的输出示例adrci show homes; ADR Homes: diag/asmtool/user_grid/host_2921199188_110 diag/asm/asm/ASM1 diag/crs/host61rac1/crs --可以看到从19c版本开始已经将GI集群的日志也纳入ADRCI管控 diag/tnslsnr/host61rac1/asmnet1lsnr_asm diag/tnslsnr/host61rac1/listener_scan1 diag/tnslsnr/host61rac1/listener diag/asmcmd/user_grid/host61rac1 diag/kfod/host61rac1/kfod切换并查看特定组件的alert日志# 查看ASM的alert日志adrcisethomepath diag/asm/asm/ASM1 adrcishow alert-tail200# 查看监听器的alert日志adrcisethomepath diag/tnslsnr/rac01/listener adrcishow alert-tail-f3.4 集群环境的重要注意事项关键提醒RAC中各节点的GI日志目录不是共享的——即使使用ASM存储每个节点的diag/crs/hostname/crs是本机文件系统路径。在节点1上运行ADRCI清理操作对节点2完全无效。因此集群环境的日志清理需要在每个节点上分别执行。在集群环境中ADRCI的位置在$ORACLE_HOME/bin目录下。需要注意的是集群环境通常在grid用户下操作而单机环境则在oracle用户下操作。四、ADRCI使用方法4.1 启动ADRCI交互式模式# 直接输入adrci命令$ adrci ADRCI: Release11.2.0.4.0 - Production on Tue Aug416:46:582026Copyright(c)1982,2011, Oracle and/or its affiliates. All rights reserved. ADR base/u01/app/oracle批处理模式# 使用exec选项执行单个命令adrciexecshow homesadrciexecset homepath diag/rdbms/orcl/orcl; show alert -tail 1004.2 ADR Home管理ADRCI的所有操作均基于ADR Home因此设置正确的Home是所有操作的前提。查看所有ADR Homeadrcishow homes ADR Homes: diag/rdbms/orcl/orcl diag/tnslsnr/host51/listener设置当前ADR Home# 设置单个ADR Homeadrcisethomepath diag/rdbms/orcl/orcl# 验证当前Homeadrcishow home ADR Homes: diag/rdbms/orcl/orcl如果未设置ADR Home直接执行操作ADRCI会提示选择Home按编号选择即可。4.3 健康检查作为一名DBA每天对数据库进行健康检查是日常工作。通过ADRCI可以快速高效地完成检查。查看所有问题Problemsadrcishow problem该命令会显示所有实例运行中发生的严重错误。如果没有任何输出说明实例运行过程中没有发生严重错误。查看所有事件Incidentsadrcishow incident-all查看特定事件的详细信息adrcishow incident-modedetail-pincident_id4334694.4 清理日志数据库日志文件过大可能导致磁盘空间不足甚至数据库宕机。ADRCI提供了安全、高效的日志清理方式。查看清理命令帮助adrcihelppurge按时间清理日志单位分钟# 删除10天1440分钟前的alert日志(是指alertxxx.xml类型的文件) --常用purge-age14400-typealert# 删除10天14400分钟前的trace文件是指trc.trm类型的文件 --常用purge-age14400-typetrace设置ADR Home后清理sethomepath diag/rdbms/orcl/orcl purge-age14400不指定类型清理alert和trace两种类型的--常用在命令行中直接执行清理不进入交互模式-- 常用 adrciexecshow homesadrciexecset homepath diag/rdbms/orcl/orcl; purge -age 14400注意默认情况下当天的trace文件不能被清理。清理操作无需停止数据库实例不影响实例运行。4.5 IPS打包错误日志IPSIncident Packaging Service事件打包服务是Oracle 11g的新特性可以查看某个错误相关的所有dump文件和trace文件并方便地打包成一个文件极大方便了DBA进行远程诊断。基本打包流程使用SHOW INCIDENT -ALL获取错误事件ID创建逻辑包将事件添加到包中生成物理包ZIP文件示例操作# 1. 查看事件列表获取事件IDadrcishow incident-all# 2. 创建一个空的逻辑包adrciips create package# 3. 将诊断信息加入逻辑包假设事件ID为43369包号为1adrciipsaddincident43369package1# 3.1 将事件加入到package中可加入多个事件ipsaddincident72697package1# 4. 生成物理包ZIP文件到指定目录adrciips generate package1in/home/oracle adrciips generate package1in/home/oracle Generated package1infile/home/oracle/IPSPKG_20260804174302_COM_1.zip, mode complete直接创建包含事件的包# 创建包时直接指定事件IDadrciips create package incident43369# 创建包时直接指定问题IDadrciips create package problem1按时间范围打包# 创建包含两个时间点之间所有事件的包adrciips create packagetime2025-09-12 10:00:00 -08:00to2025-09-12 23:00:00 -08:00手动添加文件到已有包adrciipsaddfileADR_BASE/diag/rdbms/orcl/orcl/trace/orcl_ora12345.trc package1查看和管理包# 显示包中的所有文件adrciips show files# 显示包中的所有事件adrciips show incidents# 从包中移除诊断文件adrciips removefile4.6 其他常用命令命令说明SHOW BASE显示当前ADR Base路径SHOW TRACEFILE显示当前ADR Home下的所有trace文件SHOW TRACEFILE %mmon%查找包含特定字符串的trace文件SHOW TRACEFILE -I 43417显示与特定事件相关的trace文件HELP列出所有可用命令HELP [command]查看特定命令的详细语法SET EDITOR设置查看alert日志的编辑器SPOOL将输出重定向到文件五、日志保留策略配置ADRCI允许通过设置保留策略来控制诊断数据的自动清理避免手动频繁清理。5.1 查看当前保留策略adrcisethomepath diag/rdbms/orcl/orcl adrcishow control5.2 设置保留策略# SHORTP_POLICY短保留策略单位小时主要管理TRACE、core dump等# LONGP_POLICY长保留策略单位小时主要管理alert log、incident信息等# 设置短保留策略为72小时3天adrcisetcontrol(SHORTP_POLICY72)# 设置长保留策略为720小时30天adrcisetcontrol(LONGP_POLICY720)5.3 默认保留策略策略默认值管理内容SHORTP_POLICY720小时30天TRACE文件、core dump、打包信息LONGP_POLICY8760小时365天Alert日志、incident信息、incident转储六、常用查询与维护命令汇总6.1 快速参考操作命令启动ADRCIadrci查看所有Homeshow homes设置当前Homeset homepath diag/rdbms/orcl/orcl查看当前Homeshow home查看ADR Baseshow base查看alert日志show alert实时查看alert日志show alert -tail -f查看最近N行alertshow alert -tail 50查看ORA错误show alert -p message_text like %ORA-%查看所有问题show problem查看所有事件show incident -all查看特定事件详情show incident -mode detail -p incident_idxxx查看trace文件show tracefile清理日志purge -age 1440 -type alert创建IPS包ips create package生成IPS包ips generate package 1 in /path查看帮助help查看保留策略show control设置保留策略set control (SHORTP_POLICY 72)6.2 常用清理场景# 场景1清理7天前的trace文件10080分钟adrcipurge-age10080-typetrace# 场景2清理30天前的alert日志43200分钟adrcipurge-age43200-typealert# 场景3清理所有类型中7天前的数据adrcipurge-age10080七、常见问题与注意事项7.1 常见问题Q1ADRCI可以查看CRS日志吗11g版本不可以ADRCI只可以查看数据库、ASM、监听器的日志但CRSCluster Ready Services日志通常不包含在ADRCI的show home列表中。19c版本开始支持查看CRS日志。Q2集群环境中的日志清理需要注意什么RAC各节点的GI日志目录是独立的需要在每个节点上分别执行清理操作。Q3为什么有些日志无法通过purge清理默认情况下当天的trace文件不能被清理。如需强制清理可调整ARCH_CLEAN_IGNORE_MODE参数。Q4ADRCI工具的位置在哪里ADRCI位于$ORACLE_HOME/bin目录下。
延伸阅读

更多相关文章

2026/10/7 18:07:00

RAG技术解析:从向量检索到智能生成的工程实践指南

1. 项目概述:从信息检索到智能生成的范式跃迁如果你是一名前端开发者,或者对AI应用开发感兴趣,最近一定被“RAG”这个词刷屏了。它听起来像是一个神秘的黑盒,但本质上,它解决的是一个我们每天都在面对的核心问题&#…

2026/10/7 2:57:22

机器人竞赛开发实战:从ROS 2环境搭建到智能小车仿真项目

1. 背景与核心概念:机器人竞赛的技术驱动与生态价值在技术快速迭代的今天,机器人技术已从实验室和科幻电影中走出,成为推动智能制造、智慧生活、特种作业等领域的核心引擎。对于广大开发者、工程师和学生而言,参与高水平的机器人赛…

2026/10/7 18:07:36

FFmpeg像素游戏超分算法:方块人风格视频4K增强实战

这次我们来看一个专门为“方块人对砍”这类像素风、低分辨率游戏视频设计的 FFmpeg 算法。它瞄准了一个非常具体的痛点:如何将那些充满锯齿和马赛克的复古游戏画面,高效、高质量地转成4K分辨率,而不是简单地拉伸或使用通用算法。这个项目的核…

2026/10/8 2:37:32

C盘爆满不用怕!10个Windows系统清理技巧全解析

C盘又红了,这种提示我见过太多次了。给别人修电脑也好,帮朋友远程也好,十台机器里七八台都栽在C盘空间不足上。很多人第一反应是装个“清理大师”一键扫灰,结果扫出来一堆没用的缓存,过几天又红了,有时候还…

2026/10/8 2:37:32

逆向工程入门:BUUCTF RE刷题实战笔记与工具链详解

有段时间,我打开BUUCTF的RE分区,看着慢慢变长的题单,起了个很随意的标题:看心情写。在这个标题下,我攒了一堆零散的逆向笔记和脚本碎片。真正开始刷之后我发现,“看心情”其实是种被低估的学习策略——状态…

2026/10/8 2:37:31

Django结合机器学习的电商评论情感分析毕设指南

每年到毕设季,社交媒体和论坛上总有大量"求推荐毕设题目"的帖子。见得多了你会发现,真正能让你省心省力、顺利过审的题目,通常具备三个特征:技术栈主流、业务闭环完整、有现成参考。而"基于Django机器学习的电商评…

2026/10/8 2:37:31

订单服务版本1设计指南:状态机、幂等与并发控制实战

1. 订单服务为什么值得单独抽一个类:从"能跑"到"扛造"的差距先说说背景。我之前参与过一个电商项目的起步阶段,业务方给的第一个需求很朴素:用户能下单、能查订单、能取消订单。听起来就那么回事,但等真正动手…

2026/10/8 2:37:31

DDoS攻击原理与防御实战:从应急止血到纵深体系搭建

1. 干安全这些年,DDoS 这道坎到底怎么迈做线上业务的人,几乎都躲不过 DDoS 这一关。它不是那种需要多高深技巧的入侵手法,却总能用最粗暴的方式把人搞得焦头烂额:带宽被打满、机房黑洞、服务全挂、老板连环夺命 call。我经历过几次…

2026/10/8 2:32:31

Cursor 2.4.21 实测:免费额度、中文设置与多工具配合实战

最近不少朋友在问,我一直在用的 Cursor 更新到 2.4.21 之后到底怎么样,网上那些“免费无线续杯”的说法又是什么意思。这波热度确实高,毕竟 AI 编程工具已经成了很多人的日常生产力,而 Cursor 又是其中最受关注的一个。这篇文章就…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/7 8:18:33

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑