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

首頁 > 開發 > 綜合 > 正文

數據塊轉儲及RDBA的轉換

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

  很多時候我們在進行進一步研究時需要轉儲(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 right">(出處:清風軟件下載學院)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卢湾区| 兴山县| 湛江市| 江达县| 邹城市| 桦川县| 郧西县| 玉山县| 元江| 大新县| 香港 | 连云港市| 灵武市| 大化| 兰西县| 四子王旗| 磐安县| 阿尔山市| 石柱| 九寨沟县| 沙坪坝区| 凉城县| 定边县| 威海市| 永德县| 连江县| 鹤壁市| 东平县| 武陟县| 枣庄市| 日照市| 柳州市| 来宾市| 望城县| 新密市| 昭苏县| 松滋市| 元谋县| 长垣县| 青川县| 类乌齐县|