国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

數據塊轉儲及RDBA的轉換

2024-07-21 02:07:35
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,


數據塊轉儲及rdba的轉換

原文鏈接:

http://www.eygle.com/internal/how_to_dump_datablock.htm

tuesday, 2004-08-31 17:51 eygle

 
很多時候我們在進行進一步研究時需要轉儲(dump)oracle的數據塊,以研究其內容,oracle提供了很好的方式,我們通過以下例子簡單說明一下:






[[email protected] udump]$ sqlplus "/ as sysdba"sql*plus: release 9.2.0.3.0 - production on tue aug 31 17:01:27 2004copyright (c) 1982, 2002, oracle corporation. all rights reserved.connected to:oracle9i enterprise edition release 9.2.0.3.0 - productionwith the partitioning, olap and oracle data mining optionsjserver release 9.2.0.3.0 - productionsql> select rowid,deptno,dname,loc from scott.dept;rowid deptno dname loc------------------ ---------- -------------- -------------aaadz7aabaaagk6aaa 10 accounting new yorkaaadz7aabaaagk6aab 20 research dallasaaadz7aabaaagk6aac 30 sales chicagoaaadz7aabaaagk6aad 40 operations bostonsql> select file_id,block_id,blocks from dba_extents where segment_name='dept'; file_id block_id blocks---------- ---------- ---------- 1 25273 8sql> alter system dump datafile 1 block min 25273 block max 25274;system altered.sql> ![[email protected] udump]$ ls -ltotal 4-rw-r----- 1 oracle dba 3142 aug 31 17:04 hsjf_ora_13674.trc[[email protected] udump]$ more hsjf_ora_13674.trc /opt/oracle/admin/hsjf/udump/hsjf_ora_13674.trcoracle9i enterprise edition release 9.2.0.3.0 - productionwith the partitioning, olap and oracle data mining optionsjserver release 9.2.0.3.0 - productionoracle_home = /opt/oracle/product/9.2.0system name: linuxnode name: jumper.hurray.com.cnrelease: 2.4.18-14version: #1 wed sep 4 13:35:50 edt 2002machine: i686instance name: hsjfredo thread mounted by this instance: 1oracle process number: 9unix process pid: 13674, image: [email protected] (tns v1-v3)*** 2004-08-31 17:04:27.820*** session id:(8.3523) 2004-08-31 17:04:27.819start dump data blocks tsn: 0 file#: 1 minblk 25273 maxblk 25274buffer tsn: 0 rdba: 0x004062b9 (1/25273)scn: 0x0000.0057c70d seq: 0x01 flg: 0x04 tail: 0xc70d1001frmt: 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: 0x909b0607frmt: 0x02 chkval: 0xa8e7 type: 0x06=trans datablock 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/fsc0x01 0x0001.02a.000003f3 0x0080000b.0188.08 c--- 0 scn 0x0000.0057c70e0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000 data_block_dump,data header at 0xadb505c===============tsiz: 0x1fa0hsiz: 0x1apbl: 0x0adb505cbdba: 0x004062ba 76543210flag=--------ntab=1nrow=4frre=-1fsbo=0x1afseo=0x1f44avsp=0x1f2atosp=0x1f2a0xe:pti[0] nrow=4 offs=00x12:pri[0] offs=0x1f860x14:pri[1] offs=0x1f700x16:pri[2] offs=0x1f5c0x18:pri[3] offs=0x1f44block_row_dump:tab 0, row 0, @0x1f86tl: 26 fb: --h-fl-- lb: 0x0 cc: 3col 0: [ 2] c1 0bcol 1: [10] 41 43 43 4f 55 4e 54 49 4e 47col 2: [ 8] 4e 45 57 20 59 4f 52 4btab 0, row 1, @0x1f70tl: 22 fb: --h-fl-- lb: 0x0 cc: 3col 0: [ 2] c1 15col 1: [ 8] 52 45 53 45 41 52 43 48col 2: [ 6] 44 41 4c 4c 41 53tab 0, row 2, @0x1f5ctl: 20 fb: --h-fl-- lb: 0x0 cc: 3col 0: [ 2] c1 1fcol 1: [ 5] 53 41 4c 45 53col 2: [ 7] 43 48 49 43 41 47 4ftab 0, row 3, @0x1f44tl: 24 fb: --h-fl-- lb: 0x0 cc: 3col 0: [ 2] c1 29col 1: [10] 4f 50 45 52 41 54 49 4f 4e 53col 2: [ 6] 42 4f 53 54 4f 4eend_of_block_dumpend 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 5689226位block號==56892 vv vvvvvvvv vvvvvvvv vvvvvvvv00100000 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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威海市| 南昌市| 灵武市| 德化县| 新竹市| 当雄县| 潮安县| 突泉县| 共和县| 绥滨县| 博爱县| 尖扎县| 定结县| 如东县| 濉溪县| 台前县| 高邑县| 拜城县| 峨边| 凯里市| 阳信县| 巴林右旗| 泸定县| 重庆市| 即墨市| 黎平县| 伊通| 云林县| 彰武县| 台湾省| 大姚县| 海城市| 万安县| 宝鸡市| 比如县| 葵青区| 瑞金市| 星座| 治县。| 日土县| 张掖市|