oracle数据库:数据文件_笔记6
3.3警告文件
警告文件(警告日志)就是数据库的日记。这是一个简单的文本文件,从数据库创建那一天起就会编写该文件,直到数据库被删除为止。在这个文件中,可以看到数据库的“编年史”,包括日志开关;可能出现的内部错误;表空间何时创建、离线以及恢复为在线,等等。这是一个查看数据库历史的极其有用的文件。我喜欢让警告文件尽量增长,直到非常大了才会对其“编卷”(归档)。
通过EXTERNAL TABLE可以查询警告日志,并了解其中有什么。每次启动数据库时警告日志里都会产生几条记录:
Wed Sep 04 20:30:45 2013
Starting ORACLE instance (normal)
这是一个时间戳记录(定宽格式),还有一条消息:Starting ORACLE instance。在这些记录前面,可能有一个ALTER DATABASE CLOSE消息(正常关闭期间)或者一个异常中止的消息,也可能“什么也没有”,没有消息,意味着系统崩溃了。但是只要有消息,就肯定有相关的某个时间戳。
如果做到以下几条,就能很容易地生成一个正常运行报告。
.收集所有Starting ORACLE instance %之类的记录
.收信所有与日期格式匹配的记录(实际上就是日期)
.将每个Starting ORACLE instance记录与前面的两个记录相关联(前面的两个记录应该是日期)
以下代码创建一个外部表,以便查询警告日志
sys@ORCL>create or replace
2 directory data_dir
3 as
4 '/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace'
5 /
Directory created.
sys@ORCL>drop table alert_log;
Table dropped.
sys@ORCL>CREATE TABLE alert_log
2 (
3 text_line varchar2(255)
4 )
5 ORGANIZATION EXTERNAL
6 (
7 TYPE ORACLE_LOADER
8 DEFAULT DIRECTORY data_dir
9 ACCESS PARAMETERS
10 (
11 records delimited by newline
12 fields
13 )
14 LOCATION
15 (
16 'alert_orcl.log'
17 )
18 )
19 /
Table created.
这样任何时间都能查询这些信息了
1 select to_char(last_time,'dd-mon-yyyy hh24:mi') shutdown,
2 to_char(start_time,'dd-mon-yyyy hh24:mi') startup,
3 round((start_time-last_time)*24*60,2) mins_down,
4 round((last_time-lag(start_time) over (order by r)),2) days_up,
5 case when (lead(r) over (order by r) is null)
6 then round((sysdate-start_time),2)
7 end days_still_up
8 from (
9 select r,
10 to_date(last_time,'Dy Mon DD HH24:MI:SS YYYY') last_time,
11 to_date(start_time,'Dy Mon DD HH24:MI:SS YYYY') start_time
12 from (
13 select r,
14 text_line,
15 lag(text_line,1) over (order by r) start_time,
16 lag(text_line,2) over (order by r) last_time
17 from(
18 select rownum r,text_line
19 from alert_log
20 where text_line like '___ ___ __ __:__:__ 20__'
21 or text_line like 'Starting ORACLE instance %'
22 )
23 )
24 where text_line like 'Starting ORACLE instance %'
25* )
SHUTDOWN
------------------------------------------------------------------------------
STARTUP MINS_DOWN DAYS_UP
------------------------------------------------------------------------------ ---------- ----------
DAYS_STILL_UP
-------------
04-sep-2013 20:30
04-sep-2013 20:30 .08
04-sep-2013 20:36
04-sep-2013 20:45 8.88 0
.42
11g中除了使用一个外部表查询警告日志,还可以ADRCI工具轻松地查看警告日志。利用这个工具可以查找、编辑(查阅)和监视(警告日志中出现新记录时交互地显示出新记录)日志。另外,11g及以上版本中的警告日志有两个版本——老版本和XML版本。
sys@ORCL>select value from v$diag_info where name='Diag Alert';
VALUE
----------------------------------------------------------------------------------------------------
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/alert
sys@ORCL>!ls /home/oracle/app/oracle/diag/rdbms/orcl/orcl/alert
log.xml
sys@ORCL>!head /home/oracle/app/oracle/diag/rdbms/orcl/orcl/alert/log.xml
<msg time='2013-06-20T11:48:35.078+08:00' org_id='oracle' comp_id='rdbms'
msg_id='dbkrlCheckSuppressAlert:325:7003611' type='NOTIFICATION' group='startup'
level='16' host_id='vcenteroracle' host_addr='172.16.40.252'
pid='12148' version='1'>
<txt>Adjusting the default value of parameter parallel_max_servers
</txt>
</msg>
<msg time='2013-06-20T11:48:35.078+08:00' org_id='oracle' comp_id='rdbms'
msg_id='dbkrlCheckSuppressAlert:325:3095001245' type='NOTIFICATION' group='startup'
level='16' host_id='vcenteroracle' host_addr='172.16.40.252'
http://blog.csdn.net/wanglipo/article/details/7105136
oracle中LAG()和LEAD()等分析统计函数的用法(统计月增长率)
http://blog.163.com/yanenshun@126/blog/static/128388169201242094928438/
外表(external table)(转)
http://www.52ij.com/jishu/5150.html
oracle数据库:数据文件_笔记5
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5151.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
