当前位置: 首页 > news >正文

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

1. 题记:

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

2. ADRCI 的基本概念

  1. ADRCI(Automatic Diagnostic Repository Command Interpreter)是用于管理 Oracle 自动诊断知识库(ADR)的命令行工具。ADR 是从 Oracle 11g 开始引入的一个集中式的诊断信息存储库,用于存储数据库相关的诊断数据,包括跟踪文件(trace files)、转储文件(dump files)、健康检查报告等多种类型的文件。
  2. ADR 本身的结构是基于文件系统的层次结构,它的目录布局是按照一定的规则组织的,以便于有效地存储和检索诊断信息。例如,在不同的子目录下会分别存储不同类型的诊断文件,这些子目录的命名和位置安排是由 Oracle 数据库自动管理的,以确保数据的一致性和可访问性。
    在这里插入图片描述

2. ADRCI 的安装与启动

  1. 安装:ADRCI 是随 Oracle 数据库一起安装的工具,在安装 Oracle 数据库软件时,会自动将 ADRCI 安装到相应的目录中。通常不需要额外的安装步骤,只要数据库安装成功,就可以使用 ADRCI。
    2.启动:在操作系统的命令提示符下,只需输入 “adrci” 命令即可启动 ADRCI。启动后的 ADRCI 会显示一些基本的版权信息和 ADR 的基本目录(ADR base)位置,例如:
    在这里插入图片描述
ADRCI: Release 19.0.0.0.0 - Production on Fri Oct 25 14:00:00 2024Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.ADR base = "/u01/app/oracle"

这里的 “ADR base” 是 ADR 的根目录,所有的诊断数据都存储在这个目录及其子目录下。

3. ADRCI 的主要命令和功能

1. 文件查看命令

  1. show alert -tail:用于查看数据库实例的警告日志(alert log)的末尾部分。警告日志记录了数据库的重要事件、错误消息和状态变化等信息。例如,通过这个命令可以实时监控数据库是否出现新的错误或异常情况,就像实时查看系统的 “活动记录” 一样。
  2. show tracefile:用于显示指定类型的跟踪文件。跟踪文件包含了详细的数据库操作信息,如 SQL 语句的执行过程、系统调用等。这对于分析数据库性能问题或者排查特定操作导致的错误非常有用。例如,当一个 SQL 查询执行时间过长时,可以使用这个命令找到相关的 SQL 跟踪文件,查看其中的执行计划和时间消耗细节。
    1. 这几个命令后面博文会有详细的实操案例演示。
      在这里插入图片描述

2. 事件管理命令

  1. show incident:用于列出 ADR 中记录的所有事件。事件是指在数据库运行过程中发生的值得关注的情况,如 ORA - 错误。这个命令可以提供事件的基本信息,如事件 ID、事件发生时间等。
  2. show incident -mode detail -p “incident_id = <具体事件 ID>”:用于查看特定事件的详细信息。通过指定事件 ID,可以获取包括事件相关的诊断文件位置、事件的详细描述、涉及的 SQL 语句(如果有)等内容。这有助于深入了解事件的本质,以便找到解决问题的方法。
  3. 这几个命令后面博文会有详细的实操案例演示。

3. 文件管理命令

  1. ips create package:用于创建一个包含指定事件相关诊断文件的包。在需要将诊断数据发送给 Oracle 支持人员进行分析时,这个命令非常有用。它可以将相关的文件打包成一个易于传输的格式(如 ZIP 文件),确保所有必要的诊断信息都能一起发送。
  2. purge:用于清除 ADR 中的诊断文件。可以根据不同的条件进行清除,如按时间(例如,清除多少天以前的文件)、按事件(清除与某个特定事件相关的文件)或按问题(清除与某个特定问题相关的文件)。这有助于管理 ADR 的磁盘空间,避免诊断文件过多占用磁盘资源。
    1. 这几个命令后面博文会有详细的实操案例演示。

4. 利用ADRCI 进行故障排查和性能优化

  1. 故障排查
    当数据库出现故障,如实例崩溃或者出现 ORA - 错误时,ADRCI 可以帮助快速定位相关的诊断文件。通过查看事件详细信息和对应的诊断文件,如核心转储文件(core dump files)和错误跟踪文件,可以确定故障的原因。例如,如果数据库因为一个 SQL 语句导致内存溢出错误,使用 ADRCI 可以找到该 SQL 语句对应的跟踪文件,查看其执行计划和资源使用情况,从而找出导致内存溢出的具体原因,如不合理的表连接或者数据量过大等。
  2. 性能优化
    在性能优化方面,ADRCI 可以用于查看 SQL 跟踪文件,以分析 SQL 语句的执行效率。通过查看跟踪文件中的信息,如等待事件(wait events)、执行计划(execution plan)和资源消耗(如 CPU 时间、I/O 时间)等,可以发现性能瓶颈。例如,如果发现一个频繁执行的 SQL 语句有大量的磁盘 I/O 等待事件,可以根据跟踪文件中的信息优化 SQL 语句或者调整数据库的存储参数,以提高数据库的整体性能。
    后面博文会有详细的实操案例演示。

码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB基本知识和排障案例及经验、性能调优等。


http://www.mrgr.cn/news/58574.html

相关文章:

  • 大数据新视界 -- 大数据大厂之大数据与虚拟现实的深度融合之旅
  • Centos如何卸载docker
  • 论文学习 | 《电动汽车锂离子电池健康状态估计及寿命预测方法研究》
  • 面向对象进阶(下)(JAVA笔记第二十二期)
  • 海外著名新闻门户媒体软文发稿之华盛顿独立报-大舍传媒
  • Ubuntu 安装php7.3 nginx mysql
  • 基于PyQT+FaceNet卷积神经网络实现的学生人脸识别考勤系统
  • DuoAttention:高效处理长上下文推理的 AI 框架,让 LLMs 如虎添翼!
  • vi编辑器
  • MySQL查看某个数据库里面每张表的字符集和字符排序集
  • 江协科技STM32学习- P21 ADC模数转换器
  • Isaac Sim Docker 部署并使用过程记录
  • 【数据结构和算法】二、python中的常用数据结构(数组、链表、堆栈、递归、二叉树、哈夫曼树等数据结构的基本原理讲解与实战演练)
  • 尼日利亚CRIA解析
  • c++实现boost搜索引擎功能扩展 介绍+代码(日志,处理暂停词,增加数据源,引入广告竞价,增加用户管理,连接mysql)
  • Nestjs请求处理顺序
  • 【信息系统管理工程师】与【信息系统项目管理师】傻傻分不清楚?一文说清楚
  • 谷歌开发者账号,为什么新号老是因为高风险被封?
  • 如何将原本打开Edge呈现出的360浏览器,更换成原本的Edge页面或者百度等其他页面
  • uniapp开发Web页面之动态菜单配置攻略