62-Oracle ADR(Automatic Diagnostic Repository)

探究Oracle自动诊断库(ADR)的使用与管理 该查询返回当前连接到数据库的会话的信息,包括会话ID(sid)、序列号(serial#)、用户名(username)、状态(status)、操作系统用户(osuser)和机器名(machine)。该查询返回当前锁的信息,包括会话ID(sid)、锁类型(type)、资源标识符(id1和id2)、锁模式(lmode)、请求的锁模式(request)和是否被阻塞(block)。该查询返回数据库中数据文件的信息,包括文件编号(file#)、文件名(name)和文件状态(status)。 阅读详情

小伙伴有没有被alter、dump等各种日志、报警文件撑爆磁盘的经历。实例卡了崩了,满服务器翻alert.log、trace文件。现在可以直接adrci一条命令通吃所有组件日志。还有可以控制数据库抽风狂报ORA-600的时候,ADR自动限流,空间不再会被dump文件撑爆,现在即使实例崩了,还是adrci继续可用。不过XML格式的alert log,每次还是需要开ADRCI用show alert -p "message_text like '%ORA-%'"过滤错误。ips create package一键打包事件,官方支持更方便了。

一、ADR核心功能

统一诊断数据存储
  • 集中存储跟踪文件(Trace)、警报日志(Alert Log)、核心转储(Core Dumps)、健康检查报告(Health Monitor Reports)、DDL日志等。
  • 支持数据库、ASM、监听器、Clusterware等多组件,每个实例独立目录(ADR Home)。
问题-事件管理机制
  • 问题(Problem):严重错误(如ORA-600)分配唯一问题键(Problem Key)。
  • 事件(Incident):同一问题的每次发生生成带时间戳的事件,分配事件ID(Incident ID),自动触发告警至OEM。
  • 洪水控制(Flood Control):限制高频事件的诊断数据生成,避免系统过载(如仅记录日志,不生成转储)。
独立于数据库运行
  • 基于文件系统存储,数据库不可用时仍可访问(如崩溃恢复场景)。
自动化工具集成
  • 命令行工具adrci:查看日志、清理文件、打包事件数据。
  • 动态视图V$DIAG_INFO:实时查询关键路径(如警报日志位置)。

二、技术原理

1. 目录结构

层级

路径规则

说明

ADR Base

DIAGNOSTIC_DEST参数指定

(默认$ORACLE_BASE或$ORACLE_HOME/log)

根目录

ADR Home

diag/<product_type>/<product_id>/<instance_id>
(如diag/rdbms/orcl/orcl)

实例专属目录

子目录

alert/, trace/, incident/, cdump/, hm/

分别存储XML警报日志、跟踪文件、事件数据等

2. 诊断数据类型 

类型

内容

示例文件

警报日志(Alert Log)

内部错误(ORA-600)、管理操作(STARTUP/SHUTDOWN)、死锁事件

log.xml(XML格式)

跟踪文件(Trace)

进程活动、SQL执行详情、错误堆栈

orcl_ora_12345.trc

DDL日志

所有DDL语句记录(需手动启用)

ddl.log

3. 关键机制
  • 洪水控制:相同问题事件频繁发生时,抑制转储生成,仅保留日志条目。
  • 健康监控:自动生成报告(如数据块损坏检查),存储于hm/目录。

三、版本演进 

版本

关键改进

Oracle 11g

引入ADR,替代BACKGROUND_DUMP_DEST等分散参数,统一存储诊断数据。

Oracle 12c

增强多租户支持,每个PDB独立事件跟踪;优化adrci的事件打包(IPS)功能。

Oracle 19c~

集成机器学习(如自动根因分析);支持云环境诊断数据直传Oracle Support。

四、验证脚本

1. 查询ADR路径
-- 查看所有关键路径
SELECT name, value FROM V$DIAG_INFO;

输出示例23ai和19c: 

SELECT name, value FROM V$DIAG_INFO;

NAME                     VALUE
________________________ _____________________________________________________________
Diag Enabled             TRUE
ADR Base                 /opt/oracle
ADR Home                 /opt/oracle/diag/rdbms/free/FREE
Diag Trace               /opt/oracle/diag/rdbms/free/FREE/trace
Diag Alert               /opt/oracle/diag/rdbms/free/FREE/alert
Diag Incident            /opt/oracle/diag/rdbms/free/FREE/incident
Diag Cdump               /opt/oracle/diag/rdbms/free/FREE/cdump
Health Monitor           /opt/oracle/diag/rdbms/free/FREE/hm
Default Trace File       /opt/oracle/diag/rdbms/free/FREE/trace/FREE_ora_154577.trc
Active Problem Count     0
Active Incident Count    0
ORACLE_HOME              /opt/oracle/product/23ai/dbhomeFree
Attention Log            /opt/oracle/diag/rdbms/free/FREE/trace/attention_FREE.log

13 rows selected.
---
SYS@CDB$ROOT> SELECT name, value FROM V$DIAG_INFO;
NAME                    VALUE
Diag Enabled            TRUE
ADR Base                /u01/app/oracle
ADR Home                /u01/app/oracle/diag/rdbms/test19/test19
Diag Trace              /u01/app/oracle/diag/rdbms/test19/test19/trace
Diag Alert              /u01/app/oracle/diag/rdbms/test19/test19/alert
Diag Incident           /u01/app/oracle/diag/rdbms/test19/test19/incident
Diag Cdump              /u01/app/oracle/diag/rdbms/test19/test19/cdump
Health Monitor          /u01/app/oracle/diag/rdbms/test19/test19/hm
Default Trace File      /u01/app/oracle/diag/rdbms/test19/test19/trace/test19_ora_30455.trc
Active Problem Count    0
Active Incident Count   0
ORACLE_HOME             /u01/app/oracle/product/19.3.0/dbhome_1

已选择 12 行。
2. 使用adrci管理日志 
adrci
show homes                      -- 列出所有ADR Home
set home diag/rdbms/orcl/orcl   -- 切换目录
show alert -tail 20             -- 实时查看警报日志尾部
purge -age 1440 -type incident  -- 清理24小时内的事件数据
--
[oracle@OL97 ~]$ adrci

ADRCI: Release 23.0.0.0.0 - Production on Sun Jun 22 12:28:33 2025

Copyright (c) 1982, 2025, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/opt/oracle"
adrci> show homes;
ADR Homes:
diag/rdbms/free/FREE
diag/clients/user_oracle/RMAN_3026389520_115
diag/clients/user_oracle/host_3026389520_115
diag/tnslsnr/OL97/listener
diag/orapwd/ol97/kuzr
adrci> set home diag/rdbms/free/FREE
adrci> show alert -tail 2
2025-06-22 08:37:44.840000 +08:00
  Current log# 2 seq# 59 mem# 0: /opt/oracle/oradata/FREE/redo02.log
NET  (PID:151752): Archived Log entry 54 added for B-1203593363.T-1.S-58 LOS:0x0000000000552488 NXS:0x0000000000552551 NAB:319 ID 0x57f538d2 LAD:1 [krse.c:4872]
adrci> purge -age 1440 -type incident
3. 启用DDL日志
---- 启用后DDL记录到log/ddl.log
ALTER SYSTEM SET enable_ddl_logging = TRUE;
SYS@CDB$ROOT> ALTER SYSTEM SET enable_ddl_logging = TRUE;
System altered.
4. 事件打包(供Oracle Support分析) 
adrci
ips create package incident <incident_id>    -- 创建逻辑包
ips generate package 1 in /tmp              -- 输出物理包到/tmp
5. 设置清理策略 
adrci
set control (SHORTP_POLICY = 120);  -- 跟踪文件保留5天
set control (LONGP_POLICY = 168);   -- 事件数据保留7天

五、使用体验

ADR通过标准化目录结构、事件驱动模型和洪水控制机制,实现了诊断数据的统一管理与高效分析。其演进过程体现了Oracle从分散管理到集中化、再到智能诊断的转型。通过adrci和动态视图的组合使用,管理员可快速定位问题,减少停机时间。

避坑指南:Qt无边框窗口拖动+阴影效果这些细节要注意 本文深入探讨了Qt无边框窗口开发中实现流畅拖动与阴影效果的关键细节与常见陷阱。针对高DPI屏幕适配、阴影闪烁、拖动卡顿及多显示器兼容性等核心难题,提供了从QGraphicsDropShadowEffect原理剖析到手动绘制优化、坐标系统精准处理及平台原生事件拦截的实战解决方案,帮助开发者构建稳定、美观的商业级应用界面。 阅读详情

相关推荐

Springboot——接入企业微信聊天机器人

最近企业微信的聊天机器人很火也很好玩,本期想自己接入一个玩玩试试水,同时也接入AI大模型进行数据的交互。

专注写bug 1324

DBA之路---oracle故障诊断框架ADR

*对于c版本中,**虽然产生了CDB和PDB容器概念,但作为根容器的CDB$ROOT的ADR会存储所有PDB的ADR错误日志,PDB的专有目录并不会记录产生的错误内容。用于收集存储打包ADR获取到的诊断信息,并确定oracle需要那些文件来诊断问题,完成后会打包一个压缩包存放在ADR处。跟踪文件时排查故障的重要工具,可以用来分析和查看给定数据库目前在做什么,过去做了什么。c版本新引进日志,记录数据库中不正常但是缺不影响数据库自身状态的时间,g版本以前这些是存放在警报日志中的。ADRCI命令行工具。

Princesk的博客 998

MATLAB数据可视化:pcolor函数从入门到精通(附colormap调色秘籍)

本文深入解析MATLAB中pcolor函数的数据可视化应用,从核心机制、坐标网格指定到常见陷阱规避。重点揭秘colormap调色秘籍,涵盖内置色系选用原则、个性化定制方法及高级渲染技巧,助你创作出信息准确、视觉出色的专业图表,精通从数据到出版级图表的全流程。

kafka6courier的博客 246

Oracle - 4 - ADR(Automatic Diagnostic Repository)

2 使用 Github 官网:github.com 2.1 目的 借助 github 托管项目代码 2.2 基本概念 仓库(Repository) 仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库。 收藏(Star) 复制克隆项目(Fork) 该 fork 的项目独立存在 发送请求(Pull Request) 关注(Watch) 关注项目,当项目更新可以...

LawssssCat的博客 964

别再纠结高侧低侧了!用INA199/INA219这类集成电流检测芯片,5分钟搞定精准电流测量

本文详细解析了使用INA199/INA219等集成电流检测芯片实现精准电流测量的高效方案。通过对比传统分立元件方案,突出集成芯片在精度、温度稳定性和设计简化方面的优势,并提供硬件设计避坑指南和软件实现最佳实践,帮助开发者快速掌握电流检测技术。

weixin_42685438的博客 471

华为服务器RAID配置避坑指南:如何通过iBMC快速识别阵列卡型号并完成初始化

本文详细解析华为服务器RAID配置全流程,重点介绍通过iBMC快速识别阵列卡型号、硬盘健康诊断及RAID级别选择的场景化策略。提供从iBMC登录到缓存策略调优的实战技巧,帮助工程师避免常见配置陷阱,提升服务器存储系统性能和稳定性。

weixin_28475533的博客 492

oracle的adr,Oracle 关闭 ADR 特性

Oracle 从11g 引入了ADR (Automatic Diagnostic Repository) ,ADR 是一个基于文件的资料档案库,用于存放数据库诊断数据(如跟踪、意外事件转储和程序包、预警日志、健康状况监视器报告、核心转储等)。关于ADR的详细内容参考如下链接:Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明[root@cndba.cn fd]# su - gr...

weixin_42131352的博客 884

DeepSeek-V4 本地部署实战指南:4套方案从入门到企业级(附RTX 5090实测数据)

V4-Flash 便宜是便宜,输入 1 元/M token,输出 2 元/M token,但量大了还是肉疼。V4-Pro 更离谱,输入 12 元/M token,输出 24 元/M token,这价格要是天天调用,月账单轻松破万。用 4-bit 量化跑 V4-Flash,显存占用 ~22GB,延迟 ~80ms/token,并发能到 2-3 路。换句话说,同样的硬件,能跑更长的上下文、更大的并发。Flash 是「小而美」,一张 RTX 4090/5090 就能跑,门槛低,效果够用。

datayx的文章 9852

Oracle 数据库自动诊断库 ADR(Automatic Diagnostic Repository)简介 发表在 数据和云

文章目录ADR 的作用ADR 中的文件ADR 的目录结构数据库的 ADR 家目录结构Alert Logsbtio logADRCI 工具 ADR 的作用 Oracle 数据库如果出现故障,我们的第一个反应是查看数据库的 alert log,但一些工程师对 alert log 不熟悉,实际上 alert log 位于Oracle 数据库自动诊断库(Automatic Diagnostic Repository,以下简称 ADR) 中,要熟悉 alert log,我们必需全面了解 ADR 的概念。ADR(Aut

姚远OracleACE的博客 2168

基于STM32设计的指纹考勤机_348

随着信息化管理需求的日益增长,传统的人工考勤方式已难以满足现代社会对高效、精准和安全的考勤管理要求。为解决这一问题,本项目设计并实现了一款基于STM32的指纹考勤机系统。该系统采用AS608指纹识别模块进行人员身份识别,ESP8266无线模块实现与上位机APP的通信,支持人员信息录入、考勤时间段设置、考勤记录保存与查询等功能。系统通过SQLite数据库存储考勤数据,并提供导出EXCEL表格功能,方便数据管理与统计分析。该系统具有高效的考勤管理能力和良好的用户交互体验,能够广泛应用于企业、学校等机构的考勤管理

525

华为OD机试真题 新系统 2026-08-16 Python&JS【智能家居模式调度优化】

智能家居系统中有多个自动化联动模式,每个模式 modes[i]=[start_time,end_time,power],表示它在左闭右开区间 [start_time,end_time) 内持续消耗固定功率 power。

MISAYAONE的博客 85

Fatal NI connect error 12170

 Fatal NI connect error 12170.     VERSION INFORMATION:     TNS for Linux: Version 11.1.0.7.0 - Production     Unix Domain Socket IPC NT Protocol Adaptor for Linux: Version 11.1.0.7.0 - Product

kevin_LCC的专栏 973

LeRobot 官方论文:一个用于端到端机器人学习的开源库

本文介绍了一个名为LeRobot的开源库,旨在解决机器人学习领域的碎片化问题。该库提供了端到端的技术栈,包括统一的机器人中间件API、标准化的数据集格式(LeRobotDataset)、优化的推理栈以及多种最先进机器人学习算法的实现。LeRobot支持多种低成本开源机器人平台(如SO-10X、ALOHA-2等),通过共享中间件实现便捷的遥操作和数据收集。其数据集格式已广泛应用于社区,截至2025年9月已有16,000多个数据集公开共享。该库还支持流式处理大规模数据,降低了研究门槛。在模型方面,LeRobot

2506_90492529的博客 906

Oracle故障诊断(一线DBA必备技能)之ADRCI(一)

本篇博文详细介绍一线DBA必备技能---Oracle DB故障诊断工具ADRCI概述。

qq_45732829的博客 1601

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

oracle的adr,ORACLE 11G中的ADR介绍:

直到今天,我才开始接触oracle 11g,先了解其新特性,以下这些是我的新特性读书笔记:第一部分:(Automatic Diagnostic Repository)ADR在oracle 11g中,你不能在目录$ORACLE_BASE/diag/rdbms/$INSTANCE_NAME/$ORACLE_SID/alert中直接读取alert日志。而是读取其中的log.xml文件。该文件不是文本文件...

weixin_32659481的博客 784

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明

一.自动诊断资料档案库(ADR) 1.1 ADR 说明ADR(AutomaticDiagnostic Repository),ADR 是一个基于文件的资料档案库,用于存放数据库诊断数据(如跟踪、意外事件转储和程序包、预警日志、健康状况监视器报告、核心转储等)。它对存储在任何数据库外的多个实例和多种产品使用一个统一的目录结构。因此,可用于数据库关闭时的问题诊断。从Oracle Data...

weixin_30897079的博客 543

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Oracle ADR(Automatic Diagnostic Repository)介绍

ADR(Automatic Diagnostic Repository)是一个基于文件结构的,Oracle数据库关于一切痕迹、dump、警报日志、健康监控报告等诊断信息的数据仓库。从11g开始,Oracle ASM以及Oracle产品或组件都将诊断数据以ADR形式进行保存。每个产品的实例都将诊断数据保存在自己的ADR主路径下。比如,在一个共享存储并以Oracle ASM进行管理的Oracle R...

wjzt7322的博客 1348

oracle的adr,Oracle 自动诊断信息库(Automatic Diagnostic Repository,ADR)

Oracle 11G中的ADR介绍:ADRCI 之oracle 日志查看在Oracle的11g版本中,alert文件的位置发生了变化,与此同时Oracle提供了一个命令行工具ADRCI,它可以很便利的查看数据库中出现的异常。 以下给大家展示一下使用ADRCI (ADR Command Interface) 在11g中查看Oracle的警告日志的方法。1.进入到adrci命令行模式ora11g@RH...

weixin_42300302的博客 329

oracle的adr,Oracle 11g 诊断新特性——ADR 简介

ADR(Automatic DiagnosticRepository)是一个基于文件的档案库,用于存放数据库的诊断信息,例如跟踪文件,意外dump文件,IPS包,警告日志文件,健康监控报告,核心dump文件以及其它诊断信息。ADR的根目录叫做ADRbase,位置通过参数DIAGNOSTIC_DEST设置。ADR拥有统一的目录结构,在数据库之外存储多个产品和实例的诊断信息,因此即使在数据库关闭时仍然...

weixin_39566593的博客 591

Oracle 数据库自动诊断库 ADR(Automatic Diagnostic Repository)简介

作者介绍姚远:鼎甲科技高级技术顾问,墨天轮MVP。Oracle ACE,华为云MVP,专注于 Oracle、MySQL 数据库多年,拥有 Oracle 10g、12c OCM, MyS...

Enmotech的博客 1409

Oracle 11g 诊断新特性——自动诊断资料库ADR

   ADR(Automatic Diagnostic Repository)是一个基于文件的档案库,用于存放数据库的诊断信息,例如跟踪文件,意外dump文件,IPS包,警告日志文件,健康监控报告,核心dump文件以及其它诊断信息。ADR的根目录叫做ADR base, 位置通过参数DIAGNOSTIC_DEST设置。ADR拥有统一的目录结构,在数据库之外存储多个产品和实例的诊断信息,因此即使在数...

jolly10的专栏 1069

IPS简单使用方法

IPS简单使用方法: IPS(incident packaging service)是11G的新特性,其目的是查看某个错误相关的所有dump文件和trace文件,并可以很方便的打成一个包,我认为这个特性极大的方便了DBA进行远程诊断。 PRE:使用前首先设置好ORACLE_HOME和PATH环境变量。 进入adrci控制台: $adrci adrci tool is started.

zhou1862324的专栏 3224

oracle客户端产生diag,客户端ADR配置

前两天YJ部门有一个使用occi的应用,启动时出现报错,应用日志记录的内容是Occipool error,没有任何其他信息了,后来同事向应用中加了一些日志语句,重编译运行才发现报的是ORA-00020错误,数据库process连接进程达到了上限,通过参数修改,解决了这个问题。这里我要说的是在排查过程中看到的另外一个报错。为了更好地说明问题,我会结合实验一并叙述。问题现象:首先,查找sqlnet.l...

weixin_42499041的博客 1167

20221203-Oracle ADR介绍

20221203-Oracle ADR介绍

chenoracle的博客 939

Oracle ADRCI工具使用说明

ADRCI是一个命令行工具,是Oracle 11g中引入的故障可诊断性架构的一部分。ADRCI可以完成以下:查看自动诊断信息库(ADR)中的诊断数据。查看Health Monitor报告。将事件和问题信息打包到zip文件中以传输到Oracle Support。

瑞琪姐的运维小站 1319

在Oracle的ADR中设置自动删除trace文件的策略

姚远老师在一个有两万个客户的公司做数据库支持,什么稀奇古怪的事情都能遇到,有个客户的数据库不停地产生大量的trace,经常把硬盘撑爆,看看姚远怎么解决这个问题的。

姚远OracleACE的博客 2135
上一篇: 61-Oracle SQL Monitor-实操
下一篇: 63-Oracle LogMiner(23ai)-实操
远方1609
博客等级 码龄22年 577粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值