Oracle诊断文件(11g)

诊断文件简介

  • 为了方便Oracle管理员维护和诊断Oracle系统,Oracle 11g引入了自动诊断资料库(ADR)。
  • ADR是一个基于文件的资料库,其中存储了数据库的诊断数据,这些数据包括如追踪、卸载的事件、报警日志和健康监督报告等。
  • ADR对于安装的多个Oracle实例和多个Oracle产品具有一个统一的目录结构,而且存储在任何数据库之外。因此,在数据库关闭情况下ADR仍然可以访问以进行问题的诊断。

DIAGNOSTIC_DEST参数

  • Oracle 11g使用这个参数取代早期版本中的三个参数USER_DUMP_DEST、BACKGROUND_DUMP_DEST、CORE_DUMP_DEST。
  • 从Oracle 11g开始,所有追踪信息存放的默认位置都由该参数定义。
  • ADR的位置也是由该参数所设定的。
--通过DIAGNOSTIC_DESC参数查看ADR的根目录。
	show parameter diagnostic_dest
  • Oracle 11g会产生两个报警文件:一个是文本格式的,一个是XML格式的。
  • Oracle 11g不再区分前台和后台追踪文件,都存放在 A D R H O M E / t r a c e 目 录 中 ; 致 命 的 错 误 ( c r i t i c a l e r r o r ) 信 息 则 是 存 放 在 ADR_HOME/trace目录中;致命的错误(critical error)信息 则是存放在 ADRHOME/trace(criticalerror)ADR_HOME/incident目录中。
--通过v$diag_info视图查看ADR目录结构的细节。
	select name, value from v$diag_info;
  • Diag Trace:为存放文本格式的报警文件和前台或后台进程追踪文件的位置。
  • Diag Alert:为存放XML格式的报警文件的位置。
  • Default Trace File:为存放会话的追踪文件的路径,SQL追踪文件也存在此地。

利用诊断文件来监督实例

  • 诊断文件是一种获取数据库信息的重要工具。
  • 它包含了数据库系统运行过程中所遇到的重大事件的有关信息,被用来解决实例所遇到的问题,帮助在日常工作中更好地管理数据库。
  • 有3种常见的诊断文件:
    报警文件(Alert log file)
    后台进程追踪文件(Background trace files)
    用户进程追踪文件(User trace files)

报警文件

  • 报警文件中包含数据库日常操作的信息,存放在由BACKGROUND_DUMP_DEST参数所定义的目录下,一般命名为alert_.log。
  • 该文件必须由数据库管理员来管理。
  • 作为一名合格的数据库管理员,应该要每天查看报警文件,以获取数据库的诊断或出错信息。一般从下往上查看,也可以利用报警文件的提示到追踪文件中查找更详细的信息。
--查看报警文件的存储位置
	show parameter background_dump_dest
--或者
	select value from v$parameter
	where name = 'background_dump_dest';
  • 报警文件中记录的信息包括:
    数据库启动或关闭的时间;
    所有非默认初始化参数;
    LGWR正在写的日志序列号;
    日志的切换信息;
    所执行的ALTER语句;
    创建的表空间和还原段等。

    其中,每一记录项都有与之相关的时间戳。

  • 查看报警文件的内容示例。
    1、首先,以DBA用户依次执行下列语句,修改表空间状态。

	alter tablespace users read only;

	alter tablespace users read write;

2、然后,打开报警文件,移动到文件末尾查看该文件记录的内容。
在这里插入图片描述

后台进程追踪文件

  • 后台进程追踪文件记录由任何一个后台进程(如LGWR、SMON等)所探测到的错误。
  • 这些文件是当一个后台进程遇到错误时才创建,它们可被用来进行诊断和排错,同报警文件存放在同一个目录中,也存放在由 BACKGROUND_DUMP_DEST参数定义的目录下。
  • 其大小由 MAX_DUMP_FILE_SIZE参数来定义,默认为UNLIMITED。

用户进程追踪文件

  • 用户进程追踪文件是由用户进程创建,也可以由服务器进程产生。它们包含了用来追踪SQL语句的统计信息和用户的错误信息。
  • 这些文件是当一个用户(进程)遇到用户会话错误时创建的,存放在由 USER_DUMP_DEST参数来定义的目录下。
  • 其大小由 MAX_DUMP_FILE_SIZE参数来定义,默认为UNLIMITED。
  • 如果想让Oracle服务器产生用户追踪文件,需要修改Oracle的一个参数:SQL_TRACE。
  • 该参数是一个动态参数,既可以在会话一级修改,也可以在实例一级修改。

开启或终止用户进程追踪

  • 会话级(Session level)
--开启用户(进程)追踪:
	ALTER SESSION SET SQL_TRACE = TRUE;
--终止用户 (进程)追踪:
	ALTER SESSION SET SQL_TRACE = FALSE;
  • 实例级(Instance level)
--开启用户(进程)追踪可以通过在初始化参数文件中修改SQL_TRACE参数值来实现:
	SQL_TRACE = TRUE

建议:
尽量不要在实例一级开启用户(进程)追踪。
即使在会话一级开启用户(进程)追踪,等追踪结束后也应尽快关闭追踪。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要恢复Oracle 11g数据库中的dbf文件,有几个步骤需要遵循。 首先,确定哪个dbf文件需要恢复。可以通过检查数据库的日志文件或使用Oracle Enterprise Manager来确定数据库中的故障或损坏的dbf文件。 然后,停止数据库实例以进行恢复操作。可以使用SQL*Plus工具连接到数据库服务器,并使用SHUTDOWN IMMEDIATE命令停止实例。 接下来,创建一个新的控制文件来指向缺失的dbf文件。可以使用SQL*Plus工具连接到数据库,并使用ALTER DATABASE BACKUP CONTROLFILE TO TRACE命令创建一个跟踪文件。 然后,编辑刚创建的跟踪文件,将其中的缺失dbf文件路径替换为正确的路径。最后,使用SQL*Plus工具连接到数据库,并使用STARTUP MOUNT命令启动数据库实例,并使用ALTER DATABASE OPEN命令将数据库实例打开。 完成这些步骤后,数据库实例将尝试自动恢复缺失的dbf文件。如果文件在备份中可用,将会使用备份进行恢复。如果没有备份,可以尝试使用Oracle Recovery Manager(RMAN)工具进行恢复。 使用RMAN工具可以执行以下命令来恢复缺失的dbf文件: RECOVER DATAFILE '<dbf文件路径>'; 这将尝试从备份中恢复缺失的dbf文件。如果找不到备份,可能需要联系数据库管理员或使用其他数据恢复工具进行进一步的恢复尝试。 总之,要恢复Oracle 11g数据库中的dbf文件,需要确定缺失的文件、创建新的控制文件并进行路径替换,然后尝试使用备份或数据恢复工具进行恢复操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值