当前位置:数据库 > Oracle >>

Oracle数据库诊断文件(日志)查看

Oracle数据库诊断文件(日志)查看
 
Diagnostic File(诊断文件)
1:诊断文件的作用
Diagnostic files :
包含了后台遇见重大事件的信息。
被用于解析问题,
被用于日常管理日志文件。
2:诊断文件日志的分类
分为两类:
   1: alterSID.log
                               -----background trace files (后台进程跟踪文件)
    2: trace files ---
                               -----user trace file (用户trace 文件)
 1:对于Background trace files文件的命名:
命名方式: SID_processname_PID.trc  对应解释  SID_进程名_进程号.trc
 
2:   对于user trace files 的文件命名为:
SID_ora_PID.trc  解释: SID_ora_进程号.trc
 
3:对于 alertSID.log 说明:
 这个文件是为了记录: 1:记录一些操作命令
                                      2:记录主要事件的结果
                                      3:以及日常的操作信息
                                      4:被用于诊断数据库错误
每一个entry 都有一个time stamp(时间戳)和它关联
该文件必须被ORACLE DBA管理
这个文件的位置在:  BACKGROUND_DUMP_DEST
通过 show parameter dump 查看这个文件的位置:
 
这个文件中也包含数据库的启动信息相当于pfile或者spfile的内容。
用管理员登录: 
 
2:下面是实战操作:
首先用sysdba登录后执行:
[sql] 
SQL> show parameter dump  
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
background_core_dump                 string      partial  
background_dump_dest                 string      d:\app\topwqp\diag\rdbms\orcl\  
                                                 orcl\trace  
core_dump_dest                       string      d:\app\topwqp\diag\rdbms\orcl\  
                                                 orcl\cdump  
max_dump_file_size                   string      unlimited  
shadow_core_dump                     string      none  
user_dump_dest                       string      d:\app\topwqp\diag\rdbms\orcl\  
                                                 orcl\trace                       
可以看到这些文件的路径信息。
根据显式的信息我找到我的文件位置:
目录结构如下:
 
 
下面说一下如何才能记录信息到这些日志文件,需要一些开关,如果不开,记录的只是
一点点信息而已:
两种方式 能够让用户tracing
 
 
1:session 级别的:
使用如下命令:
ALTER SESSSION SET SQL_TRACE = TRUE
第二种是执行如下存储过程:
dbms_system.SET_SQL_TRACE_IN_SESSION
 
 
第二个方式是 instance级别的:
设置初始化参数:  SQL_TRACE = TRUE
 
 
一般采用session级别的。因为设置instance级别的容易造成log文件过大;
 
 
可以通过alterSID.log文件中的信息制作pfile 或者spfile文件启动
数据库。
 
下面采用session级别的修改sql_trace为true即可在user_dump_dest中对应文件中看到相应的信息。
[sql] 
SQL> conn /as  sysdba  
已连接。  
SQL> alter session set sql_trace = true;  
  
会话已更改。  
 
执行过后:查看
orcl_ora_7188.trc文件信息 PS:如果不知道哪个文件就把这个目录下的全部删除,再执行sql就会看到生成的文件:
查看这个文件信息如下:
很详细的执行信息:
比如一个语句为:select * from dual
这个文件中会生成如下信息:
[plain] 
*** 2013-06-13 22:58:20.776  
=====================  
PARSING IN CURSOR #1 len=18 dep=0 uid=0 oct=3 lid=0 tim=9184375464 hv=942515969 ad='232363f8' sqlid='a5ks9fhw2v9s1'  
select * from dual  
END OF STMT  
PARSE #1:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184375458  
EXEC #1:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184376205  
FETCH #1:c=0,e=109,p=0,cr=3,cu=0,mis=0,r=1,dep=0,og=1,tim=9184376423  
STAT #1 id=1 cnt=1 pid=0 pos=1 obj=115 op='TABLE ACCESS FULL DUAL (cr=3 pr=0 pw=0 time=0 us cost=2 size=2 card=1)'  
FETCH #1:c=0,e=2,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=9184376893  
 
是对这个sql的执行的详细解读分析
 
下面贴上今天的部分执行的信息:
[plain] 
*** 2013-06-13 22:58:20.776  
=====================  
PARSING IN CURSOR #1 len=18 dep=0 uid=0 oct=3 lid=0 tim=9184375464 hv=942515969 ad='232363f8' sqlid='a5ks9fhw2v9s1'  
select * from dual  
END OF STMT  
PARSE #1:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184375458  
EXEC #1:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184376205  
FETCH #1:c=0,e=109,p=0,cr=3,cu=0,mis=0,r=1,dep=0,og=1,tim=9184376423  
STAT #1 id=1 cnt=1 pid=0 pos=1 obj=115 op='TABLE ACCESS FULL DUAL (cr=3 pr=0 pw=0 time=0 us cost=2 size=2 card=1)'  
FETCH #1:c=0,e=2,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=9184376893  
  
*** 2013-06-13 23:15:15.474  
=====================  
PARSING IN CURSOR #1 len=289 dep=0 uid=0 oct=3 lid=0 tim=10199053291 hv=2462394820 ad='232017e0' sqlid='7cfz5wy9caaf4'  
SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number',        6,'big integer', 'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER(:NMBIND_SHOW_OBJ) ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM  
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,