a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 156|回复: 2

[综合] Oracle辅导:DUMP的转储方法

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
什么是DUMP:    美[d∧mp]   转贮;转存;转贮数据   (内存信息)转贮,转存   DUMP是一个动词,它代表一种操作,说的简单一点,拿内存举例,就是原封不动的把某一片内存给揭示出来。拿跟踪举例,就是它原始的展示了Oracle措置某个问题的过程。
, j5 |. g/ `& ]0 }5 Z; h# _1 u  巨匠在进修研究ORACLE的过程中,为了更深切的体味内部的机制,免不了要经常DUMP来研究进修。
+ a1 q( B  _) F9 A  |  Oracle 11g的Trace文件存放路径:oraclediagrdbms****trace# K; U* n0 }4 V% X7 I6 {
  1、DUMP出节制文件9 R' S0 [# a  f
  alter system (session) set events 'immediate trace name controlf level 10'
' u1 f, _% N# y9 U3 D  S  —————————————————————————————
1 @; _$ m- Z/ b9 O  2、DUMP出日志文件剖析$ A& g1 O* B5 W8 T4 K$ M5 T* ~( F
  alter system dump logfile logfilename;
, ]5 z* `/ K0 V7 D  —————————————————————————————
) n% x' R; S: _+ j; B. }& l  3、DUMP出日志文件头剖析
2 O6 \$ H5 \; P' `  alter session set events 'immediate trace name REDOHDR level 10'- b0 Q+ s: Q- y- M3 E5 V
  ———————————————————————————
, M3 `: H) Q, p1 z' c' ]  4、DUMP出LIBRARY CACHE
- h( O6 E: B: ?7 o  alter system (session) set events 'immediate trace name library_cache level 10'7 m+ |" n9 B1 i# O
  —————————————————————————————
( q# i& I( e8 f  5、 DUMP出share_pool4 |: b; F: L( J, E& W" b
  alter system (session) set events 'immediate trace name heapdump level 10') ^5 ?0 o$ A' W1 a' e+ F% z; W
  ———————————————————————————: q4 W" h- J# J6 \# B
  6、DUMP出所稀有据文件头% b& T! X; j6 U: ^
  alter system (session) set events 'immediate trace name file_hdrs level 10';* p; b# C/ [( D# e! J) A

6 h4 [4 h' ?4 M  ———————————————————————————
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:54:50 | 显示全部楼层

Oracle辅导:DUMP的转储方法

</p>  7、DUMP出数据文件(只能是alter system)5 f- W1 S+ R# Q
  alter system dump datafile n block m
( |; j3 o; b9 E. ^2 b  如, l$ u4 H( U7 B  Y$ s
  select file_id,block_id,blocks from dba_extents where segment_name='EMPLOYEES'
3 N" d1 a" Z& v$ ~0 k  FILE_ID BLOCK_ID BLOCKS3 ~9 t8 P4 ]3 u  E7 f1 X& J( n8 N
  ---------- ---------- ------------------
( i3 h/ N0 Q9 ~" b% i  5           81           8
" X* ]0 P9 J- y# w; s4 O; D  SQL>alter system dump datafile 5 block 81;
6 k1 Q: P8 D4 b) }: J4 Z5 I  System altered.: r  Q$ p  O( V" P" _
  此外是做很具体的针对某行地址的BLOCK 并DUMP出来研究,可以用如下体例* y! T4 }9 i& d: @8 p
  1、取BLOCK号  l4 T; F, i" o0 Q% T& R
  select dbms_rowid.rowid_block_number(rowid) from wdjk1999;. F- y( b% ?1 o, d! K. o2 w
  DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
  e0 B2 R% h" K1 r2 I  78
8 [6 u2 y0 i7 w& r, `2 ^4 v, o  2、取文件号9 M7 Z& p  M5 n) E6 o
  select file_id from dba_data_files where tablespace_name='WDJK1999'
; k6 x) \8 A' L, Q- T; E- O  FILE_ID( m- r% A* c- S8 l( k; p5 S+ W& O
  ----------
* S' O' g9 ~& e& w1 w" @, k  16
0 h! D0 z( L8 k7 Z& K; E  SQL>alter system dump datafile 16 block 78;( W0 t+ ?" b: O
  System altered.
; ~$ a- _, F7 H* W3 r  —————————————————————————
1 j6 n4 Z. X' P  8、DUMP出索引9 h- S  G  o9 T+ X" _. C
  SQL> select object_id from dba_objects where object_name=upper('index_name');
/ n" V4 y/ ~6 c. x) {. |/ h  OBJECT_ID+ }( N! m" w/ J& Z& [
  ----------
! K% f( [" P. n, {4 v  70591
* j1 v$ K% n7 h1 Y0 @  x  SQL> alter session set events 'immediate trace name TREEDUMP level 70591';4 t$ r% w7 W8 M$ i8 m% b
  —————————————————————————————
8 V) ^! k, D* @( G  9、DUMP出回滚段信息2 _" [5 v% ~3 [6 N, d0 v& A6 C0 q+ X
  select xidusn,xidslot,xidsqn,ubafil,ubablk,ubasqn,ubarec from v$transaction;
5 K& x3 v3 X0 @( }% G# r5 V- N  XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC/ J1 R% x8 ^; I+ U. f7 j
  ----------- ------------ ------------ ---------- ------------ ------------ -------------3 P  e' {; F+ y* R5 ~, b
  1          31            442          2           21           242          52- L- L  E$ k  R) |
  dump对应的undo block
# f! t6 M* a2 G3 |  alter">SYS@ning>alter system dump datafile 2 block 21;
" }2 c8 v! f, L1 s) Z  d  i" G, T  K  System altered.
: R: \. x; ~, b+ a  ——————————————————————————
; k4 v' d' ~0 h  10、 DUMP出系统状况剖析 (只能是SYSTEM)' R- w* Z. n: x/ U
  alter system set events 'immediate trace name systemdate level 10'
9 x( T0 K, I9 C$ h; y: z1 O. p' b/ V5 v* E6 a. u" ]
  ——————————————————————————
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 13:54:51 | 显示全部楼层

Oracle辅导:DUMP的转储方法

</p>  11、 DUMP出历程状况剖析
& y: |8 h1 P. q  ?- E  alter session set events 'immediate trace name PROCESSSTATE level 10'
4 f) S5 b  J8 o9 y8 e0 n8 D8 E( S  附:
% d! A2 ?7 c1 B* ]% \! F1 c0 ?  event的界说:event = event_name + action。" n' w# @, E2 j& g
  首先,这里的event name是一个event的名字或者是event的代码。如不美观event name不是“immediate”,那么oracle解析器会在event name table中找到这个event。关于immediate event,它是一个非凡的event,它显示一个当即的无前提的event,它不会期待其他人去提交它而是当即执行。3 P+ C, [5 Y' V6 ~
  action是由一个action keyword和一个或者多个qualifier(值)组成。
/ S# x/ h  v8 E' N: [7 j  action keyword是如下三个值:
+ ~% x$ p0 B* S7 L9 ]6 P7 o+ @  crash:它会引起一个oracle crash,一般是为了测试recovery的时辰才用它。
7 W3 k" d7 r! N0 b4 Q8 G  debugger:挪用一个系统的debugger。(invokes a system debugger if any), I4 _( l: ]8 s( ~& J
  trace:is context specific or named context-independent ones。2 r' i/ D* q4 \6 H. T; I) @7 P
  crash和debugger这两个值一般是oracle的焦点开发人员使用。我们这里只谈判trace的情形。
, N' j# v: W. ^7 S2 |* [  这里有需要诠释一下,它就是你需要dump的“某个对象”的“trace id”,或者就是你想要做的“某种trace”。如你想dump内存中的library cache,就是想看看内存中library cache的trace,那么这里的就是“library_cache”。3 D0 F2 |" _% ]: Y* d; m
  trace qualifiers的寄义分袂是:
9 r7 p3 u5 C, a  “forever”:暗示这个trace一旦设定,每当这个event发生的时辰,就激活这个trace。! o% ]* G0 C( C8 m( [3 S
  “off”:暗示对这个event封锁这个trace。" g% m, E  N! `9 ?7 I7 _2 m
  “level ”:当event发生的时辰,你想要trace的级别,每个trace的级此外取值是都是纷歧样的,它一个非负整数。凡是情形下,它的质ё俳年夜,就会有更多的内容显示,可是如不美观你是做某个块的dump,这里的level就是data block address(dba)。
; v# E( O" v4 L6 R0 M  综上所述,event可概略的如下暗示为:; C2 ]: @( x( D% w) T6 ~: _
  event_name CRASH    ....
: h" p/ l, w6 _4 w  ?/ \  event_name DEBUGGER ....
, X4 W+ T$ g: }( Y' ]4 p/ i  event_name TRACE    NAME trace_name|CONTEXT [ FOREVER|OFF|LEVEL  ]% @. z9 A  |) H+ j, w2 L
  这个琅缦沔“|”暗示“或者”,“[]”暗示呈现一次或者多次。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 11:35 , Processed in 0.210259 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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