您的位置:首页 > 数据库 > Oracle

Oracle 11g New 可诊断性增强功能

2013-12-10 15:04 162 查看
• 设置自动诊断资料档案库
• 使用支持工作台
• 运行健康状况检查
• 使用SQL 修复指导

Oracle Database 11gR1 故障管理



Oracle Database 11gR1 故障管理
故障可诊断性基础结构的目标如下:
• 预防性地检测问题
• 检测到问题后,限制损坏和中断
• 减少问题诊断时间
• 减少问题解决时间
• 简化客户与Oracle 技术支持之间的互动

简化诊断:自动诊断工作流



简化诊断:自动诊断工作流
通过一个始终处于打开状态的内存中跟踪工具,数据库组件可以在严重错误故障第一次出现时捕获诊断数据。系统将自动维护一个称为“自动诊断资料档案库”的特殊资料档案库,以保存有关严重错误事件的诊断信息。此信息可用于创建要发送到Oracle 支持服务以进行调查的意外事件程序包。
下面是一个可能的诊断会话工作流:
1.意外事件导致Enterprise Manager (EM) 中出现预警。
2. DBA 可通过EM 的“Alert(预警)”页查看此预警。
3. DBA 可以细化到意外事件和问题的详细资料。
4. DBA 或Oracle 支持服务可以决定或要求将信息打包并通过MetaLink 发送到Oracle 支持服务。DBA 可以将文件添加到自动打包的数据中。

自动诊断资料档案库



自动诊断资料档案库(ADR)
ADR 是一个基于文件的资料档案库,用于存放数据库诊断数据(如跟踪、意外事件转储和程序包、预警日志、健康状况监视器报告、核心转储等)。它对存储在任何数据库外的多个实例和多种产品使用一个统一的目录结构。因此,可用于数据库关闭时的问题诊断。从Oracle
Database 11gR1 开始,数据库、自动存储管理(ASM)、集群就绪服务(CRS) 和其它Oracle 产品或组件将所有诊断数据都存储在ADR 中。每种产品的每个实例都将诊断数据存储在自己的ADR 主目录下。例如,在具有共享存储和ASM 的Real Application Clusters
环境中,每个数据库实例和每个ASM 实例在ADR 中都有一个主目录。ADR 的统一目录结构对各种产品和实例使用一致的诊断数据格式,而且还有一组统一的工具,使客户和Oracle 技术支持可以相互关联并分析多个实例的诊断数据。
从Oracle Database 11gR1 开始,将忽略传统的…_DUMP_DEST初始化参数。ADR 根目录又称为ADR 基目录,其位置由DIAGNOSTIC_DEST初始化参数设定。如果省略此参数或将其保留为空,数据库将在启动时按如下方式设置DIAGNOSTIC_DEST:如果已设置了环境变量ORACLE_BASE,则将DIAGNOSTIC_DEST设置为$ORACLE_BASE。如果未设置环境变量ORACLE_BASE,则将DIAGNOSTIC_DEST设置为$ORACLE_HOME/log。

ADR 基目录中可以包含多个ADR 主目录,其中每个ADR 主目录都是一个根目录,用于存放特定Oracle 产品或组件的特定实例的全部诊断数据。前一张幻灯片的图形中显示了数据库的ADR 主目录位置。另外,还生成了两个预警文件。一个是文本形式的预警文件(与早期版本Oracle
DB 使用的预警文件非常相似),位于各个ADR 主目录的TRACE目录下。还有一个符合XML标准的预警消息文件,存储在ADR主目录内的ALERT子目录下。可使用Enterprise Manager和ADRCI实用程序查看文本格式的预警日志(已删除了XML
标记)。此幻灯片中的图形显示了ADR 主目录的目录结构。INCIDENT目录包含多个子目录,每个子目录均以特定意外事件命名,并且仅包含与该意外事件相关的转储。HM目录包含由健康状况监视器生成的检查器运行报告。
还有一个METADATA目录,其中包含资料档案库自身的重要文件。可以将此目录比作数据库字典。可使用ADRCI查询此字典。ADR 命令解释器(ADRCI) 是一个实用程序,可用于执行支持工作台允许的所有任务(但是仅限于在命令行环境中)。使用ADRCI实用程序,您还可以查看ADR中跟踪文件的名称以及删除了XML
标记、具有和不具有内容筛选功能的预警日志。
此外,还可以使用V$DIAG_INFO列出一些重要的ADR位置。

ADRCI:ADR 命令行工具

• 用来在操作系统提示符下与ADR 进行交互
• 可使用命令行而不是EM 来调用IPS
• DBA 应使用EM 支持工作台,以便:
– 利用构建ADRCI所基于的同一工具包/库
– 便于根据GUI 进行操作



ADRCI:ADR 命令行工具
ADRCI是一个命令行工具,包含在Oracle Database 版本11g中引入的故障可诊断性基础结构中。使用ADRCI,您可以:
• 查看自动诊断资料档案库(ADR) 中的诊断数据。
• 将意外事件和问题信息打包成zip 文件,以传输到Oracle 技术支持。此操作是使用称为意外事件打包服务(IPS) 的服务完成的。
ADRCI具有丰富的命令集,可在交互模式下使用,也可以在脚本中使用。此外,ADRCI还可以使用与SQL*Plus 执行SQL 脚本和PL/SQL 命令相同的方式执行ADRCI 命令脚本。由于未打算保护ADR 中数据的安全,所以没有必要登录到ADRCI。ADR 数据仅受对ADR目录的操作系统权限保护。
打包和以其它方式管理诊断数据的最简单方法是使用Oracle Enterprise Manager 的支持工作台。ADRCI提供了一个可代替支持工作台大部分功能的命令行,并添加了一些功能,如列出和查询跟踪文件。
本幻灯片示例显示了一个ADRCI会话,该会话中列出了存储在ADR中的所有打开的意外事件。

V$DIAG_INFO



V$DIAG_INFO
V$DIAG_INFO视图列出了所有重要的ADR 位置:
• ADR Base:ADR 基目录的路径
• ADR Home:当前数据库实例的ADR 主目录的路径
• Diag Trace:文本预警日志和后台/前台进程跟踪文件的位置
• Diag Alert:XML 版本的预警日志的位置
•…
• Default Trace File:会话的跟踪文件的路径。SQL 跟踪文件将写入到这里。

诊断跟踪的位置



诊断跟踪的位置
本幻灯片中显示的表说明了既存在于Oracle Database 10g又存在于Oracle Database 11g中的不同类跟踪数据和转储。
对于Oracle Database 11g,前台和后台跟踪文件之间没有什么区别。这两种类型的文件都会放入$ADR_HOME/trace目录中。
所有非意外事件跟踪都存储在TRACE子目录中。以前的版本会将严重错误信息转储到相应的进程跟踪文件而不是意外事件转储,这就是新旧版本之间的主要区别。从OracleDatabase 11g开始,意外事件转储将存放到独立于正常进程跟踪文件的文件中。
注:跟踪和转储之间的主要区别在于,跟踪是较为连续的输出(如打开SQL 跟踪时),而转储是为了响应事件(如意外事件)而进行的一次性输出。另外,核心是特定于端口的二进制内存转储。
在本幻灯片中,$ADR_HOME用于表示ADR 主目录,但是,不存在名为ADR_HOME的正式环境变量。

使用Enterprise Manager 查看预警日志



使用Enterprise Manager 查看预警日志
可以使用Enterprise Manager 或ADRCI实用程序通过文本编辑器查看预警日志。要使用Enterprise Manager 查看预警日志,请执行以下操作:
1.访问Enterprise Manager 中的数据库主页。
2.在“Related Links(相关链接)”下,单击“Alert Log Contents(预警日志内容)”。此时会显示“View Alert Log Contents(查看预警日志内容)”页。
3.选择要查看的条目编号,然后单击“Go(开始)”。

使用ADRCI查看预警日志



使用ADRCI查看预警日志
还可以使用ADRCI查看预警日志文件的内容。可以选择更改当前的ADR 主目录。使用SHOW HOMES命令列出所有ADR 主目录,然后使用SET HOMEPATH命令更改当前的ADR主目录。请确保已正确设置了操作系统环境变量(如ORACLE_HOME),然后在操作系统命令提示符下输入以下命令:adrci。该实用程序会启动,并显示如幻灯片中所示的提示符。
然后,使用SHOW ALERT命令。要限制输出,可以使用–TAIL选项查看最近的记录。这将显示预警日志的最后部分(大约20 到30 条消息),然后等待更多消息进入预警日志中。这些刚刚进入到预警日志的消息也会显示出来。使用此命令,可以对预警日志进行实时监视。按CTRL-C可停止等待并返回到ADRCI提示符处。如果需要,还可以指定要打印的行数。
还可以过滤SHOW ALERT命令的输出,如该幻灯片中示例底部所示,您希望只显示包含字符串ORA-600的预警日志消息。
注:ADRCI允许您将输出假脱机到文件中,与在SQL*Plus 中使用的方法非常相似。

问题和意外事件



问题和意外事件
为了简化严重错误的诊断和解决过程,故障可诊断性基础结构对Oracle DB 引入了两个概念:问题和意外事件。
• 问题是指数据库中的严重错误。ADR 将对问题进行跟踪。每个问题都由唯一的问题ID 标识,并具有问题关键字,问题关键字是描述问题的属性集。问题关键字中包括ORA 错误编号、错误参数值和其它信息。下面是一个可能的严重错误列表:
- 所有内部错误-ORA-60x错误
- 所有系统非法访问-(SEGV、SIGBUS)
- ORA-4020(库对象上出现死锁)、ORA-8103(对象不再存在)、ORA-1410(ROWID 无效)、ORA-1578(数据块已损坏)、ORA-29740(节点逐出)、ORA-255(未装载数据库)、ORA-376(此时无法读取文件)、ORA-4030(进程内存不足)、ORA-4031(无法分配更多字节的共享内存)、ORA-355(更改号次序混乱)、ORA-356(更改说明中的长度不一致)、ORA-353(日志损坏)、ORA-7445(操作系统异常)
• 意外事件是指出现一次的问题。如果问题出现多次(这种情况较常见),则每次出现时都会创建一个意外事件。ADR 将对意外事件进行跟踪。每个意外事件都由数字意外事件ID 标识,此ID 在一个ADR 主目录中是唯一的。

如果发生意外事件,数据库会在预警日志中创建一个条目,收集关于该意外事件的诊断数据(堆栈跟踪、进程状态转储和其它重要数据结构转储),使用意外事件ID 标记诊断数据,然后将数据存储在为该意外事件创建的ADR 子目录中。每个意外事件均具有问题关键字,并映射到一个问题。如果两个意外事件的问题关键字相匹配,则认为它们的根本原因相同。如果大量会话都出现相同的严重错误,则会迅速创建很多诊断信息,此时多于一定数量的意外事件的诊断信息是不必要的。因此,ADR
提供了涌进控制,以便在给定时间间隔内仅转储一定数量的属于同一问题的意外事件。请注意,受到涌进控制的意外事件仍然会生成意外事件,它们只是跳过转储操作。默认情况下,对于某个给定问题每小时只允许五个转储。
可以将问题视为具有相同故障现象的一组意外事件。引入此概念的主要原因是为了使用户能够更轻松地管理自己系统中的错误。例如,一个出现20 次的故障现象将仅报告给Oracle 一次。您通常需要管理问题而不是意外事件,可使用IPS 将问题打包发送到Oracle 技术支持。如果出现严重错误,系统会自动创建最常见的意外事件,但是,您也可以通过EM
支持工作台提供的GUI 手动创建意外事件。当希望报告的问题不带有在Oracle 代码中引发的严重错误时,一般会手动创建意外事件。
随着时间的推移,ADR 中会累积越来越多的意外事件。使用保留策略,可以指定诊断数据的保留时间。ADR 意外事件由两个不同的策略控制:
• 意外事件元数据保留策略控制元数据的保留时间。此策略的默认设置为一年。
• 意外事件文件和转储保留策略控制生成的转储文件的保留时间。此策略的默认设置为一个月。
可使用EM 的“Support Workbench(支持工作台)”页上的“Incident Package Configuration(意外事件程序包配置)”链接来更改这些设置。在RDBMS 组件中,MMON 负责自动清除过期的ADR 数据。
意外事件状态反映了该意外事件所处的状态。意外事件可以处于以下任一状态:
• 正在收集:已新建了意外事件,该意外事件正在收集诊断信息。在此状态下,意外事件数据可能不完整,此时不应打包,而应谨慎地查看。
• 就绪:数据收集阶段已完成。现在可以使用意外事件进行分析,或将意外事件打包发送到Oracle 技术支持。
• 正在跟踪:DBA 正在处理意外事件,并且选择将该意外事件无期限地保留在资料档案库中。必须手动将意外事件状态更改为此值。
• 关闭:此时,意外事件处于完成状态。在此状态下,ADR 可以选择在超过保留策略后清除的意外事件。
• 数据已清除:已经从该意外事件中删除了相关联的文件。在某些情况下,即使意外事件文件实际上可能仍然存在,也建议用户不要查看这些文件,因为它们可能处于不一致的状态。请注意,意外事件的意外事件元数据本身仍有效,可以进行查看。

可使用ADRCI(show incident -mode detail)查看意外事件状态,也可以直接在支持工作台中查看。
如果意外事件处于正在收集或就绪状态的时间已超过其保留期长度的两倍,则该意外事件将自动更改为关闭状态。可以手动清除意外事件文件。
为简单起见,由ADR 内部维护问题元数据。问题是在(问题关键字的)第一个意外事件出现时自动创建的。将最后一个意外事件从资料档案库中删除后,问题元数据也会被删除。
注:无法对严重错误禁用自动创建意外事件功能。

意外事件打包服务(IPS)

• 可以使用多条规则,将ADR 中给定问题的所有相关转储与跟踪关联起来,以将其打包发送到Oracle 技术支持。
• 规则可以涉及大概在同一时间生成且与相同客户端、相同错误代码等相关联的文件。
• DBA 可以在打包前显式添加/编辑或删除文件。
• 可通过EM 或ADRCI访问IPS。

意外事件打包服务
通过意外事件打包服务(IPS),您可以自动并轻松地收集与严重错误相关的所有诊断数据(跟踪、转储、健康状况检查报告、SQL 测试案例等),并将数据打包成zip 文件以传送给Oracle 技术支持。因为与严重错误有关的所有诊断数据都使用该错误的意外事件编号进行了标记,所以不必搜索跟踪文件、转储文件等来确定执行分析所需的文件;意外事件打包服务会自动标识所有必需的文件并将其添加到程序包中。

意外事件程序包



意外事件程序包
要将诊断数据上载到Oracle 支持服务,请先收集意外事件程序包中的数据。创建意外事件程序包时,可以选择要添加到意外事件程序包中的一个或多个问题,支持工作台随后自动将与所选问题相关联的意外事件信息、跟踪文件和转储文件添加到意外事件程序包中。
因为一个问题可以有多个意外事件(相同问题多次出现),所以默认情况下只将每个问题的前三个意外事件和后三个意外事件添加到意外事件程序包中。可以在“Incident Packaging Configuration(意外事件打包配置)”页中更改此默认数量,可从“Support Workbench(支持工作台)”页访问此页。
创建意外事件程序包后,可以将任何类型的外部文件添加到意外事件程序包中,也可以从意外事件程序包中删除选定文件,或者编辑意外事件程序包中的选定文件以删除敏感数据。在根据意外事件程序包内容创建物理文件之前,意外事件程序包只是一种逻辑结构,也就是说,意外事件程序包最初只是ADR
中的元数据集合。添加和删除意外事件程序包内容时,只是修改元数据。如果要将数据上载到Oracle 支持服务,可以调用支持工作台或ADRCI函数,以收集元数据引用的所有文件,将其放入zip 文件,然后将该zip 文件上载到MetaLink。

注:默认情况下,ADRCI 在当前目录下生成程序包,而支持工作台在/u01/app/oracle/product/11.1.0/db_1/<hostname_dbname>/sysman/emd/state目录下生成程序包。

EM 支持工作台:概览

• 一个向导,引导您完成处理问题的过程
• 可以使用支持工作台执行下列任务:
– 查看问题和意外事件的详细资料。
– 运行健康状况检查。
– 生成更多的诊断数据。
– 运行指导以帮助解决问题。
– 通过MetaLink 创建和跟踪服务请求。
– 生成意外事件程序包。
– 关闭已解决的问题。

EM 支持工作台:概览
支持工作台是一个Enterprise Manager 向导,可以帮助您完成处理严重错误的过程。它将显示意外事件通知,并提供意外事件详细资料,还允许您选择意外事件以进行进一步的处理。进一步处理包括运行额外的健康状况检查、调用IPS 以将有关意外事件的所有诊断数据打包、将SQL
测试案例和选定用户文件添加到程序包、填写提交给Oracle 技术支持的技术支持请求(TAR)、将打包的意外事件信息发送到Oracle 技术支持,以及在TAR 的整个生命周期内对其进行跟踪。
可以使用支持工作台执行下列任务:
• 查看问题和意外事件的详细资料。
• 手动运行健康状况检查以收集问题的更多诊断数据。
• 生成其它转储和SQL 测试案例以添加到问题的诊断数据中。
• 运行指导以帮助解决问题。
• 通过MetaLink 创建和跟踪服务请求,并将服务请求编号添加到问题数据中。
• 将与一个或多个问题相关的所有诊断数据收集到一个意外事件程序包中,然后将该意外事件程序包上载到Oracle 支持服务。
• 关闭已解决的问题。

Oracle Configuration Manager



Oracle Configuration Manager
Enterprise Manager 支持工作台使用Oracle Configuration Manager 将IPS 生成的物理文件上载到MetaLink。如果未安装或未正确配置Oracle Configuration Manager,上载过程可能会失败。在这种情况下,会显示一条消息,其中包含意外事件程序包zip
文件的路径并请求将该文件手动上载到Oracle 技术支持。可以通过MetaLink 手动上载。
在Oracle Database 11g安装过程中,Oracle Universal Installer 有一个如幻灯片中所示的特殊“Oracle Configuration Manager Registration(Oracle Configuration Manager 注册)”屏幕。在此屏幕中,需要选中“Enable
Oracle Configuration Manager(启用Oracle Configuration Manager)”复选框,接受许可协议,然后才能输入客户标识号(CSI)、MetaLink 帐户用户名和相应国家/地区代码。
如果不配置Oracle Configuration Manager,则仍然可以手动将意外事件程序包上载到MetaLink。

EM 支持工作台流程



EM 支持工作台流程
此图形概述了为了使用Enterprise Manager 支持工作台进行调查、报告以及在某些情况下解决问题而需要完成的任务:
1.首先访问Enterprise Manager 中的数据库主页并查看严重错误预警。选择要查看其详细资料的预警。
2.检查问题详细资料并查看为该问题记录的所有意外事件列表。显示自动运行的所有健康状况检查的查找结果。
3.(可选)运行其它健康状况检查并调用SQL Test Case Builder,以收集所有与SQL 问题相关的必需数据,并将该信息以Oracle 技术支持能再现该问题的方式打包。SQL Test Case Builder 收集的信息类型包括:正在执行的查询、表和索引定义(但没有数据)、优化程序统计信息和初始化参数设置。
4.使用MetaLink 创建服务请求并根据需要记录服务请求编号和问题信息。
5.调用向导以自动将收集的有关问题的所有诊断数据打包并上载到Oracle 技术支持。可以根据需要编辑数据,以在上载前删除敏感信息。
6.(可选)在支持工作台中维护服务请求的活动日志。运行Oracle 指导以帮助修复SQL 故障或损坏的数据。
7.将该问题的某个、某些或所有意外事件的状态设置为“关闭”。

在Enterprise Manager 中查看严重错误预警



在Enterprise Manager 中查看严重错误预警
可通过查看数据库主页中的严重错误预警展开问题(严重错误)的调查过程。要查看严重错误预警,可访问Enterprise Manager 中的数据库主页。在该主页上,可以查看“Diagnostic Summary(诊断概要)”部分,如果存在意外事件,可单击该部分中的“Active
Incidents(活动意外事件)”链接。还可以使用“Alerts(预警)”部分查找标记为意外事件的严重预警。
单击“Active Incidents(活动意外事件)”链接后,可访问“Support Workbench(支持工作台)”页,在此页中可检索有关所有问题和相应意外事件的详细资料,还可以在此页中检索所有健康状况监视器检查运行和创建的程序包。
注:此部分介绍的任务全部基于Enterprise Manager。也可以使用ADRCI命令行实用程序完成这些任务。

查看问题详细资料



查看问题详细资料
在“Support Workbench(支持工作台)”页的“Problems(问题)”子页上,单击要调查的问题的ID。此时将进入相应的“Problem Details(问题详细资料)”页。
在此页上,可以看到与问题相关的所有意外事件。可以将问题与MetaLink 服务请求和bug 号相关联。在此页的“Investigate and Resolve(调查并解决)”部分中,有一个“Self Service(自助)”子页,其中包含直接指向可对此问题执行的操作的链接。在此部分中,“Oracle
Support(Oracle 技术支持)”子页包含直接指向MetaLink 的链接。
“Activity Log(活动日志)”子页显示了到目前为止已对此问题执行的由系统生成的操作。使用此子页,可以在调查问题时添加自己的注释。
在“Incidents(意外事件)”子页中,可以单击相关意外事件ID 以转到相应的“Incident Details(意外事件详细资料)”页。

查看意外事件详细资料



查看意外事件详细资料
打开“Incident Details(意外事件详细资料)”页后,“Dump Files(转储文件)”子页就会显示出来,并列出所有相应转储文件。然后,可以单击一个特定转储文件的眼镜图标来查看文件内容及其各个部分。

查看意外事件详细资料



查看意外事件详细资料(续)
在“Incident Details(意外事件详细资料)”页上,单击“Checker Findings(检查器查找结果)”查看“Checker Findings(检查器查找结果)”子页。此页会显示在检测到严重错误时自动运行的所有健康状况检查的查找结果。大多数情况下,可选择一个或多个查找结果,并调用一个指导来修复问题。

创建服务请求



创建服务请求
在将问题的诊断信息打包并上载到Oracle 技术支持前,必须创建一个服务请求。要创建服务请求,首先需要转到MetaLink。单击该页“Investigate and Resolve(调查并解决)”部分中的“Go to Metalink(转到Metalink)”按钮,即可直接从“Problem
Details(问题详细资料)”页访问MetaLink。打开MetaLink 后,按常规方式登录并创建服务请求。完成后,可选择输入相应问题的服务请求。此项操作是可选操作,仅供参考。
在“Summary(概要)”部分中,单击SR# 标签旁边的“Edit(编辑)”按钮,在打开的窗囗中输入SR#,然后单击“OK(确定)”。

将诊断数据打包并上载到Oracle 技术支持



将诊断数据打包并上载到Oracle 技术支持
支持工作台提供了两种创建和上载意外事件程序包的方法:快速打包方法和定制打包方法。该幻灯片中的示例说明了如何使用快速打包方法。
快速打包是步骤最少、自动化程度最高的一种方法。选择一个问题,提供意外事件程序包名称及说明,然后安排意外事件程序包立即上载或在指定日期和时间上载。支持工作台会自动将与该问题相关的诊断数据放入意外事件程序包中,完成意外事件程序包,创建zip 文件,然后上载该文件。使用此方法时,无法添加、编辑或删除意外事件程序包文件或添加其它诊断数据(如SQL
测试案例)。要将诊断数据打包并上载到Oracle 技术支持,请执行以下操作:
1.在“Problem Details(问题详细资料)”页上的“Investigate and Resolve(调查并解决)”部分中,单击“Quick Package(快速打包)”。此时会显示快速打包向导中的“Create New Package(新建程序包)”页。
2.输入程序包名称及说明。
3.输入标识问题的服务请求号。
4.单击“Next(下一步)”,继续完成快速打包向导的其它页。在“Review(复查)”页上,单击“Submit(提交)”上载该程序包。

跟踪SR 并实施修复



跟踪SR 并实施修复
将诊断信息上载到Oracle 技术支持后,可能需要执行多项活动来跟踪服务请求并实施修复。这些活动包括:
将Oracle Bug 号添加到问题信息中。为此,在“Problem Details(问题详细资料)”页上,单击Bug# 标签旁边的“Edit(编辑)”按钮。此操作仅供参考。
在问题活动日志中添加注释。为此,请完成下列步骤:
1.访问该问题的“Problem Details(问题详细资料)”页。
2.单击“Activity Log(活动日志)”显示“Activity Log(活动日志)”子页。
3. 在“Comment(注释)”字段中输入注释,然后单击“Add Comment(添加注释)”。该注释将记录在活动日志中。
响应Oracle 技术支持的请求,提供更多的诊断信息。Oracle 技术支持代表可能会提供有关收集和上载更多诊断数据的说明。

跟踪SR 并实施修复



跟踪SR 并实施修复(续)
在“Incident Details(意外事件详细资料)”页上,可运行Oracle 指导以实施修复。可从以下位置之一访问建议的指导:
• “Problem Details(问题详细资料)”页的“Investigate and Resolve(调查并解决)”部分中的“Self-Service(自助)”选项卡
• 如该幻灯片所示的“Incident Details(意外事件详细资料)”页的“Checker Findings(检查器查找结果)”子页
用于帮助修复严重错误的指导有:
• 数据恢复指导:损坏的块、损坏或缺失的文件以及其它数据故障
• SQL修复指导:SQL 语句故障

关闭意外事件和问题



关闭意外事件和问题
如果不再关注特定的意外事件,则可将其关闭。默认情况下,“Problem Details(问题详细资料)”上不显示已关闭的意外事件。所有意外事件(无论是否关闭)在30 天后都会被清除。可以在“Incident Details(意外事件详细资料)”页上禁用某个意外事件的清除功能。
要关闭意外事件,请执行以下操作:
1.访问“Support Workbench(支持工作台)”主页。
2.选择所需问题,然后单击“View(查看)”。此时将显示“Problem Details(问题详细资料)”页。
3.选择要关闭的意外事件,然后单击“Close(关闭)”。此时将显示“Confirmation(确认)”页。
4.在“Confirmation(确认)”页上单击“Yes(是)”关闭该意外事件。

意外事件打包配置



意外事件打包配置
如上所述,可以配置保留规则和打包生成的多个方面。使用支持工作台,通过单击“Incident Packaging Configuration(意外事件打包配置)”链接,可从“Support Workbench(支持工作台)”页的“Related Links(相关链接)”部分访问“Incident
Packaging Configuration(意外事件打包配置)”页。可更改以下参数:
• 意外事件元数据的保留期:元数据基本上是关于数据的信息。对于意外事件来说,元数据是指意外事件时间、ID、大小、问题等。数据是指意外事件的实际内容(如跟踪)。
• 包含意外事件的中断期限:此值指定程序包中包含到目前为止的一个时间范围内的意外事件。例如,如果中断日期是90 天,则系统只包括最后90 天内的意外事件。
• 前导意外事件计数:对于程序包中包含的每个问题,系统将根据开头(前导)和结尾(后续)选择问题的一定数量的意外事件。例如,如果该问题包含30 个意外事件,而前导意外事件计数为5 个,后续意外事件计数为4,则系统将包含前5 个意外事件和最后4
个意外事件。
• 后续意外事件计数:请参阅以上内容。

• 相关时间近似值:此参数是精确的时间间隔,用于定义“同时发生”这个概念。存在意外事件/问题与特定意外事件/问题相关联的概念,即问题与所述问题似乎有某种关联。关联的一个标准是时间关联:查找与问题中的意外事件同时发生的意外事件。
• 程序包内容的时间窗囗:包含内容的时间窗口是从第一个所包含的意外事件前的x个小时到最后一个意外事件后的x个小时(x是该字段中指定的数字)。
注:如果使用的是ADRCI界面,则可访问更多参数。要查看所有可能的可配置参数的完整说明,请在ADRCI中发出ips show configuration命令。

定制打包:新建程序包



定制打包:新建程序包
与快速打包相比,定制打包方法的手动操作比较多,但使用这种方法可以更多地控制意外事件程序包内容。可以新建一个包含一个或多个问题的意外事件程序包,也可以将一个或多个问题添加到现有的意外事件程序包。然后,可以对新的或更新过的意外事件程序包执行多项操作,包括:
• 添加或删除问题或意外事件
• 添加、编辑或删除意外事件程序包中的跟踪文件
• 添加或删除任何类型的外部文件
• 添加其它诊断数据(如SQL 测试案例)
• 手动完成意外事件程序包,然后查看意外事件程序包内容,以确定是否必须编辑或删除敏感数据,或者删除文件以减小意外事件程序包大小使用这种定制打包方法,可将创建zip 文件和请求上载到Oracle 技术支持分为两个单独的步骤来执行。可以立即执行其中的每个步骤,也可以安排在将来的某一日期和时间执。

定制打包:新建程序包(续)
要使用定制打包方法来打包和上载问题,请执行以下操作:
1.在“Support Workbench(支持工作台)”主页底部的“Problems(问题)”子页中,选择要打包的第一个问题,然后单击“Package(程序包)”。
2.在“Package: Select packaging mode(程序包:选择打包模式)”子页上,选择“Custom Packaging(定制打包)”选项,然后单击“Continue(继续)”。
3.此时将显示“Custom Packaging: Select Package(定制打包:选择程序包)”页。要新建意外事件程序包,请选择“Create New Package(新建程序包)”选项,输入意外事件程序包名称及说明,然后单击“OK(确定)”。要将选定问题添加到现有的意外事件程序包中,请选择“Select
from Existing Packages(从现有的程序包中选择)”选项,选择要更新的意外事件程序包,然后单击“OK(确定)”。在前一幻灯片提供的示例中,您决定新建一个程序包。

定制打包:处理意外事件程序包



定制打包:处理意外事件程序包
在“Customize Package(定制程序包)”页上,可看到新程序包已创建的确认消息。
此页显示了意外事件程序包中包含的意外事件,以及可选择的打包任务。可对新意外事件程序包或更新过的现有意外事件程序包运行这些任务。
正如在幻灯片中看到的,可以排除/包括意外事件或文件以及许多其它可能的任务。

定制打包:完成意外事件程序包



定制打包:完成意外事件程序包
使用完成意外事件程序包步骤可以向程序包中添加其它组件(如健康状况监视器)中的相关文件。该程序包还包含最新的跟踪文件和日志文件。
如此幻灯片中所示,可通过单击“Packaging Tasks(打包任务)”部分中的“Finish Contents Preparation(完成内容准备)”链接完成程序包。此时将显示“confirmation(确认)”页,其中列出了将包含在物理程序包中的所有文件。

定制打包:生成程序包



定制打包:生成程序包
完成意外事件程序包后,可生成程序包文件。需要返回到相应的程序包页,单击“Generate Upload File(生成上载文件)”。
此时将显示“Generate Upload File(生成上载文件)”页。在此页上,选择“Full(完全)”或“Incremental(增量)”选项以生成完全意外事件程序包zip 文件或增量意外事件程序包zip 文件。
对于完全意外事件程序包zip 文件,系统始终将意外事件程序包(原始内容和所有相关数据)的所有内容添加到zip 文件。
对于增量意外事件程序包zip 文件,系统仅将自上次为同一意外事件程序包创建zip 文件后出现的新或修改过的诊断信息添加到zip 文件。
完成后,选择“Schedule(调度)”,并单击“Submit(提交)”。如果立即安排生成,则将显示“Processing(正在处理)”页,直到打包过程完成。随后将显示“Confirmation(确认)”页,可在该页中单击“OK(确定)”。
注:如果从未为意外事件程序包创建物理文件,则“Incremental(增量)”选项不可用。

定制打包:上载程序包



定制打包:上载程序包
生成物理程序包后,可以返回至“Customize Package(定制程序包)”页,然后在“Packaging Tasks(打包任务)”部分中单击“View/Send Uploaded Files(查看/发送上载的文件)”链接。
此时将转到“View/Send Upload Files(查看/发送上载的文件)”页,可在此页中选择程序包,然后单击“Send to Oracle(发送到Oracle)”按钮。
此时会显示“Send to Oracle(发送到Oracle)”页。可以在此页中输入问题的服务请求号并选择一个调度。然后,可单击“Submit(提交)”。

查看和修改意外事件程序包



查看和修改意外事件程序包
创建程序包后,始终可以通过定制选项对其进行修改。
例如,转到“Support Workbench(支持工作台)”页,然后单击“Packages(程序包)”选项卡。此时将转到“Packages(程序包)”子页。在此页中,可以选择一个程序包并将其删除,也可以单击程序包链接转到“Package Details(程序包详细资料)”页。然后,单击此页上的“Customize(定制)”转到“Customize
Package(定制程序包)”页,在该页中可通过增加/删除问题、意外事件或文件来处理该程序包。

创建用户报告的问题



创建用户报告的问题
系统会将数据库内部生成的严重错误自动添加到自动诊断资料档案库(ADR),并在支持工作台中对其进行跟踪。但是,有时您希望手动将观察到的问题添加到ADR,以让支持工作台工作流对此问题进行处理。例如,在数据库或特定查询的性能突然出现明显的降低时。支持工作台包括一种机制,可供您创建和处理此类用户报告的问题。
要创建用户报告的问题,请打开“Support Workbench(支持工作台)”页,然后单击“Related Links(相关链接)”部分中的“Create User-Reported Problem(创建用户报告的问题)”链接。此时将转到“Create User-Reported
Problem(创建用户报告的问题)”页,在此页中,您需要运行相应的指导,然后才能继续执行操作。只有对问题不确定时,才需要运行指导。但是,如果完全了解要发生的情况,则可选择代表了所遇到的大多数问题类型的问题,并单击“Continue
with Creation of Problem(继续创建问题)”。
单击此按钮通常会在支持工作台中创建一个伪问题。这样便会使用之前见到的用于处理严重错误的支持工作台工作流处理此问题。因此,最后会显示针对您的问题的“Problem Details(问题详细资料)”页。请注意,起初此问题没有任何与其关联的诊断数据。此时,需要创建一个程序包并通过定制此程序包上载所需的跟踪文件。前面的内容中已对此进行了介绍。

使用ADRCI调用IPS



使用ADRCI调用IPS
创建程序包的过程包括两个步骤:首先创建逻辑程序包,然后生成zip 文件形式的物理程序包。这两个步骤均可以使用ADRCI命令执行。要创建逻辑程序包,请使用IPSCREATE PACKAGE命令。此命令有一些变体,您可以用来选择内容:
• IPS CREATE PACKAGE用于创建空的程序包。
• IPS CREATE PACKAGE PROBLEMKEY用于创建基于问题关键字的程序包。
• IPS CREATE PACKAGE PROBLEM用于创建基于问题ID 的程序包。
• IPS CREATE PACKAGE INCIDENT用于创建基于意外事件ID 的程序包。
• IPS CREATE PACKAGE SECONDS用于创建包含从数秒前到现在为止这个时间间隔内生成的所有意外事件的程序包。
• IPS CREATE PACKAGE TIME用于创建基于指定时间范围的程序包。
也可以向现有程序包添加内容。例如:
• IPS ADD INCIDENT PACKAGE用于将意外事件添加到现有程序包。
• IPS ADD FILE PACKAGE用于将ADR 中的文件添加到现有程序包。

IPC COPY可在ADR 和外部文件系统之间复制文件。它有两种形式:
• IN FILE,可将外部文件复制到ADR 中,将其与现有程序包(也可以是意外事件)相关联
• OUT FILE,可将文件从ADR 复制到ADR 之外的位置
IPS COPY本质上用于COPY OUT文件、编辑文件和将其重新COPY IN到ADR 中。IPS FINALIZE用于完成程序包以进行传送,这意味着要调用其它组件(如健康状况监视器)以将其相关文件添加到程序包。该程序包还包含最新的跟踪文件和日志文件。如果需要,此步骤可在生成程序包时自动运行。
要生成物理文件,请使用IPS GENERATE PACKAGE命令。语法为:
IPS GENERATE PACKAGE IN [COMLPETE | INCREMENTAL]
此命令将为现有逻辑程序包生成物理zip 文件。文件名中包含COM(代表complete)或INC(代表incremental),后跟一个在每次生成zip 文件时都会递增的序列号。IPS SET CONFIGURATION用于设置IPS 规则。

健康状况监视器:概览



健康状况监视器:概览
从版本11g开始,Oracle DB 将包含称为健康状况监视器的框架,用于对数据库的各个组件运行诊断检查。
健康状况监视器将检查数据库的各个组件(包括文件、内存、事务处理完整性、元数据和进程使用情况)。这些检查器将生成查找结果报表以及解决问题的建议。健康状况监视器检查可按两种方式运行:
• 被动:故障可诊断性基础结构可以自动运行健康状况监视器检查以对严重错误做出响应。
• 手动:DBA 可以使用DBMS_HMPL/SQL 程序包或Enterprise Manager 界面手动运行健康状况监视器检查。
此幻灯片中显示了健康状况监视器可以运行的部分检查。有关所有可能检查的完整描述,请查看V$HM_CHECK。这些健康状况检查分为两个类别:
• DB 联机:可以在数据库打开(即处于OPEN模式或MOUNT模式)时运行这些检查。
• DB 脱机:除在数据库打开时是“可运行的”以外,这些检查还可在实例可供使用及数据库本身已关闭(即处于NOMOUNT模式)时运行。

检查器运行后,将生成一个执行报告。此报告包含有关检查器查找结果的信息,包括查找结果的优先级(低、高或严重)、查找结果及其后果的说明,以及关于执行的基本统计信息。健康状况监视器可生成XML 格式的报表并将其存储在ADR 中。可使用V$HM_RUN、DBMS_HM、ADRCI或Enterprise
Manager查看这些报表。
注:可以运行的检查大约有20 项:



手动运行健康状况检查:EM 示例



手动运行健康状况检查:EM 示例
Enterprise Manager 提供了运行健康状况监视器检查的界面。可以在“Advisor Central(指导中心)”页上的“Checker(检查器)”选项卡中发现此界面。此页列出了每种检查器类型,可以单击一个检查器来运行它,然后在输入运行参数后单击相应检查器页上的“OK(确定)”。此幻灯片显示了如何手动运行数据块检查器。完成检查后,可以从“Results(结果)”表中选择检查器运行并单击“Details(详细资料)”,以查看相应检查器运行的详细资料。检查器运行可以是被动的也可以是手动的。
在“Findings(查找结果)”子页上,可以看到从V$HM_RUN、V$HM_FINDING和V$HM_RECOMMENDATION提取的各种查找结果和相应建议。
如果在“Runs(运行)”子页上单击“View XML Report(查看XML 报告)”,则可看到XML 格式的运行报告。如果ADR 中尚未生成该XML 报告,则在Enterprise Manager 中查看该报告时会首次生成它。然后,可以使用ADRCI查看此报告,而无需生成它。

手动运行健康状况检查:PL/SQL 示例



手动运行健康状况检查:PL/SQL 示例
可以使用DBMS_HM.RUN_CHECK过程运行健康状况检查。要调用RUN_CHECK,请提供在V$HM_CHECK中找到的检查的名称、运行名称(这就是稍后用于检索报告的标签)和控制其执行的一组相应的输入参数。可使用V$HM_CHECK_PARAM查看这些参数。
在此幻灯片的示例中,您希望为TAB$表运行字典完整性检查。您调用此DICOCHECK 运行,而且不希望为此检查设置任何超时。
执行DICOCHECK后,将执行DBMS_HM.GET_RUN_REPORT函数以获得从V$HM_RUN、V$HM_FINDING和V$HM_RECOMMENDATION中提取的报告。输出明确地显示了在TAB$中发现了严重错误。此表包含一个条目,表明一个表具有无效的列数。此外,此报告还提供TAB$中损坏的表的名称。
调用GET_RUN_REPORT函数时,会在ADR的HM目录中生成XML 报告文件。在此示例中,该文件称为HMREPORT_DicoCheck.hm。

使用ADRCI实用程序查看HM 报告



使用ADRCI实用程序查看HM 报告
可以使用ADRCI实用程序创建和查看健康状况监视器检查报告。要执行该操作,请确保操作系统环境变量(如ORACLE_HOME)设置正确,然后在操作系统命令提示符下输入以下命令:adrci。
该实用程序会启动,并显示如幻灯片中所示的提示符。可以选择更改当前的ADR 主目录。使用SHOW HOMES命令列出所有ADR 主目录,然后使用SET HOMEPATH命令更改当前的ADR 主目录。
然后,可以输入SHOW HM_RUN命令列出ADR 中注册的且在V$HM_RUN中可以看到的所有检查器运行。找到要为其创建报告的检查器运行,记下使用相应RUN_NAME字段的检查器运行名称。如果此检查器运行的报告已存在,则REPORT_FILE字段中将包含一个文件名。否则,可以使用CREATE
REPORT HM_RUN命令生成报告,如幻灯片中所示。要查看报告,请使用SHOW REPORT HM_RUN命令。

SQL 修复指导:概览



SQL 修复指导:概览
如果SQL 语句因出现在ADR 中生成问题的严重错误而失败,可以运行SQL 修复指导。此指导将对语句进行分析,多数情况下会建议一个补丁程序来修复语句。如果实施此建议,则应用的SQL 补丁程序将让查询优化程序选择将来执行的备用执行计划,以此来避免故障。这可以在不更改SQL
语句的情况下完成。
注:如果SQL 修复指导未找到解决方法,您仍然可以打包意外事件文件并将相应的诊断数据发送到Oracle 技术支持。

使用EM 访问SQL 修复指导



使用EM 访问SQL 修复指导
从Enterprise Manager 访问SQL 修复指导的方法主要有两种。
第一种方法,也是最简单的方法,就是当您在数据库主页的“Diagnostic Summary(诊断概要)”部分中得到预警时可以访问SQL 修复指导。SQL 语句崩溃时会在ADR 中生成意外事件,之后系统将自动通过“Active Incidents(活动意外事件)”字段向您发出预警。可单击相应的链接进入“Support
Workbench Problems(支持工作台问题)”页,在该页中可以单击相应的问题ID 链接。此时将转到“Problem Details(问题详细资料)”页,可在该页中单击“Investigate
and Resolve(研究并解决)”部分中的“SQL Repair Advisor(SQL 修复指导)”链接。

使用EM 访问SQL 修复指导



使用EM 访问SQL 修复指导(续)
如果SQL 语句崩溃意外事件不再处于活动状态,则始终可以转到“Advisor Central(指导中心)”页,在该页中可单击“SQL Advisors(SQL 指导)”链接,然后在“SQL Advisors(SQL 指导)”页的“SQL Advisors(SQL 指导)”部分中选择“Click
here to go to Support Workbench(单击此处转至支持工作台)”链接。这样,您可直接访问“Problem Details(问题详细资料)”页,并在此页的“Investigate and Resolve(调查并解决)”部分中单击“SQL
Repair Advisor(SQL 修复指导)”链接。
注:要在出现非意外事件SQL 故障的情况下访问SQL 修复指导,可以转到“SQL Details(SQL 详细资料)”页或转到“SQL Worksheet(SQL 工作表)”。

从EM 使用SQL 修复指导



从EM 使用SQL 修复指导
在“SQL Repair Advisor: SQL Incident Analysis(SQL 修复指导:SQL 意外事件分析)”页上,指定“Task Name(任务名称)”、“Task Description(任务说明)”和“Schedule(调度)”。完成后,单击“Submit(提交)”以安排SQL
诊断分析任务。
如果指定立即执行,则会出现“Processing: SQL Repair Advisor Task(正在处理:SQL 修复指导任务)”页,其中显示了执行任务的各个步骤。

从EM 使用SQL 修复指导



从EM 使用SQL 修复指导(续)
执行SQL 修复指导任务后,您会转到该任务的“SQL Repair Results(SQL 修复结果)”页。在此页上,可以查看相应的“Recommendations(建议案)”部分,尤其在生成了用于解决问题的SQL 补丁程序时。如幻灯片中所示,可以选择要对其应用生成的SQL 补丁程序的语句并单击“View(查看)”。此时将转到“SQL
ID 修复建议案”页,在此页中,可在选择相应的“Findings(查找结果)”后单击“Implement(实施)”,要求系统实施SQL 修补。您随后会得到一条确认实施的消息,并可再次执行SQL 语句。

从PL/SQL 使用SQL 修复指导:示例



从PL/SQL 使用SQL 修复指导:示例
也可以直接从PL/SQL 调用SQL 修复指导。
在得到有关意外事件SQL 故障的预警后,可以使用幻灯片中所示的DBMS_SQLDIAG.CREATE_DIGNOSIS_TASK函数执行SQL 修复指导任务。需要指定要对其进行分析的SQL 语句以及要分析的任务名称和问题类型(可能的值为PROBLEM_TYPE_COMPILATION_ERROR和PROBLEM_TYPE_EXECUTION_ERROR)。
然后,可以使用DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER过程提供所创建的任务参数。
准备就绪后,可以使用DBMS_SQLDIAG.EXECUTE_DIAGNOSIS_TASK过程执行任务。
最后,可以使用DBMS_SQLDIAG.REPORT_DIAGNOSIS_TASK函数获得任务报告。
在此幻灯片提供的示例中,假定报告要求实施SQL 修补以解决问题。然后,可以使用DBMS_SQLDIAG.ACCEPT_SQL_PATCH过程实施SQL 修补。

查看、禁用或删除SQL 补丁程序



查看、禁用或删除SQL 补丁程序
使用SQL 修复指导应用SQL 补丁程序后,您可能希望进行查看以确认其是否存在,然后禁用或删除它。如果安装了更高版本的Oracle DB,以解决在未经过修补的SQL 语句中导致故障的问题,则可以删除补丁程序。
要查看、禁用/启用或删除SQL 补丁程序,请访问Enterprise Manager 中的“Server(服务器)”页,并在此页的“Query Optimizer(查询优化程序)”部分中单击“SQL Plan Control(SQL 计划控制)”链接。此时将转到“SQL Plan
Control(SQL 计划控制)”页。在此页上,单击“SQL Patch(SQL 补丁程序)”选项卡。
在出现的“SQL Patch(SQL 补丁程序)”子页中,通过检查相关联的SQL 语句找到所需的补丁程序。选择补丁程序并执行相应的任务:禁用、启用或删除。

使用SQL Test Case Builder



使用SQL Test Case Builder
使用SQL Test Case Builder,可以自动执行费力又耗时的信息收集过程,以收集尽可能多的关于SQL 相关问题及问题发生环境的信息,这样Oracle 技术支持就能够再现问题并对其进行测试。SQL Test Case Builder 收集的信息包括正在执行的查询、表和索引定义(并非实际数据)、PL/SQL
函数、过程和程序包、优化程序统计信息和初始化参数设置。
要从“Support Workbench(支持工作台)”页访问SQL Test Case Builder,请执行以下操作:
1.单击相应的问题ID 打开问题详细资料页。
2.单击“Oracle Support(Oracle 技术支持)”选项卡。
3.单击“Generate Additional Dumps and Test Cases(生成附加转储和测试案例)”。
4.在“Additional Dumps and Test Cases(附加转储和测试案例)”页上,单击“Go To Task(转到任务)”列中的图标以针对特定意外事件ID 运行SQL Test Case Builder。SQL Test Case Builder 的输出是一个SQL
脚本,其中包含重新创建所有必要对象和环境所需的命令。

注:也可以使用DBMS_SQLDIAG.EXPORT_SQL_TESTCASE_DIR_BY_INC函数调用SQL Test Case Builder。此函数会获取意外事件ID 以及目录对象。它为指定目录中的相应意外事件生成输出。

数据恢复指导

• Oracle DB 提供了可以修复问题的强大工具。
– 丢失的文件、损坏的块等
• 分析基本问题和选择正确的解决方案所需的时间通常是停机时间的最大组成部分。
• 指导会根据故障现象对故障进行分析。
– 例如,“打开失败”是由于数据文件缺失
• 它会明智地确定修复策略。
– 聚集故障以进行高效修复
— 例如,如果存在许多损坏的块,则还原整个文件
– 只显示可行的修复选项
— 是否有备份?
— 是否有备用数据库?
– 按修复时间和数据丢失排列
• 指导可自动执行修复。
智能的解决方法:数据恢复指导
数据恢复指导:Enterprise Manager 与数据库健康状况检查和RMAN 集成在一起来显示数据损坏问题、评估问题程度(严重、高优先级或低优先级)、描述问题的影响、建议修复选项、对客户选择的选项进行可行性检查以及自动执行修复过程。

小结

• 设置自动诊断资料档案库
• 使用支持工作台
• 运行健康状况检查
• 使用SQL 修复指导
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: