我们知道数据库在open过程中会创建一系列对象,其中bootstrap$是最早创建的,所以也就及其重要,eygle的书中也重点介绍了这个对象,不过他的研究在9i中的案例,此补充下10g中这个对象的信息,首先跟踪数据库在open会话信息如下:
create table bootstrap$ ( line# number not null, obj# number not null, sql_text varchar2(4000) not null) storage (initial 50K objno 56 extents (file 1 block 377))
SQL> select segment_name,segment_type from dba_segments where header_file=1 and header_block=377;
SEGMENT_NAME SEGMENT_TYPE
BOOTSTRAP$ TABLE (注意9i,对象类型为cache)
我们可以看看创建这个前需要创建的其他对象有哪些?
SQL> select b.object_id,a.segment_name,a.segment_type,a.header_block from dba_segments a,dba_objects b where a.segment_name=b.object_name(+) and a.header_file=1 and a.header_block<=377 order by a.header_block;
OBJECT_ID SEGMENT_NAME SEGMENT_TYPE HEADER_BLOCK
---------- --------------------------------------------------------------------------------- ------------------ ------------
SYSTEM ROLLBACK 9
2 C_OBJ# CLUSTER 25
3 I_OBJ# INDEX 49
6 C_TS# CLUSTER 57
7 I_TS# INDEX 65
8 C_FILE#_BLOCK# CLUSTER 73
9 I_FILE#_BLOCK# INDEX 81
10 C_USER# CLUSTER 89
11 I_USER# INDEX 97
15 UNDO$ TABLE 105
17 FILE$ TABLE 113
18 OBJ$ TABLE 121
23 PROXY_DATA$ TABLE 129
24 I_PROXY_DATA$ INDEX 137
25 PROXY_ROLE_DATA$ TABLE 145
26 I_PROXY_ROLE_DATA$_1 INDEX 153
27 I_PROXY_ROLE_DATA$_2 INDEX 161
28 CON$ TABLE 169
29 C_COBJ# CLUSTER 177
30 I_COBJ# INDEX 185
33 I_TAB1 INDEX 193
34 I_UNDO1 INDEX 201
35 I_UNDO2 INDEX 209
36 I_OBJ1 INDEX 217
37 I_OBJ2 INDEX 225
38 I_OBJ3 INDEX 233
39 I_IND1 INDEX 241
40 I_ICOL1 INDEX 249
41 I_FILE1 INDEX 257
42 I_FILE2 INDEX 265
43 I_TS1 INDEX 273
44 I_USER1 INDEX 281
45 I_COL1 INDEX 289
46 I_COL2 INDEX 297
47 I_COL3 INDEX 305
48 I_CON1 INDEX 313
49 I_CON2 INDEX 321
50 I_CDEF1 INDEX 329
51 I_CDEF2 INDEX 337
52 I_CDEF3 INDEX 345
53 I_CDEF4 INDEX 353
54 I_CCOL1 INDEX 361
55 I_CCOL2 INDEX 369
56 BOOTSTRAP$ TABLE 377
44 rows selected.
也就是说在创建bootstrap$前必须创建前面的对象。同时这个对象在数据库启动时才重要,open后bootstrap不包含对象信息
Start dump data blocks tsn: 0 file#: 1 minblk 377 maxblk 377
buffer tsn: 0 rdba: 0x00400179 (1/377)
scn: 0x0000.000000cc seq: 0x02 flg: 0x04 tail: 0x00cc1002
frmt: 0x02 chkval: 0xe733 type: 0x10=DATA SEGMENT HEADER - UNLIMITED
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x0DB80400 to 0x0DB82400
DB80400 0000A210 00400179 000000CC 04020000 [....y.@.........]
DB80410 0000E733 00000000 00000000 00000000 [3...............]
DB80420 00000000 00000001 00000007 00001020 [............ ...]
DB80430 00000000 00000003 00000007 0040017D [............}.@.]
DB80440 00000000 00000000 00000001 00000003 [................]
DB80450 00000000 00000000 00000000 00000001 [................]
DB80460 00000000 00000038 40000000 0040017A [....8......@z.@.]
DB80470 00000007 00000000 00000000 00000000 [................]
DB80480 00000000 00000000 00000000 00000000 [................]
Repeat 250 times
DB81430 00000000 00010000 00010001 00000001 [................]
DB81440 00000000 00000003 0040017C 0040017C [........|.@.|.@.]
DB81450 00000000 00000000 00000000 00000000 [................]
Repeat 249 times
DB823F0 00000000 00000000 00000000 00CC1002 [................]
Extent Control Header
-----------------------------------------------------------------
Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 7
last map 0x00000000 #maps: 0 offset: 4128
Highwater:: 0x0040017d ext#: 0 blk#: 3 ext size: 7
#blocks in seg. hdr's freelists: 1
#blocks below: 3
mapblk 0x00000000 offset: 0
Unlocked
Map Header:: next 0x00000000 #extents: 1 obj#: 56 flag: 0x40000000
Extent Map
-----------------------------------------------------------------
0x0040017a length: 7
nfl = 1, nfb = 1 typ = 1 nxf = 0 ccnt = 3
SEG LST:: flg: USED lhd: 0x0040017c ltl: 0x0040017c
End dump data blocks tsn: 0 file#: 1 minblk 377 maxblk 377
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23163255/viewspace-689294/ ,如需转载,请注明出处,否则将追究法律责任。