[20191206]确定sys.file$相关信息.txt

来源:这里教程网 时间:2026-03-03 14:40:39 作者:

[20191206]确定sys.file$相关信息.txt --//http://www.xifenfei.com/2019/09/ora-600-ktfbhget-4.html,我仅仅关注相关信息如何确定. 1.环境: SCOTT@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SYS@book> select rowid x ,a.* from sys.file$ a; X                  FILE# STATUS$ BLOCKS TS# RELFILE# MAXEXTEND  INC CRSCNWRP  CRSCNBAS OWNERINSTANCE   SPARE1 SPARE2 SPARE4 ------------------ ----- ------- ------ --- -------- --------- ---- -------- --------- ------------- -------- ------ ------ AAAAARAABAAAADpAAA     1       2  64000   0        1   4194302 1280        0         7                4194306 AAAAARAABAAAADpAAB     2       2  51200   1        2   4194302 1280        0      1834                8388610 AAAAARAABAAAADpAAC     3       2   3200   2        3   4194302  640        0    923328               12582914 AAAAARAABAAAADpAAD     4       2    640   4        4   4194302  160        0     16143               16777218 AAAAARAABAAAADpAAE     5       2  12800   6        5   4194302   80        0    952916               20971522 AAAAARAABAAAADpAAF     6       2   5120   7        6   4194302  128        3 391355879               25165826 6 rows selected. --//以下仅仅分析数据文件6.我测试环境对应数据文件是/mnt/ramdisk/book/tea01.dbf. 2.对比数据文件6看看: SCOTT@book> alter session set events 'immediate trace name FILE_HDRS level 12'; Session altered. --//查看转储: DATA FILE #6:   name #10: /mnt/ramdisk/book/tea01.dbf creation size=5120 block size=8192 status=0xe head=10 tail=10 dup=1  tablespace 7, index=7 krfil=6 prev_file=0  unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00  Checkpoint cnt:224 scn: 0x0003.175e5791 12/05/2019 10:25:28  Stop scn: 0xffff.ffffffff 12/05/2019 09:33:42  Creation Checkpointed at scn:  0x0003.17539de7 02/13/2017 15:09:58  thread:1 rba:(0x1d6.48.10) --//@?/rdbms/admin/dcore.bsq: create table file$                                             /* file table */ ( file#         number not null,                   /* file identifier number */   status$       number not null,                      /* status (see KTS.H): */                                                /* 1 = INVALID, 2 = AVAILABLE */   blocks        number not null,                   /* size of file in blocks */                                            /* zero for bitmapped tablespaces */   ts#           number,                         /* tablespace that owns file */   relfile#      number,                              /* relative file number */   maxextend     number,                                 /* maximum file size */   inc           number,                                  /* increment amount */   crscnwrp      number,                                 /* creation SCN wrap */   crscnbas      number,                                 /* creation SCN base */   ownerinstance varchar("M_IDEN"),                    /* Owner instance name */   spare1        number,      /* tablespace-relative DBA of space file header */                                    /* NULL for dictionary-mapped tablespaces */   spare2        number,   spare3        varchar2(1000),   spare4        date ) / --//file#=6 --//status$ =2 --//blocks= creation size = 5120??? 可能不对. --//ts# = tablespace 7, index=7 --//relfile# =  krfil=6 --//maxextend  = ??   --unlimit=4194302=2^22-2 = 4194302 --//inc = ?? maxextend,inc通过转储文件块2确定. --//crscnwrp ,crscnbas SCOTT@book> select CREATION_CHANGE# from v$datafile where file#=6; CREATION_CHANGE# ----------------      13276257767 --//13276257767 = scn_wrap,scn_base(10): 3,391355879 = scn_wrap,scn_base(16): 0x3,0x17539de7 --//ownerinstance = NULL --//spare1 = dba  6,2   --//第0块os块,第1块是文件头,第2块是KTFB Bitmapped File Space Header. --//6,2 = file#,block# dba(10): 25165826 = file#,block# dba(16): 0x1800002 SCOTT@book> @ convrdba 6 2 old   2:  TO_CHAR (dbms_utility.make_data_block_address(&1,&2), 'xxxxxxxxxxxxx') rdba16, new   2:  TO_CHAR (dbms_utility.make_data_block_address(6,2), 'xxxxxxxxxxxxx') rdba16, old   3: dbms_utility.make_data_block_address(&&1,&&2) rdba new   3: dbms_utility.make_data_block_address(6,2) rdba RDBA16                 RDBA -------------- ------------        1800002     25165826 SCOTT@book> alter system dump datafile '/mnt/ramdisk/book/tea01.dbf' block 2; System altered. --//检查转储: *** 2019-12-05 11:26:51.506  V10 STYLE FILE HEADER:     Compatibility Vsn = 186647552=0xb200400     Db ID=1337401710=0x4fb7216e, Db Name='BOOK'     Activation ID=0=0x0     Control Seq=36291=0x8dc3, File size=5120=0x1400     File Number=6, Blksiz=8192, File Type=3 DATA Dump all the blocks in range: buffer tsn: 7 rdba: 0x01800002 (6/2) scn: 0x0003.175500fa seq: 0x02 flg: 0x04 tail: 0x00fa1d02 frmt: 0x02 chkval: 0x4059 type: 0x1d=KTFB Bitmapped File Space Header Hex dump of block: st=0, typ_found=1 Dump of memory from 0x00007F15C0F84400 to 0x00007F15C0F86400 7F15C0F84400 0000A21D 01800002 175500FA 04020003  [..........U.....] 7F15C0F84410 00004059 00000006 00000008 00001400  [Y@..............] 7F15C0F84420 00000009 00000080 003FFFFE 0000007E  [..........?.~...] 7F15C0F84430 000013FF 00000000 00000270 175500F9  [........p.....U.] 7F15C0F84440 00000003 00000000 00000000 00000000  [................] 7F15C0F84450 00000080 00000008 00000000 00000000  [................] 7F15C0F84460 00000000 00000000 00000000 00000000  [................]         Repeat 504 times 7F15C0F863F0 00000000 00000000 00000000 00FA1D02  [................] File Space Header Block: Header Control: RelFno: 6, Unit: 8, Size: 5120, Flag: 9 AutoExtend: YES, Increment: 128, MaxSize: 4194302 Initial Area: 126, Tail: 5119, First: 0, Free: 624 Deallocation scn: 391446777.3 Header Opcode: Save: No Pending Op End dump data block from file /mnt/ramdisk/book/tea01.dbf minblk 2 maxblk 2 --//inc= Increment: 128 --//blocks=File size=5120=0x1400 --//maxextend= MaxSize: 4194302 --//这样相关信息可以全部确定. --//基本通过转储控制文件,以及文件块2可以确定. --//最后补充说明一下: --//blocks 记录的并不是size of file in blocks.而是creation size的大小,可以很容易验证. SCOTT@book> alter database datafile '/mnt/ramdisk/book/tea01.dbf' resize 38m; Database altered. SYS@book> select rowid x ,a.* from sys.file$ a where file#=6; X                  FILE# STATUS$ BLOCKS TS# RELFILE# MAXEXTEND  INC CRSCNWRP  CRSCNBAS OWNERINSTANCE   SPARE1 SPARE2 SPARE4 ------------------ ----- ------- ------ --- -------- --------- ---- -------- --------- ------------- -------- ------ ------ AAAAARAABAAAADpAAF     6       2   5120   7        6   4194302  128        3 391355879               25165826 6 rows selected. SCOTT@book> alter database datafile '/mnt/ramdisk/book/tea01.dbf' resize 41m; Database altered. SYS@book> select rowid x ,a.* from sys.file$ a where file#=6; X                  FILE# STATUS$ BLOCKS TS# RELFILE# MAXEXTEND  INC CRSCNWRP  CRSCNBAS OWNERINSTANCE   SPARE1 SPARE2 SPARE4 ------------------ ----- ------- ------ --- -------- --------- ---- -------- --------- ------------- -------- ------ ------ AAAAARAABAAAADpAAF     6       2   5120   7        6   4194302  128        3 391355879               25165826 6 rows selected.

相关推荐