分享
 
 
 

数据块转储及RDBA的转换

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

很多时候我们在进行进一步研究时需要转储(dump)Oracle的数据块,以研究其内容,Oracle提供了很好的方式,我们通过以下例子简单说明一下:

[oracle@jumper udump]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.3.0 - Production on Tue Aug 31 17:01:27 2004

Copyright (c) 1982, 2002, Oracle Corporation.

All rights reserved.

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.3.0 - Production

SQL select rowid,deptno,dname,loc from scott.dept;

ROWID

DEPTNO DNAME

LOC

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

AAADZ7AABAAAGK6AAA

10 ACCOUNTING

NEW YORK

AAADZ7AABAAAGK6AAB

20 RESEARCH

DALLAS

AAADZ7AABAAAGK6AAC

30 SALES

CHICAGO

AAADZ7AABAAAGK6AAD

40 OPERATIONS

BOSTON

SQL select file_id,block_id,blocks from dba_extents where segment_name='DEPT';

FILE_ID

BLOCK_ID

BLOCKS

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

1

25273

8

SQL alter system dump datafile 1 block min 25273 block max 25274;

System altered.

SQL !

[oracle@jumper udump]$ ls -l

total 4

-rw-r-----

1 oracle

dba

3142 Aug 31 17:04 hsjf_ora_13674.trc

[oracle@jumper udump]$ more hsjf_ora_13674.trc

/opt/oracle/admin/hsjf/udump/hsjf_ora_13674.trc

Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.3.0 - Production

ORACLE_HOME = /opt/oracle/product/9.2.0

System name:

Linux

Node name:

jumper.hurray.com.cn

Release:

2.4.18-14

Version:

#1 Wed Sep 4 13:35:50 EDT 2002

Machine:

i686

Instance name: hsjf

Redo thread mounted by this instance: 1

Oracle process number: 9

Unix process pid: 13674, image: oracle@jumper.hurray.com.cn (TNS V1-V3)

*** 2004-08-31 17:04:27.820

*** SESSION ID:(8.3523) 2004-08-31 17:04:27.819

Start dump data blocks tsn: 0 file#: 1 minblk 25273 maxblk 25274

buffer tsn: 0 rdba: 0x004062b9 (1/25273)

scn: 0x0000.0057c70d seq: 0x01 flg: 0x04 tail: 0xc70d1001

frmt: 0x02 chkval: 0x12e3 type: 0x10=DATA SEGMENT HEADER - UNLIMITED

Extent Control Header

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

Extent Header:: spare1: 0

spare2: 0

#extents: 1

#blocks: 7

last map

0x00000000

#maps: 0

offset: 4128

Highwater::

0x004062bb

ext#: 0

blk#: 1

ext size: 7

#blocks in seg. hdr's freelists: 1

#blocks below: 1

mapblk

0x00000000

offset: 0

Unlocked

Map Header:: next

0x00000000

#extents: 1

obj#: 13947

flag: 0x40000000

Extent Map

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

0x004062ba

length: 7

nfl = 1, nfb = 1 typ = 1 nxf = 0 ccnt = 1

SEG LST:: flg: USED

lhd: 0x004062ba ltl: 0x004062ba

buffer tsn: 0 rdba: 0x004062ba (1/25274)

scn: 0x0000.0131909b seq: 0x07 flg: 0x04 tail: 0x909b0607

frmt: 0x02 chkval: 0xa8e7 type: 0x06=trans data

Block header dump:

0x004062ba

Object id on Block? Y

seg/obj: 0x367b

csc: 0x00.131909a

itc: 2

flg: O

typ: 1 - DATA

fsl: 0

fnx: 0x0 ver: 0x01

Itl

Xid

Uba

Flag

Lck

Scn/Fsc

0x01

0x0001.02a.000003f3

0x0080000b.0188.08

C---

0

scn 0x0000.0057c70e

0x02

0x0000.000.00000000

0x00000000.0000.00

----

0

fsc 0x0000.00000000

data_block_dump,data header at 0xadb505c

===============

tsiz: 0x1fa0

hsiz: 0x1a

pbl: 0x0adb505c

bdba: 0x004062ba

76543210

flag=--------

ntab=1

nrow=4

frre=-1

fsbo=0x1a

fseo=0x1f44

avsp=0x1f2a

tosp=0x1f2a

0xe:pti[0]

nrow=4

offs=0

0x12:pri[0]

offs=0x1f86

0x14:pri[1]

offs=0x1f70

0x16:pri[2]

offs=0x1f5c

0x18:pri[3]

offs=0x1f44

block_row_dump:

tab 0, row 0, @0x1f86

tl: 26 fb: --H-FL-- lb: 0x0

cc: 3

col

0: [ 2]

c1 0b

col

1: [10]

41 43 43 4f 55 4e 54 49 4e 47

col

2: [ 8]

4e 45 57 20 59 4f 52 4b

tab 0, row 1, @0x1f70

tl: 22 fb: --H-FL-- lb: 0x0

cc: 3

col

0: [ 2]

c1 15

col

1: [ 8]

52 45 53 45 41 52 43 48

col

2: [ 6]

44 41 4c 4c 41 53

tab 0, row 2, @0x1f5c

tl: 20 fb: --H-FL-- lb: 0x0

cc: 3

col

0: [ 2]

c1 1f

col

1: [ 5]

53 41 4c 45 53

col

2: [ 7]

43 48 49 43 41 47 4f

tab 0, row 3, @0x1f44

tl: 24 fb: --H-FL-- lb: 0x0

cc: 3

col

0: [ 2]

c1 29

col

1: [10]

4f 50 45 52 41 54 49 4f 4e 53

col

2: [ 6]

42 4f 53 54 4f 4e

end_of_block_dump

End dump data blocks tsn: 0 file#: 1 minblk 25273 maxblk 25274

很多人经常提出的一个问题是,rdba是如何转换的?

rdba: 0x004062ba (1/25274)

我们通过这个例子介绍一下.

rdba从Oracle6-Oracle7-Oracle8发生了三次改变:

在Oracle6中,rdba由6位2进制数表示,也就是说数据块最多只能有2^6=64个数据文件(去掉全0和全1, 实际上最多只能代表62个文件)

在Oracle7中,rdba中的文件号增加为10位,为了向后兼容,从Block号的高位拿出4位作为文件号的高位.这样从6-7的Rowid无需发生变化.

在Oracle8中,文件号仍然用10位表示,只是不再需要置换,为了向后兼容,同时引入了相对文件号(rfile#),所以从Oracle7到Oracle8,Rowid仍然无需发生变化.

举例说明如下:

在Oracle6中:

比如: file 8, block 56892

26位block号==56892

vv

vvvvvvvv

vvvvvvvv

vvvvvvvv

00100000

00000000

11011110

00111100

^^^^^^

6位文件号==8

在Oracle7中:

比如:File 255, block 56892

11111100 11000000

11011110

00111100

F

C

C

0

D

E

3

C

\_____/\___/\_______________________/

|

|

|

|

|Block = 0xDE3C = 56892

\_____________

|

V

V

0011

111111 = 0xFF = 255 --注意这里高位和低位要置换才能得出正确的file#

在Oracle8中:

比如:File 255, block 56892

11111100 11000000

11011110

00111100

F

C

C

0

D

E

3

C

\_____/\___/\_______________________/

|

|

|

|

|Block = 0xDE3C = 56892

\_____________

|

V

V

0011 1111 0011 = 03F3 = 1011 --这就是相对文件号

对于我们测试中的例子:

rdba: 0x004062ba (1/25274)

也就是:0000 0000 0100 0000 0110 0010 1011 1010

前10位为rfile#: 0000 0000 01 = 1

后22位为Block#:00 0000 0110 0010 1011 1010 = 25274

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有