Oracle警告、跟踪文件(10046、死锁等跟踪)

时间:2022-08-29 17:42:45

跟踪文件由各个后台进程生成,警报日志中记录关键操作包括:
    ·所有启动和关闭命令,包括中间命令,如alter database mount
    ·实例的所有内部错误(ORA-600错误,只能报告给Oracle Support解决)
    ·任何检测到的数据文件块损坏情况
    ·任何已经发生的死锁
    ·影响数据库物理结构的所有操作,如创建或重命名数据文件和联机重做日志
    ·调整内部参数值的alter system命令
    ·所有日志开关和日志归档文件

以Oracle死锁为例:

确定警告日志文件的存放目录

SQL>show parameter dump_dest

Oracle警告、跟踪文件(10046、死锁等跟踪)

详细的trc日志如下:

*** 2015-12-15 08:47:31.756
DEADLOCK DETECTED ( ORA-00060 ) [Transaction Deadlock] The following deadlock is not an ORACLE error. It is a
deadlock due to user error in the design of an application
or from issuing incorrect ad-hoc SQL. The following
information may aid in determining the deadlock: Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-000a000d-0009fdf2 31 745 X 34 817 X
TX-000b0012-00064744 34 817 X 31 745 X session 745: DID 0001-001F-001BA3CC session 817: DID 0001-0022-000E48FD
session 817: DID 0001-0022-000E48FD session 745: DID 0001-001F-001BA3CC Rows waited on:
Session 745: obj - rowid = 0001B049 - AAAbBJAAHAAEN4SAAF
(dictionary objn - 110665, file - 7, block - 1105426, slot - 5)
Session 817: obj - rowid = 0001B049 - AAAbBJAAHAAEN4SAAE
(dictionary objn - 110665, file - 7, block - 1105426, slot - 4) ----- Information for the OTHER waiting sessions -----
Session 817:
sid: 817 ser: 32301 audsid: 7129480 user: 93/LC019999
flags: (0x100045) USR/- flags_idl: (0x1) BSY/-/-/-/-/-
flags2: (0x40009) -/-/INC
pid: 34 O/S info: user: SYSTEM, term: PERFTESTDB66, ospid: 21068
image: ORACLE.EXE (SHAD)
client details:
O/S info: user: Administrator, term: WANGZG-INSPUR, ospid: 2736:11836
machine: WORKGROUP\WANGZG-INSPUR program: plsqldev.exe
application name: PL/SQL Developer, hash value=1190136663
action name: SQL 窗口 - 新建, hash value=2127054360
current SQL:
update tableName
set name
= 'tkk1215'
where xxxxxxxxxxxxxxx
----- End of information for the OTHER waiting sessions ----- Information for THIS session: ----- Current SQL Statement for this session (sql_id=01yxw4cmbqgg3) -----
update tableName
set name
= 'xyy1215'
where xxxxxxx
===================================================

SQL语句跟踪
1.用户级自我跟踪

alter session set sql_trace=true;

在同一个session中执行SQL语句,将会产生跟踪文件sid_ora_spid.trc(spid为系统进程id):

/u01/app/oracle/diag/rdbms/sid/sid/trace/sid_ora_spid.trc

2.系统级跟踪

    alter system set sql_trace=true scope=memory;

在任何session中执行SQL语句,产生跟踪文件sid_ora_spid.trc(spid为系统进程id):

/u01/app/oracle/diag/rdbms/sid/sid/trace/sid_ora_spid.trc

alter system set sql_trace=false scope=memory;

3.用户级的DBA跟踪

使用Oracle的PL/SQL包DBMS_SYSTEM

(1)从session性能视图中查出用户的sid和serial#.

    select s.username,s.sid,s.serial#,p.spid,s.program
from v$session s,v$process p
where s.paddr = p.addr
and s.username is not null
and p.background is null;

USERNAME                              SID    SERIAL# SPID                     PROGRAM

------------------------------ ---------- ---------- ------------------------ -----------------------------

SYSTEM                                 13      35114  9172                     plsqldev.exe

SYSTEM                                248      32295  9225                     plsqldev.exe

SYS                                       14      36202  9111                     sqlplus@gymvm (TNS V1-V3)

(2)跟踪用户会话

exec sys.dbms_system.set_sql_trace_in_session(248, 32295, true);

在任何id为248的session中执行SQL语句,产生跟踪文件sid_ora_spid.trc(spid为系统进程id):

/u01/app/oracle/diag/rdbms/sid/sid/trace/sid_ora_9225.trc

(3)停止跟踪

exec sys.dbms_system.set_sql_trace_in_session(248, 32295, false);

(4) 10046/10053是Oracle提供的内部事件,是对SQL_TRACE的增强

    10046事件可以设置以下四个级别:
    1 - 启用标准的SQL_TRACE功能,等价于sql_trace
    4 - Level 1 加上绑定值(bind values)
    8 - Level 1 + 等待事件跟踪
    12 - Level 1 + Level 4 + Level 8

    alter session set tracefile_identifier = 'tkk0114';
   alter session set events '10046 trace name context forever, level 12';
   alter session set events '10046 trace name context off';

   exec sys.dbms_system.set_ev(9, 437, 10046, 12, 'tkk0114');

     exec sys.dbms_system.set_ev(9, 437, 10046, 0, 'tkk0114');

    ALTER SESSION SET EVENTS '10053 trace name context forever, level 1';
    ALTER SESSION SET EVENTS '10053 trace name context off';

如果你用的是其他用户来执行dbms_system,则可以这样:
         sqlplus 'sys/pass as sysdba'
         SQL>grant execute on dbms_system to <your_username>;

4.SQL_TRACE跟踪SQL语句执行情况的内容
    ·解析、执行、取数据的计数

·CPU时间和占用时间

·物理读和逻辑读

·处理行数目

·所解析的用户名

·每次提交和回滚的情况.

5.格式化10046跟踪文件(tkprof)

    使用tkprof程序可以将跟踪文件转化成可以阅读的文本文件,tkprof语法:

tkprof tracefile outputfile [explain=user/password] [table=schema.tablename] 
                                [print=integer] [insert= ] [sys= ] [sort= ] ...

$ tkprof tracefile outputfile

Oracle警告、跟踪文件(10046、死锁等跟踪)的更多相关文章

  1. 动态的加载显示oracle警告日志文件内容

    Last login: Fri Jan 25 00:37:47 2019 from oracle [root@oracle ~]# su - oracle [oracle@oracle ~]$ sql ...

  2. Oracle跟踪文件

    1.跟踪文件分类 1)计划内的.由用户请求所产生的跟踪文件 2)计划外的.数据库服务器自动产生的跟踪文件 2.计划内的.由用户请求所产生的跟踪文件 2.1 生成 ①alter session set ...

  3. 为Dynamics 365启用部署级的跟踪以及跟踪文件的定期删除

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复260或者20170712可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  4. &lt&semi;Oracle Database&gt&semi;诊断文件

    诊断文件 诊断文件是获取有关数据库活动的信息的一种方式,用于解决数据库出现的一些问题,主要包含有关数据库中出现的重要事件的一些信息,这些文件能更好的对数据库进行日常的管 理,主要类型有一下几种: 警告 ...

  5. oracle 清理跟踪文件trc,trm

    oracle的日志文件有以下几种: 警告日志,trace日志,audit日志,redo日志,归档日志 a.警告日志:也就是alert log,使用初始化参数 show parameter backgr ...

  6. 获取Oracle EBS数据库跟踪文件方法

    http://www.orapub.cn/posts/1624.html 一.以下在Oracle APP中执行: 1) Set the Profile Option: ‘Initialization ...

  7. Oracle性能分析1:开启SQL跟踪和获取trace文件

    当Oracle查询出现效率问题时,我们往往须要了解问题所在,这样才干针对问题给出解决方式.Oracle提供了SQL运行的trace信息,当中包括了SQL语句的文本信息.一些运行统计,处理过程中的等待, ...

  8. oracle 删除旧的归档文件或跟踪文件

    2016-02-16 可以使用两种方法完成删除旧文件的操作: 一.是使用find命令结合-exec rm; 二.是使用find命令结合使用xargs rm. 例如: 把5天之前的归档文件删除: [or ...

  9. 工具&colon; ass109&period;awk 分析 Oracle 的跟踪文件

    原文链接:http://www.eygle.com/archives/2009/11/awk_ass109.html 以前分析Oracle的跟踪文件,主要靠手工阅读,最近发现ass109.awk文件是 ...

随机推荐

  1. Using AFNetWorking 2&period;0 upload file to php web service server based on Slim

    Recently i am developing the IOS app, a feature is needed to upload image to the webservice server. ...

  2. Html特殊字符转义处理

    #region 将Html特殊字符转义处理        /// <summary>        /// 将Html特殊字符转义处理        /// </summary&gt ...

  3. &lbrack;HTML Q&amp&semi;A&rsqb;&lbrack;转&rsqb;使pre的内容自动换行

    <pre> 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码 ...

  4. log4cxx入门第一篇--一个小例子

    先看官网:http://logging.apache.org/log4cxx/index.html 转载自:http://wenku.baidu.com/view/d88ab5a9d1f34693da ...

  5. Ubuntu 安装MyEclipse10

    Ubuntu 安装MyEclipse10 1.安装JDK 2.下载myeclipse.run 3.  现在假设你的 myeclipse.run 的路径是/home/yourname/myeclipse ...

  6. ios html5 audio 不能自动播放

    //修复ios 浏览器不能自动播放音频的问题 在加载时创建新的audio 用的时候更换src即可 Xut.fix = Xut.fix||{}; if (Xut.plat.isBrowser & ...

  7. miniui 给表格行添加监听事件的几种方法以及点击某列列名数据不能排序的问题

    最近在使用miniui框架做开发,在做表格行的点击监听事件中发现了几个属性,都可以起到监听效果但是执行的结果却大有不同.好了废话不多说,直接上代码. <div id="pageGrid ...

  8. &commat;angular&sol;cli &lpar;angular脚手架&rpar; 如何降级

    1.卸载 npm uninstall -g @angular/cli 2.清除缓存 npm cache verify 3.查看是否卸载成功 ng v //如果显示ng 不是内部或外部的指令 则证明卸载 ...

  9. wxWidgets 在 Windows 下开发环境配置

    本文基于 CodeBlocks (16.01) 和 wxWidgets (3.0.2) 搭建 Windows 环境下 GUI 开发环境. 1.  CodeBlocks 官网,下载最新版安装包 code ...

  10. Serv-u FTP迁移&lpar;windows&lowbar;to&lowbar;windwos&rpar;

    需求分析 公司服务器要做维护,部分服务器需要进行迁移处理,其中就包括Ser-v FTP服务器. 确认环境信息 角色 ip 系统版本 sql版本 Serv-U版本 ODBC account/passwo ...