环境:RHEL 6.4 + Oracle 11.2.0.4

1. 设置ADR

2. 使用Support Workbench

3. 恢复块介质

Reference

1. 设置ADR

## 1.1 查看v$diag_info ##

查看v$diag_info诊断库相关信息:

col value for a70
col name for a35
set linesize 140
select * from v$diag_info; SQL> select * from v$diag_info; INST_ID NAME VALUE
---------- ----------------------------------- ----------------------------------------------------------------------
1 Diag Enabled TRUE
1 ADR Base /opt/app/oracle11
1 ADR Home /opt/app/oracle11/diag/rdbms/vas/vas
1 Diag Trace /opt/app/oracle11/diag/rdbms/vas/vas/trace
1 Diag Alert /opt/app/oracle11/diag/rdbms/vas/vas/alert
1 Diag Incident /opt/app/oracle11/diag/rdbms/vas/vas/incident
1 Diag Cdump /opt/app/oracle11/diag/rdbms/vas/vas/cdump
1 Health Monitor /opt/app/oracle11/diag/rdbms/vas/vas/hm
1 Default Trace File /opt/app/oracle11/diag/rdbms/vas/vas/trace/vas_ora_10952.trc
1 Active Problem Count 2
1 Active Incident Count 17 11 rows selected.

1.2 ADRCI工具

ADR完全基于文件系统,可以使用ADRCI查询ADR的内容,还可以将事件和问题信息打包在可以发送给Oracle Support部门的ZIP压缩文件中。

$ adrci

ADRCI: Release 11.2.0.4.0 - Production on Thu Dec 31 10:57:51 2015

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

ADR base = "/oradata/app/oracle"
adrci> help HELP [topic]
Available Topics:
CREATE REPORT
ECHO
EXIT
HELP
HOST
IPS
PURGE
RUN
SET BASE
SET BROWSER
SET CONTROL
SET ECHO
SET EDITOR
SET HOMES | HOME | HOMEPATH
SET TERMOUT
SHOW ALERT
SHOW BASE
SHOW CONTROL
SHOW HM_RUN
SHOW HOMES | HOME | HOMEPATH
SHOW INCDIR
SHOW INCIDENT
SHOW PROBLEM
SHOW REPORT
SHOW TRACEFILE
SPOOL There are other commands intended to be used directly by Oracle, type
"HELP EXTENDED" to see the list adrci>

2. 使用Support Workbench

## 2.1 手工构造一则ORA-00600错误 ##
```
SQL> alter user jingyu identified by values '';
alter user jingyu identified by values ''
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kzsviver:1], [], [], [], [], [],
[], [], [], [], [], []
```
可以在EM中,打包问题 -> 快速打包 -> 创建新程序包 -> 查看内容 -> 查看清单 -> 调度
已成功生成程序包 ORA600kzs_20151231145006 的上载文件。
该上载文件位于 [/oradata/app/oracle/product/11.2.0/dbhome_1/ChinaUnicomDB_shitan/sysman/emd/state/ORA600kzs_20151231145006_COM_1.zip]。
请将其手动发送到 Oracle。
我们来看下这个压缩文件打包了哪些文件:
```
$ unzip ORA600kzs_20151231145006_COM_1.zip
Archive: ORA600kzs_20151231145006_COM_1.zip
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/IPS_CONFIGURATION.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/IPS_PACKAGE.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/IPS_PACKAGE_INCIDENT.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/IPS_PACKAGE_FILE.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/IPS_PACKAGE_HISTORY.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/IPS_FILE_METADATA.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/IPS_FILE_COPY_LOG.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/DDE_USER_ACTION_DEF.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/DDE_USER_ACTION_PARAMETER_DEF.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/DDE_USER_ACTION.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/DDE_USER_ACTION_PARAMETER.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/DDE_USER_INCIDENT_TYPE.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/DDE_USER_INCIDENT_ACTION_MAP.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/INCIDENT.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/INCCKEY.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/INCIDENT_FILE.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/PROBLEM.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/HM_RUN.dmp
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/export/EM_USER_ACTIVITY.dmp
inflating: diag/rdbms/shitan/shitan/incident/incdir_5097/shitan_ora_27456_i5097.trm
inflating: diag/rdbms/shitan/shitan/incident/incdir_5097/shitan_ora_27456_i5097.trc
inflating: diag/rdbms/shitan/shitan/trace/shitan_ora_27456.trc
inflating: diag/rdbms/shitan/shitan/trace/shitan_ora_27456.trm
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/manifest_1_1.xml
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/manifest_1_1.html
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/manifest_1_1.txt
inflating: diag/rdbms/shitan/shitan/alert/log.xml
inflating: diag/rdbms/shitan/shitan/trace/alert_shitan.log
inflating: diag/rdbms/shitan/shitan/trace/shitan_mmon_18549.trc
inflating: diag/rdbms/shitan/shitan/trace/shitan_mmon_18549.trm
inflating: diag/rdbms/shitan/shitan/trace/shitan_ora_18600.trc
inflating: diag/rdbms/shitan/shitan/trace/shitan_ora_18600.trm
inflating: diag/rdbms/shitan/shitan/trace/shitan_lgwr_18541.trc
inflating: diag/rdbms/shitan/shitan/trace/shitan_lgwr_18541.trm
inflating: diag/rdbms/shitan/shitan/trace/shitan_diag_18531.trc
inflating: diag/rdbms/shitan/shitan/trace/shitan_diag_18531.trm
inflating: diag/rdbms/shitan/shitan/trace/shitan_dbrm_18533.trc
inflating: diag/rdbms/shitan/shitan/trace/shitan_dbrm_18533.trm
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/config.xml
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/crs/crsdiag.log
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/opatch/opatch.log
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/opatch/opatch.xml
inflating: diag/rdbms/shitan/shitan/incpkg/pkg_1/seq_1/metadata.xml
inflating: metadata.xml
```
## 2.2 使用HM(Health Monitor) ##
```
col name for a50
select id, name, offline_capable from v$hm_check order by id;
```

3. 恢复块介质

在RMAN备份命令,ANALYZE命令,dbv操作系统命令以及尝试访问受损块的SQL查询,都会找到坏块后填充v$database_block_corruption视图。

SQL> select * from v$database_block_corruption;

如果Oracle检测到受损块,它将在EM主页和警报日志中注册ORA-01578错误.错误消息包含坏块的绝对文件编号和块编号。例如:

ORA-01578: ORACLE data block corrupted (file # 5, block # 403)
ORA-01110: data file 5: '/oradata/data/SHITAN/datafile/o1_mf_dbs_d_ji_c7q2vg1x_.dbf'

通常,引起损坏的原因是操作系统或磁盘硬件故障,如存在故障的I/O硬件或固件、操作系统缓存问题、内存或分页问题或磁盘修复实用程序引发的错误。

-- 恢复5号数据文件的第403个块
RMAN> recover datafile 5 block 403;
-- 恢复v$database_block_corruption视图中记录的所有坏块
RMAN> recover corruption list;

DRA使用相关可参考:

Reference

- OCP 认证考试指南 (1Z0-053)[M]. 清华大学出版社, 2010.

Oracle配置数据库诊断的更多相关文章

  1. oracle配置数据库可恢复性(认证系列总结一)

    原创作品,转载请注明出处:https://www.cnblogs.com/sunshine5683/p/10263246.html 接下来的n多天,将进入oracle认证系列的学习总结中,本该从asm ...

  2. 新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序

    新建一个oracle数据库时,当提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序等字样的时候,问题是那个监听的服务没有启动,解决方法如下: 打开cmd命 ...

  3. oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell

    <1,>仅安装数据库软件不配置数据库 ./x86oracle.sh /ruiy/ocr/DBSoftware/app/oracle /ruiy/ocr/DBSoftware/app/ora ...

  4. ORACLE 配置连接远程数据库

    ORACLE配置tnsnames.ora文件实例 客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames ...

  5. 在oracle配置mysql数据库的dblink

    本文介绍如何在oracle配置mysql数据库的dblink:虽然dblink使用很占资源:俗称“性能杀手”.但有些场景不得不使用它.例如公司使用数据库是oracle:可能其他部门或者CP合作公司使用 ...

  6. sqldbx配置连接Oracle 12C数据库

    本地开发环境: Windows10 64位.Oracle 12C客户端 32位.sqlDBX (32位) =============================================== ...

  7. Oracle ADDM性能诊断利器及报告解读

    性能优化是一个永恒的话题,性能优化也是最具有价值,最值得花费精力深入研究的一个课题,因为资源是有限的,时间是有限的.在Oracle数据库中,随着Oracle功能的不断强大和完善,Oralce数据库在性 ...

  8. Oracle创建数据库

    Oracle创建数据库有三种方式:一.使用DBCA(Database Configuration Assistant 数据库配置助手):二.使用 create database指令:三.在安装数据库软 ...

  9. ORACLE配置tnsnames.ora文件实例

    ORACLE配置tnsnames.ora文件实例客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames. ...

随机推荐

  1. 如果你想真正了解Struts2,不妨可以进来看看

    首先我们就一起来认识认识Struts2到底是什么?作为框架,它又是用来处理哪些问题的呢?正所谓脚踏实地走,即时离梦想会远一点,但却很真实,那我们就一步一步的来了解Struts2吧!      一.既然 ...

  2. C语言两种查找方式(分块查找,二分法)

    二分法(必须要保证数据是有序排列的):   分块查找(数据有如下特点:块间有序,块内无序):    

  3. Sage Crm 权限原理分析

    文字是11年写的,贴出来共享一下,先来一张表结构图: 一.区域.表名:[territories] 1.我们先来看看区域表的结构. 从图中前面都是不能为空的字段,都是很重要的.来介绍一下这些字段: Te ...

  4. 最近在新公司的一些HTML学习

    还是先把代码贴在这  后期再写感想 <!DOCTYPE html> <head> <meta http-equiv="x-ua-compatible" ...

  5. Mysql 行列转换

    一.第一种 原数据表 转换后 DROP TABLE IF EXISTS tempdynamic; CREATE TEMPORARY TABLE tempdynamic ( SELECT p.fsPay ...

  6. ASP.NET Core 数据保护(Data Protection)【中】

    前言 上篇主要是对 ASP.NET Core 的 Data Protection 做了一个简单的介绍,本篇主要是介绍一下API及使用方法. API 接口 ASP.NET Core Data Prote ...

  7. (翻译)《Hands-on Node.js》—— Why?

    事出有因 为何选择event loop? Event Loop是一种推进无阻塞I/O(网络.文件或跨进程通讯)的软件模式.传统的阻塞编程也是用一样的方式,通过function来调用I/O.但进程会在该 ...

  8. 如何调试ANDROID下面黑屏问题

    最近很多朋友在问,为毛在WINDOWS下对了,跑ANDROID的虚拟机或者真机就黑屏了, 有的是只有FPS信息,有的是连FPS信息都没有.如果是程序能够正常启动,不会闪退,但显示不对. 那十有八九都是 ...

  9. ASP.NET MVC Module

    ASP.NET MVC Module 前言 在ASP.NET中管道模型是怎么来实现的?在请求处理流程一文中大概的讲述了Http Module和HttpApplication之间的关系,而并没有涉及到H ...

  10. IM消息送达保证机制实现(二):保证离线消息的可靠投递

    1.前言 本文的上篇<IM消息送达保证机制实现(一):保证在线实时消息的可靠投递>中,我们讨论了在线实时消息的投递可以通过应用层的确认.发送方的超时重传.接收方的去重等手段来保证业务层面消 ...