ORACLE文件之警告文件(alert file)

Oracle警告文件是数据库的日记,记录了数据库的运行状态。它位于ADR Home目录下,有两种形式:alert_orcl.log文本文件和log.xml XML文件。可以通过创建外部表来查询文本文件内容,以便分析数据库的启动、关闭时间以及其他重要信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

警告文件(也称警告日志)就是数据库的日记,是个简单的文本文件,从数据库创建那一天就开始编写该文件。

ALERT FILE的位置:

>select name,value from v$diag_info; -- v$diag_info是oracle 11g新增的视图

NAME                 VALUE
-------------------- --------------------------------------------------
Diag Enabled         TRUE
ADR Base             /u01/app/oracle
ADR Home             /u01/app/oracle/diag/rdbms/orcl/orcl
Diag Trace           /u01/app/oracle/diag/rdbms/orcl/orcl/trace
Diag Alert           /u01/app/oracle/diag/rdbms/orcl/orcl/alert
Diag Incident        /u01/app/oracle/diag/rdbms/orcl/orcl/incident
Diag Cdump           /u01/app/oracle/diag/rdbms/orcl/orcl/cdump

ALERT FILE有两个版本:
  
1.位于/u01/app/oracle/diag/rdbms/orcl/orcl/trace下的 alert_orcl.log 文本文件形式
 2.位于/u01/app/oracle/diag/rdbms/orcl/orcl/alert下的 log.xml 的XML文件格式

ALERT FILE的查看方法:
  
对于XML文件格式的可以使用一些工具转换生成报告
对于文本文件格式,可以创建一个external table来查询查看:
>create or replace directory data_dir        
 as
 '/u01/app/oracle/diag/rdbms/orcl/orcl/trace';--文本文件alert file所在目录

>create table alert_log
 ( text_line varchar2(255) )
 organization external
 (
  type oracle_load
  default directory data_dir
  access parameters
  (
   records delimited by newline
   fields
  )
  location ( 'alert_orcl.log' )  
 )

这样我们就可以随时查看了:
>select to_char(last_time,'yyyy-mm-dd HH24:MI:SS') shutdown,
       to_char(start_time,'yyyy-mm-dd HH24:MI:SS') startup,
       round((start_time-last_time)*24*60,2) mins_down,
       round((last_time-lag(start_time) over (order by r)),2) days_up,
       case when (lead(r) over (order by r) is null)
            then round((sysdate-start_time),2)
       end days_still_up
from(
      select r,
             to_date(last_time,'Dy Mon DD HH24:MI:SS YYYY') last_time,
             to_date(start_time,'Dy Mon DD HH24:MI:SS YYYY') start_time
      from(
            select r,
                   text_line,
                   lag(text_line,1) over (order by r) start_time,
                   lag(text_line,2) over (order by r) last_time
            from(
                  select rownum r,text_line
                  from alert_log
                  where text_line like '___ ___ __ __:__:__ 20__'
                  or    text_line like 'Starting ORACLE instance %'
                )
          )
       where text_line like 'Starting ORACLE instance %'
    )

SHUTDOWN                  S   TARTUP                MINS_DOWN         DAYS_UP               DAYS_STILL_UP
-------------------               -----------------------------       ----------                -------------                    --------------
                                     2013-01-24 00:48:45
2013-01-24 00:53:17   2013-01-24 00:53:17             0                              0
2013-01-24 00:53:35   2013-01-24 00:53:35             0                              0
2013-01-24 00:56:23   2013-01-24 00:56:23             0                              0
2013-01-24 01:00:21   2013-01-24 01:00:33            .2                              0
2013-01-24 01:04:48   2013-01-24 05:57:52         293.07                         0

当然这只是一个思路,alert file里有许多内容,可以参照相关文档了解,这样你就很容易写出查询语句来查看你所需要的信息了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值