• Oracle 常用dump命令


    以前也整理过一遍有关跟踪事件的文章,不过命令方面没有这篇强。

     

    Oracle 跟踪事件 set event

    http://blog.csdn.net/tianlesoftware/archive/2009/12/10/4977827.aspx

     

     

    .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
    为某个指定blockrdba,该命令可以转储某个blockbuffer中的所有版本。

     

    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’;
    nsubheap的地址,转储的是subheap的摘要信息
    nsubheap的地址+1,转储的则是subheap的内容
    Oracle 9.2.0
    版本之后
    ALTER SESSION SET EVENTS ‘immediate trace name heapdump_addr level n, addr m’;
    其中msubheap的地址
    n
    1转储subheap的摘要,n2转储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
    blockrdba
    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

     

    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;

     

    9).Loghist
    ALTER SESSION SET EVENTS ‘immediate trace name loghist level n’;
    1 dump
    控制文件中最早和最迟的日志历史项
    1 dump 2^n
    个日志历史项

     

    三, Trace 文件使用示例

     

    udump下的trc文件可以通过配置不让产生,利用命令
    alter system set sql_trace=false;

    其他的不能修改,只能手动的启动trace,手动的关闭trace.

     

    比如:

    alter session set events 'immediate trace name library_cache|controlf|systemstate|processstate|file_hdrs|REDOHDR level 10';

    alter session set events 'immediate trace name off';

     

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

     

    alter system set events '10046 trace name context forever,level 12';
    alter system set events '10046 trace name context off';

     

     

     

    1. 使用autotrace
    set autotrace ON | ON EXPLAIN | ON STATISTICS | TRACEONLY | TRACEONLY EXPLAIN
    set autotrace off

    这个用法是最简单方便的,执行sql结束之后,会自动在同个窗口显示sql的执行计划和统计信息。

     

    2. 使用set events context

    SQL> alter session set sql_trace=true;
    SQL> alter session set sql_trace=false;

    属于当前session级设置

    大多数的情况下,我们使用sql_trace跟踪当前进程。通过跟踪当前进程可以发现当前操作的后台数据库递归活动(这在研究数据库新特性时尤其有效),研究SQL执行,发现后台错误等。

     

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

    10046事件概述:

    10046事件是Oracle提供的内部事件,是对SQL_TRACE的增强.

    10046事件可以设置以下四个级别:

    1 - 启用标准的SQL_TRACE功能,等价于sql_trace

    4 - Level 1 加上绑定值(bind values)

    8 - Level 1 + 等待事件跟踪

    12 - Level 1 + Level 4 + Level 8

    类似sql_trace10046事件可以在全局设置,也可以在session级设置。

     

    3. 使用set events immediate
    alter session set events 'immediate trace name library_cache|controlf|systemstate|processstate|file_hdrs|REDOHDR level 10';
    alter session set events 'immediate trace name off';

    Level =1 ,转储Library cache统计信息
    Level =2 ,
    转储hash table概要
    Level =4 ,
    转储Library cache对象,只包含基本信息
    Level =8 ,
    转储Library cache对象,包含详细信息(包括child references,pin waiters)
    Level =16,
    增加heap sizes信息
    Level =32,
    增加heap信息

     

    9i清理buffer cache
       alter session set events 'immediate trace name flush_cache level 1';

       alter session set events = 'immediate trace name flush_cache'

     

    4. 使用set events errorstack
    alter session set events 'err_num trace name errorstack level 10';
    alter session set events 'err_num trace name errorstack off'

    err_num=报错代码,如ORA-00942 应该在err_num填入942

     

    5. 使用dbms_support(trace别的session)
    exec dbms_support.start_trace_in_session(sid=>XX,seiral#=>XXX,wait=>true,binds=>true);
    exec dbms_support.stop_trace_in_session(sid=>XX,seiral#=>XXX);

    这类trace用到很少,以后再研究。

     

    6. 使用oradebug(trace别的session)
    oradebug setospid (PID 能从ps -ef 中得出)
    oradebug unlimit
    oradebug event 10046 trace name context forever,level 12;
    oradebug event 10046 trace name context off;

    这类同样用到很少。

     

    7. 使用dbms_system.set_ev
    exec dbms_system.set_ev(sid,serial#,10046,trace_level,'username');
    exec dbms_system.set_ev(sid,serial#,10046,0,'username');

    通过DBMS_SYSTEM.SET_EV系统包来实现对sql的跟踪

     


     

     

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    Cocos2d-x场景生命周期函数介绍
    一致性hash算法在memcached中的使用
    linux操作系统下查看某rpm包是32bit 还是x64bit的命令
    JavaScript与Java通信
    DevExpress2011控件教程)编辑控件(comboBox,AspxCheckBox) 范例1
    Tips:javascript 图片放大和取得尺寸
    Eclipse颜色主题插件-Eclipse Color Theme
    Android Fragment 详解(一)
    《火球——UML大战需求分析》(第1章 大话UML)——1.4 如何学好UML?
    java.lang.UnsatisfiedLinkError: Native method not found 三种可能解决方案
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3610312.html
Copyright © 2020-2023  润新知