Oracle故障诊断(一线DBA必备技能)之ADRCI(一)
1. 题记:
本篇博文详细介绍一线DBA必备技能—Oracle DB故障诊断工具ADRCI概述。
2. ADRCI 的基本概念
- ADRCI(Automatic Diagnostic Repository Command Interpreter)是用于管理 Oracle 自动诊断知识库(ADR)的命令行工具。ADR 是从 Oracle 11g 开始引入的一个集中式的诊断信息存储库,用于存储数据库相关的诊断数据,包括跟踪文件(trace files)、转储文件(dump files)、健康检查报告等多种类型的文件。
- ADR 本身的结构是基于文件系统的层次结构,它的目录布局是按照一定的规则组织的,以便于有效地存储和检索诊断信息。例如,在不同的子目录下会分别存储不同类型的诊断文件,这些子目录的命名和位置安排是由 Oracle 数据库自动管理的,以确保数据的一致性和可访问性。
2. ADRCI 的安装与启动
- 安装: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. 文件查看命令
- show alert -tail:用于查看数据库实例的警告日志(alert log)的末尾部分。警告日志记录了数据库的重要事件、错误消息和状态变化等信息。例如,通过这个命令可以实时监控数据库是否出现新的错误或异常情况,就像实时查看系统的 “活动记录” 一样。
- show tracefile:用于显示指定类型的跟踪文件。跟踪文件包含了详细的数据库操作信息,如 SQL 语句的执行过程、系统调用等。这对于分析数据库性能问题或者排查特定操作导致的错误非常有用。例如,当一个 SQL 查询执行时间过长时,可以使用这个命令找到相关的 SQL 跟踪文件,查看其中的执行计划和时间消耗细节。
-
- 这几个命令后面博文会有详细的实操案例演示。
- 这几个命令后面博文会有详细的实操案例演示。
2. 事件管理命令
- show incident:用于列出 ADR 中记录的所有事件。事件是指在数据库运行过程中发生的值得关注的情况,如 ORA - 错误。这个命令可以提供事件的基本信息,如事件 ID、事件发生时间等。
- show incident -mode detail -p “incident_id = <具体事件 ID>”:用于查看特定事件的详细信息。通过指定事件 ID,可以获取包括事件相关的诊断文件位置、事件的详细描述、涉及的 SQL 语句(如果有)等内容。这有助于深入了解事件的本质,以便找到解决问题的方法。
- 这几个命令后面博文会有详细的实操案例演示。
3. 文件管理命令
- ips create package:用于创建一个包含指定事件相关诊断文件的包。在需要将诊断数据发送给 Oracle 支持人员进行分析时,这个命令非常有用。它可以将相关的文件打包成一个易于传输的格式(如 ZIP 文件),确保所有必要的诊断信息都能一起发送。
- purge:用于清除 ADR 中的诊断文件。可以根据不同的条件进行清除,如按时间(例如,清除多少天以前的文件)、按事件(清除与某个特定事件相关的文件)或按问题(清除与某个特定问题相关的文件)。这有助于管理 ADR 的磁盘空间,避免诊断文件过多占用磁盘资源。
-
- 这几个命令后面博文会有详细的实操案例演示。
4. 利用ADRCI 进行故障排查和性能优化
- 故障排查
当数据库出现故障,如实例崩溃或者出现 ORA - 错误时,ADRCI 可以帮助快速定位相关的诊断文件。通过查看事件详细信息和对应的诊断文件,如核心转储文件(core dump files)和错误跟踪文件,可以确定故障的原因。例如,如果数据库因为一个 SQL 语句导致内存溢出错误,使用 ADRCI 可以找到该 SQL 语句对应的跟踪文件,查看其执行计划和资源使用情况,从而找出导致内存溢出的具体原因,如不合理的表连接或者数据量过大等。 - 性能优化
在性能优化方面,ADRCI 可以用于查看 SQL 跟踪文件,以分析 SQL 语句的执行效率。通过查看跟踪文件中的信息,如等待事件(wait events)、执行计划(execution plan)和资源消耗(如 CPU 时间、I/O 时间)等,可以发现性能瓶颈。例如,如果发现一个频繁执行的 SQL 语句有大量的磁盘 I/O 等待事件,可以根据跟踪文件中的信息优化 SQL 语句或者调整数据库的存储参数,以提高数据库的整体性能。
后面博文会有详细的实操案例演示。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB基本知识和排障案例及经验、性能调优等。