【ORACLE】DUMP轉儲 redo log , undo段及table段,redoundo
1.1 使用oradebug
--啟動任務
oradebug setmypid
--設定dump檔案的名稱標示
alter session set tracefile_identifier=undo
--查看dump檔案
SQL> oradebug tracefile_name;
c:\opt\oracle\product\10.2.0\admin\rundb\udump\rundb_ora_6660_pra1.trc
--設定許可權
oradebug unlimit
--查看可以轉儲的列表:
SQL> oradebug dumplist
EVENTS
TRACE_BUFFER_ON
TRACE_BUFFER_OFF
--oradebug dump 命令
(1) oradebug dump buffers 1
轉儲緩衝區資訊: 1=僅緩衝頭
1.2 使用alter system dump redo日誌
--dump redo日誌
alter system dump logfile 'C:\OPT\ORACLE\PRODUCT\10.2.0\ORADATA\RUNDB\REDO02.LOG';
1.3 使用alter system dump table資料區塊
--查看scott.stu表的位置:
select HEADER_FILE, HEADER_BLOCK,BYTES,BLOCKS,INITIAL_EXTENT,EXTENTS,NEXT_EXTENT from dba_segme
nts where segment_type='TABLE' and owner='SCOTT' and segment_name='STU';
HEADER_FILE HEADER_BLOCK BYTES BLOCKS INITIAL_EXTENT EXTENTS
----------- ------------ ---------- ---------- -------------- ----------
NEXT_EXTENT
-----------
4 203 65536 8 65536 1
//scott.stu的位置為: datafile 4 block 203,一共佔用8個block,而且是一個exntents連續空間中的。
--dump 表頭資訊(segment header)資訊
alter system dump datafile 4 block 203;
--dump所有表的所有資料區塊(8個)資訊
alter system dump datafile 4 block min 203 block max 210;
1.4 使用alter system dump undo段資訊及undo記錄資訊1.4.1 dump undo 段header資訊
---查看undo segments_name
SQL> select segment_name from dba_segments where segment_type='TYPE2 UNDO';
SEGMENT_NAME
--------------------------------------------------------------------------------
_SYSSMU1$
_SYSSMU2$
_SYSSMU3$
_SYSSMU4$
…..
或者SQL> select segment_id,segment_name,block_id,status from dba_rollback_segs;
SEGMENT_ID SEGMENT_NAME BLOCK_ID STATUS
---------- ------------------------------ ---------- ----------------
0 SYSTEM 9 ONLINE
1 _SYSSMU1$ 9 ONLINE
2 _SYSSMU2$ 25 ONLINE
……
----dump undo頭
SQL> alter system dump undo header '_SYSSMU1$';
1.4.2 根據xid dump undo記錄
--查詢xid: undo段號,slot號,wrap值
SQL> select trunc(id1/65536) usn,mod(id1,65536) slot,id2 wrap,lmode from v$lock where type='TX';
USN SLOT WRAP LMODE
---------- ---------- ---------- ----------
2 43 313 6
--dump unod記錄
ALTER SYSTEM DUMP UNDO BLOCK '_SYSSMU2$' XID 2 43 313
1.5 stu segment表(段)中某個資料區塊的dump資訊
--資料區塊資訊:
buffer tsn: 4 rdba: 0x010000cc (4/204)
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0006.012.0000013b 0x00800127.011a.01 --U- 1 fsc 0x0000.000c44bc
0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
block_row_dump:
tab 0, row 0, @0x1f85
tl: 19 fb: --H-FL-- lb: 0x1 cc: 4
col 0: [ 2] c1 06
col 1: [ 3] c2 15 09
col 2: [ 5] 73 6d 69 74 68
col 3: [ 2] c1 1a
end_of_block_dump
//itl事務清單索引,該值用於行的鎖位元組:lb:顯示被那個事務鎖住。
//xid: undo中的事務ID,
//uba: 事務產生的undo記錄地址
//flag: 事務狀態。--u—上界提交;c------提交清楚;
Lck: 塊中改事務鎖住行數。
_________________________________________________________________________________
http://blog.csdn.net/clark_xu 徐長亮專欄原創
__________________________________________________________________________________