设为首页 收藏本站
查看: 980|回复: 0

[经验分享] Oracle 常用dump命令

[复制链接]

尚未签到

发表于 2018-9-10 07:04:59 | 显示全部楼层 |阅读模式
  .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
  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>>
  SQL>>  属于当前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_trace,10046事件可以在全局设置,也可以在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>  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的跟踪


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-570498-1-1.html 上篇帖子: oracle 高版本 ora-4031 错误 下篇帖子: Oracle学习感受
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表