跟踪文件 Oracle跟踪文件分为三种类型: 1:警告日志文件。记录了数据库启动、运行、关闭时的活动情况。当数据库出现问题时,首先要查看该文件,文件名为alert_sid.log 2:后台跟踪文件。记录了oracle后台进程的运行状况,名称为sid_processname_processid.t

跟踪文件

Oracle跟踪文件分为三种类型:

1:警告日志文件。记录了数据库启动、运行、关闭时的活动情况。当数据库出现问题时,首先要查看该文件,文件名为alert_sid.log

2:后台跟踪文件。记录了oracle后台进程的运行状况,名称为sid_processname_processid.trc,存储目录为BACKGROUND_dump_dest

3:用户跟踪文件。记录了连接到数据库的用户进程的运行信息,名称为SID_ORA_PROCESSID.TRC,存储目录为USER_DUMP_DEST.

在oracle11g中,这三种文件位于同一目录下:

跟踪事件

设置跟踪事件,会导致oracle将与该事件有关的信息转储到跟踪文件中。依据设置事件的方式,可以将跟踪事件分为2类:PROCESS-EVENT(通过初始化参数文件设置的事件)、SESSION-EVENT(通过alter session set events或者alter system set events设置的时间)。要使PROCESS-EVENT事件生效,必须重新启动数据库实例,PROCESS-EVENT事件会影响连接到数据库的每一个用户进程。在参数文件中设置多个事件可以采用“:”分隔符,如event="event1:event2:event3"。也可以依次设置多个event,如:

event="event1"

event="event2" (注意,在event1和event2之间不要存在其他参数,否则只有最后的event即event2生效)。

对不同的跟踪事件,oracle会产生不同的行为,根据行为的不同,我们大致可以将跟踪事件分为4类:

1.转储oracle中的某部分内容,如数据块、控制文件内容等。转储活动会在收到跟踪事件命令的同时执行。这类事件不可以通过参数文件进行设置。

2.跟踪错误信息。设置这类事件,oracle会将特定错误的堆栈信息转储到跟踪文件中。

3.更改oracle的执行路径。这类事件会影响oracle代码段的执行路径,例如10269事件,会促使smon进程停止对free-space的合并操作。

4.跟踪进程的相关信息。例如10046事件和10053事件。该类事件会将进程上下文中的特定信息转储到跟踪文件中。

语法格式

altersystem|sessionsetevents ‘[eventnumber|immediate]trace name eventname[forever][,level levelnumber]: …….’

通过:符号,可以连续设置多个事件,也可以通过连续使用alter session set events来设置多个事件。

格式说明:eventnumber指触发dump的事件号,事件号可以是Oracle错误号或oralce内部事件号,内部事件号在10000到10999之间,不能与immediate关键字同用;immediate关键字表示命令发出后,立即将指定的结构dump到跟踪文件中,这个关键字只用在alter

session语句中,并且不能与eventnumber、forever关键字同用。trace name是关键字。eventname指事件名称(见后面),即要进行dump的实际结构名。若eventname为context,则指根据内部事件号进行跟踪。forever关键字表示事件在实例或会话的周期内保持有效状态,不能与immediate同用。level为事件级别关键字。但在dump错误栈(errorstack)时不存在级别。levelnumber表示事件级别号,一般从1到10,1表示只dump结构头部信息,10表示dump结构的所有信息。

对于alter session设置的事件,仅仅只对当前session有效。对于alter system 设置的事件,除对当前session有效外,对新登录的session同样有效,但是对于alter system命令执行之前打开的session是无效的。

IMMEDIATE相关的事件

一.Memory Dumps

1).Global Area

Alter SESSION SET EVENTS 'immediate trace name global_area level n';

1 包含PGA

2 包含SGA

4 包含UGA

8 包含indrect memory

2).Library Cache

Alter SESSION SET EVENTS 'immediate trace name library_cache level n';

1 library cache统计信息

2 包含hash table histogram

3 包含object handle

4 包含object结构(Heap 0)

3).Row Cache

Alter SESSION SET EVENTS 'immediate trace name row_cache level n';

1 row cache统计信息

2 包含hash table histogram

8 包含object结构

4).Buffers

Alter SESSION SET EVENTS 'immediate trace name buffers level n';

1 buffer header

2 level 1 + block header

3 level 2 + block contents

4 level 1 + hash chain

5 level 2 + hash chain

6 level 3 + hash chain

8 level 4 + users/waiters

9 level 5 + users/waiters

10 level 6 + users/waiters

5).Buffer

Alter SESSION SET EVENTS 'immediate trace name buffer level n';

n为某个指定block的rdba,该命令可以转储某个block在buffer中的所有版本。

6).Heap

Alter SESSION SET EVENTS 'immediate trace name heapdump level level';

1 PGA摘要

2 SGA摘要

4 UGA摘要

8 Current call(CGA)摘要

16 User call(CGA)摘要

32 Large call(LGA)摘要

1025 PGA内容

2050 SGA内容

4100 UGA内容

8200 Current call内容

16400 User call内容

32800 Large call内容

7).Sub Heap

oracle 9.0.1版本之前

Alter SESSION SET EVENTS 'immediate trace name heapdump_addr level n';

若n为subheap的地址,转储的是subheap的摘要信息

若n为subheap的地址+1,转储的则是subheap的内容

oracle 9.2.0版本之后

Alter SESSION SET EVENTS 'immediate trace name heapdump_addr level n, addr m';

其中m为subheap的地址

n为1转储subheap的摘要,n为2转储subheap的内容

8).Process State

Alter SESSION SET EVENTS 'immediate trace name processstate level n';

9).System State

Alter SESSION SET EVENTS 'immediate trace name systemstate level n';

10).Error State

Alter SESSION SET EVENTS 'immediate trace name errorstack level n';

0 Error stack

1 level 0 + function call stack

2 level 1 + process state

3 level 2 + context area

11).Hang Analysis

Alter SESSION SET EVENTS 'immediate trace name hanganalyze level n';

12).Work Area

Alter SESSION SET EVENTS 'immediate trace name workareatab_dump level n';

1 SGA信息

2 Workarea Table摘要信息

3 Workarea Table详细信息

13).Latches

Alter SESSION SET EVENTS 'immediate trace name latches level n';

1 latch信息

2 统计信息

14).Events

Alter SESSION SET EVENTS 'immediate trace name events level n';

1 session

2 process

3 system

15).Locks

Alter SESSION SET EVENTS 'immediate trace name locks level n';

16).Shared Server Process

Alter SESSION SET EVENTS 'immediate trace name shared_server_state level n';

n取值为1~14

17).Background Messages

Alter SESSION SET EVENTS 'immediate trace name bg_messages level n';

n为pid+1

二.File Dumps

1).Block

oracle 7之前

Alter SESSION SET EVENTS 'immediate trace name blockdump level n';

n为block的rdba

oracle8以后

Alter SYSTEM DUMP DATAFILE file# BLOCK block#;

Alter SYSTEM DUMP DATAFILE file#

BLOCK MIN minimum_block#

BLOCK MAX maximum_block#

2).Tree Dump 查看索引的结构

Alter SESSION SET EVENTS 'immediate trace name treedump level n';

n为object_id

object_id可以从select object_id from user_objects where object_name = '索引的名字'得到。

3).Undo Segment Header 查看回滚段头部信息

Alter SYSTEM DUMP UNDO_HEADER 'segment_name';

4).Undo for a Transaction

Alter SYSTEM DUMP UNDO BLOCK 'segment_name' XID xidusn xidslot xidsqn;

5).File Header

Alter SESSION SET EVENTS 'immediate trace name file_hdrs level n';

1 控制文件中的文件头信息

2 level 1 + 通用文件头信息

3 level 2 + 数据完整文件头信息

10 level 3

6).Control file

Alter SESSION SET EVENTS 'immediate trace name controlf level n';

1 控制文件中的文件头信息

2 level 1 + 数据库信息+检查点信息

3 level 2 + 可重用节信息

10 level 3

7).Redo log Header

Alter SESSION SET EVENTS 'immediate trace name redohdr level n';

1 控制文件中的redo log信息

2 level 1 + 通用文件头信息

3 level 2 + 完整日志文件头信息

10 level 3

8).Redo log

Alter SYSTEM DUMP LOGFILE 'FileName';

Alter SYSTEM DUMP LOGFILE 'FileName'

SCN MIN MinimumSCN

SCN MAX MaximumSCN

TIME MIN MinimumTime

TIME MAX MaximumTime

LAYER Layer

OPCODE Opcode

DBA MIN FileNumber . BlockNumber

DBA MAX FileNumber . BlockNumber

RBA MIN LogFileSequenceNumber . BlockNumber

RBA MAX LogFileSequenceNumber . BlockNumber;

其中time = (((((yyyy - 1988)) * 12 + mm - 1) * 31 + dd - 1) * 24 + hh) * 60 + mi) * 60 + ss;

详细内容请看:http://blog.csdn.net/yidian815/article/details/12568027

9).Loghist

Alter SESSION SET EVENTS 'immediate trace name loghist level n';

n=1 dump控制文件中最早和最迟的日志历史项

n>1 dump 2^n个日志历史项

获取诊断事件号

大部分的诊断事件的数值都是在10000至10999范围内,使用如下的脚本可以查看到所有的诊断事件:

SET SERVEROUTPUT ON

DECLARE

err_msg VARCHAR2(120);

BEGIN

dbms_output.enable (1000000);

FOR err_num IN 10000..10999

LOOP

err_msg := SQLERRM (-err_num);

IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN

dbms_output.put_line (err_msg);

END IF;

END LOOP;

END;

相关的PLSQL包

DBMS_MONITOR包

Subprogram

Description

CLIENT_ID_STAT_DISABLE

Procedure

Disables statistic gathering previously enabled for a given Client Identifier

CLIENT_ID_STAT_ENABLE

Procedure

Enables statistic gathering for a given Client Identifier

CLIENT_ID_TRACE_DISABLE

Procedure

Disables the trace previously enabled for a given Client Identifier globally for the database

CLIENT_ID_TRACE_ENABLE

Procedure

Enables the trace for a given Client Identifier globally for the database

DATABASE_TRACE_DISABLE

Procedure

Disables SQL trace for the whole database or a specific instance

DATABASE_TRACE_ENABLE

Procedure

Enables SQL trace for the whole database or a specific instance

SERV_MOD_ACT_STAT_DISABLE

Procedure

Disables statistic gathering enabled for a given combination of Service Name, MODULE and ACTION

SERV_MOD_ACT_STAT_ENABLE

Procedure

Enables statistic gathering for a given combination of Service Name, MODULE and ACTION

SERV_MOD_ACT_TRACE_DISABLE

Procedure

Disables the trace for ALL enabled instances for a or a given combination of Service Name, MODULEand ACTION name globally

SERV_MOD_ACT_TRACE_ENABLE

Procedure

Enables SQL tracing for a given combination of Service Name, MODULE and ACTION globally unless aninstance_name is specified

SESSION_TRACE_DISABLE

Procedure

Disables the previously enabled trace for a given database session identifier (SID) on the local instance

SESSION_TRACE_ENABLE Procedure

Enables the trace for a given database session identifier (SID) on the local instance

与该包相关的还包括几个视图:v$client_stats\V$SERV_MOD_ACT_STATS。

client_id 可以通过DBMS_SESSION.SET_IDENTIFIER来设置。

DBMS_SYSTEM包

关于该包的详细信息,请参照:http://blog.csdn.net/yidian815/article/details/12580659

另外,我们还可以使用ORADEBUG工具。如

对一个进程设置诊断事件:

ORADEBUG EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level

禁用设置的诊断事件:

ORADEBUG EVENT event TRACE NAME CONTEXT OFF

对一个会话设置诊断事件:

ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level

禁用设置的诊断事件:

ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT OFF

查看当前SESSION设置的事件

SET SERVEROUTPUT ON

DECLARE

l_level NUMBER;

BEGIN

FOR l_event IN 10000..10999

LOOP

dbms_system.read_ev (l_event,l_level);

IF l_level > 0 THEN

dbms_output.put_line ('Event '||TO_CHAR (l_event)||

' is set at level '||TO_CHAR (l_level));

END IF;

END LOOP;

END;

其他注意事项

确定使用的诊断事件对于当前的Oracle数据库版本是合法的:因为对于不同版本的Oracle数据库来说,诊断事件的含义和用法都有所不同。

确定使用的诊断事件允许设定的级别,在很多时候设定的级别不同是会影响到诊断事件所代表的行为的。

在INITSID.ORA文件中设置的任何诊断事件,如果Oracle数据库需要升级,一定要提前注释或者取消。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql 事件跟踪_ORACLE 事件跟踪相关推荐

  1. mysql的事件探查器_用SQL Server事件探查器创建跟踪

    SQL Server事件探查器(Profiler)可以帮助数据库管理员跟踪SQL Server数据库所执行的特定事件,监视数据库的行为;并将这些有价值的信息保存到文件或表,以便以后用来分析解决数据库出 ...

  2. 用MS SQL Server事件探查器来跟踪数据库的操作

    在MS SQL Server中,除了我们常用的企业管理器和查询分析器之外,还有一个非常有用的工具--事件探查器.由于这两天,我需要知道一个ASP.NET程序对某个数据库的哪些表进行了哪些操作,所以才发 ...

  3. SQL Server 默认跟踪 -- 捕获事件详解

    SQL Server 默认跟踪 -- 捕获事件详解 哪些具体事件默认跟踪文件能够捕获到? --returns full list of events SELECT * FROM sys.trace_e ...

  4. oracle 怎么使用跟踪,Oracle 10046跟踪事件使用方法

    1.开启10046跟踪事件 alter session set events '10046 trace name context forever, level 12'; 如果想更容易标识trace文件 ...

  5. mysql等待事件类型_Oracle中常见的33个等待事件小结

    在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的相关信息 一. 等待事件的相关知识 1.1 等待事件主要可以分为两 ...

  6. mysql数据库什么是事件_MySQL数据库之mysql 事件(Event) 总结

    本文主要向大家介绍了MySQL数据库之mysql 事件(Event) 总结 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1 事件简介 事件(event)是MySQL在相应的时 ...

  7. mysql事件定时_MySQL事件(定时任务)

    what's the MySQL 事件 MySQL5.1 版本开始引进 event 概念,MySQL 中的事件(event:时间触发器)是用于执行定时或周期性的任务,类似 Linux 中的 cront ...

  8. mysql 数据库event_mysql数据库事件调度(Event)

    Oracle数据库监控软件(简称Oracle监控或Oracle监控软件)是企事业单位中最重要的监控需要,通过对Oracle数据库的监控,可以全面了解Oracle的运行状态.数据库响应情况.数据库表空用 ...

  9. mysql 事件统计_mysql事件统计之PERFORMANCE_SCHEMA基础详解

    概述 MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数.并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引 ...

最新文章

  1. html5游戏变速,深入游戏变速底层原理以及内核变速的实现
  2. spark官方文档_Apache Spark 文档传送门
  3. Android--高德地图自动定位
  4. C语言指出下列程序的错误,2012年计算机二级C语言精编教程第二章(8)
  5. pycharm 波浪线报绿 Typo: In word 'xxxx'(绿色波浪线)
  6. linux 产生0~3之间的随机数
  7. React学习:生命周期、过滤器、event、axios-学习笔记
  8. 多方法调用 一个出错 集体回滚_一个@Transaction哪里来这么多坑?
  9. python 实现SOM:代码注释与应用示例
  10. 软件需求说明书-总务办公管理系统
  11. java实现上传文件
  12. Java之while循环基本使用
  13. ubuntu截图快捷方式
  14. 如何下载ScienceDirect(Elsevier)文献的补充材料
  15. 跨国族群布里亚特的特殊“年味儿”
  16. 大学物理实验计算机仿真 光电效应,大学物理实验报告模版
  17. php utc时间_php如何设置utc时区
  18. 陈婉芬老师的精髓金玉良言----相信篇,观念篇
  19. 【SQL】之存储过程与函数
  20. 玩转ECS第6讲 | 弹性计算 Region 化部署和跨可用区容灾介绍

热门文章

  1. 互联网如何颠覆这些我们熟知的17个行业!
  2. 「AI芯片公司」比特大陆的路线图上,除了四款TPU还有在这三个产业落地的野心
  3. 透视变换完成目标跟踪物体速度测试
  4. Tensorflow去掉warning
  5. 微信小游戏 :未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译
  6. 桌面图标注册表对应项
  7. leetcode刷题:292. Nim 游戏(Java)
  8. 使用 VS 2008 编译 ECW SDK 3.3
  9. Unicode 索引表,编码表,编码范围
  10. 数加生产制造执行系统(MES)——优势