[20181207]12c bootstrap$段头都会记录在哪里.txt
--//oracle数据库启动需要知道sys.bootstrap$段头,一般会记录在system文件的文件头,可以通过内部视图
--//x$kcvfh.FHRDB显示,而12c呢? 先来看看11g的情况:
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 fhrdb,fhfno,hxfnm from x$kcvfh order by 2;
FHRDB FHFNO HXFNM
---------- ---------- ----------------------------------------
4194824 1 /mnt/ramdisk/book/system01.dbf
0 2 /mnt/ramdisk/book/sysaux01.dbf
0 3 /mnt/ramdisk/book/undotbs01.dbf
0 4 /mnt/ramdisk/book/users01.dbf
0 5 /mnt/ramdisk/book/example01.dbf
0 6 /mnt/ramdisk/book/tea01.dbf
6 rows selected.
--//可以发现仅仅记录在file#=1的system表空间(你可以往系统表空间里面加入数据文件,可以发现仅仅file#=1记录这个信息)
--//贴一个生产系统的例子:
SYS@dbcn1> select fhrdb,fhfno,hxfnm from x$kcvfh where hxfnm like '%system%' order by 2;
FHRDB FHFNO HXFNM
---------- ---------- --------------------------------------------------
4194824 1 +DATAC1/XxXX/datafile/system.308.862160493
0 29 +DATAC1/Xxxx/datafile/system01.bdf
--//4194824= alter system dump datafile 1 block 520
--//通过bbed观察也可以验证上面的情况:
BBED> set dba 4194824
DBA 0x00400208 (4194824 1,520)
BBED> set dba 1,1
DBA 0x00400001 (4194305 1,1)
BBED> p dba 1,1 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> set dba 0x00400208
DBA 0x00400208 (4194824 1,520)
BBED> p dba 2,1 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00000000
--//数据文件2为空.
SYS@book> select SEGMENT_NAME,HEADER_FILE,HEADER_BLOCK from dba_segments where segment_name='BOOTSTRAP$' and owner='SYS';
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
-------------------- ----------- ------------
BOOTSTRAP$ 1 520
--//而12c,18c呢? 基本现在12c以上都建议使用pdb.
2.12c环境:
SCOTT@test01p> @ ver1
PORT_STRING VERSION BANNER CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
2.测试:
SYS@test> SELECT rfile#,file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE# , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name FROM v$datafile_header ;
RFILE# FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME CREATION_CHANGE# RESETLOGS_CHANGE# STATUS CHECKPOINT_COUNT FUZ NAME TABLESPACE_NAME
------ ----- ------------------ ------------------- ---------------- ----------------- ------ ---------------- --- -------------------------------------------------- -------------------
1 1 2393063 2018-10-16 20:20:13 9 1 ONLINE 92 YES D:\APP\ORACLE\ORADATA\TEST\SYSTEM01.DBF SYSTEM
1 2 1102125 2018-10-06 23:24:44 227 1 ONLINE 37 NO D:\APP\ORACLE\ORADATA\TEST\PDBSEED\SYSTEM01.DBF SYSTEM
3 3 2393063 2018-10-16 20:20:13 4748 1 ONLINE 92 YES D:\APP\ORACLE\ORADATA\TEST\SYSAUX01.DBF SYSAUX
4 4 1102125 2018-10-06 23:24:44 4762 1 ONLINE 37 NO D:\APP\ORACLE\ORADATA\TEST\PDBSEED\SYSAUX01.DBF SYSAUX
5 5 2393063 2018-10-16 20:20:13 6090 1 ONLINE 92 YES D:\APP\ORACLE\ORADATA\TEST\UNDOTBS01.DBF UNDOTBS1
6 6 1102125 2018-10-06 23:24:44 6212 1 ONLINE 37 NO D:\APP\ORACLE\ORADATA\TEST\PDBSEED\UNDOTBS01.DBF UNDOTBS1
7 7 2393063 2018-10-16 20:20:13 28597 1 ONLINE 91 YES D:\APP\ORACLE\ORADATA\TEST\USERS01.DBF USERS
1 8 2394047 2018-10-16 20:22:11 1103550 1 ONLINE 71 YES D:\APP\ORACLE\ORADATA\TEST\TEST01P\SYSTEM01.DBF SYSTEM
4 9 2394047 2018-10-16 20:22:11 1103553 1 ONLINE 71 YES D:\APP\ORACLE\ORADATA\TEST\TEST01P\SYSAUX01.DBF SYSAUX
6 10 2394047 2018-10-16 20:22:11 1103555 1 ONLINE 71 YES D:\APP\ORACLE\ORADATA\TEST\TEST01P\UNDOTBS01.DBF UNDOTBS1
11 11 2394047 2018-10-16 20:22:11 1105613 1 ONLINE 70 YES D:\APP\ORACLE\ORADATA\TEST\TEST01P\USERS01.DBF USERS
11 rows selected.
--//file#=1,2,8属于system表空间.
SYS@test> select fhrdb,fhfno from x$kcvfh order by 2;
FHRDB FHFNO
------------ ------------
4194824 1
4194824 2
0 3
4194824 4
0 5
4194824 6
0 7
4194824 8
4194824 9
4194824 10
4194824 11
11 rows selected.
--//而12c呢,PDB的数据文件全部有,file#=4对应PDB=PDBSEED的SYSAUX表空间的数据文件.
--//file#=6对应PDB=PDBSEED的UNDOTBS1表空间数据文件.
--//也就是file# 3,5,7没有,这些都是cdb下的数据文件.
SYS@test> @ dfb10 4194824
RFILE# BLOCK#
------------ ------------
1 520
TEXT
------------------------------------------------------------
alter system dump datafile 1 block 520 ;
3.使用bbed验证看看:
--//windows 下 bbed无法识别数据文件的OS块头,存在1个块的偏移,看数据文件头块要+1.
BBED> p dba 1,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> p dba 2,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> p dba 4,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> p dba 6,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> p dba 8,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> p dba 9,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> p dba 10,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> p dba 11,2 kcvfh.kcvfhrdb
ub4 kcvfhrdb @96 0x00400208
BBED> set dba 0x00400208
DBA 0x00400208 (4194824 1,520)
--//都是0x00400208,对应dba就是1,520,也就是bootstrap$的位置.
--//在cdb下查看:
SYS@test> select header_file,header_block from dba_segments where owner='SYS' and segment_name='BOOTSTRAP$';
HEADER_FILE HEADER_BLOCK
------------ ------------
1 520
--//在PDB=test01p下查看:
SCOTT@test01p> select header_file,header_block from dba_segments where owner='SYS' and segment_name='BOOTSTRAP$';
HEADER_FILE HEADER_BLOCK
----------- ------------
8 520
--//12c为什么这样设计,搞不懂.
4.再看看18c的情况:
SYS@orclcdb> select banner from v$version where rownum<=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
SYS@orclcdb> column name format a80
SYS@orclcdb> SELECT rfile#,file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE# , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name FROM v$datafile_header where TABLESPACE_NAME='SYSTEM';
RFILE# FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME CREATION_CHANGE# RESETLOGS_CHANGE# STATUS CHECKPOINT_COUNT FUZ NAME TABLESPACE_NAME
---------- ---------- ------------------ ------------------- ---------------- ----------------- ------ ---------------- --- -------------------------------------------------------------------------------- --------------------
1 1 1342732614 2018-12-07 07:07:04 8 1477662 ONLINE 2471 YES +DATA/ORCLCDB/DATAFILE/system.273.985030351 SYSTEM
1 5 1557588 2018-08-24 19:45:15 1508071 1477662 ONLINE 11 NO +DATA/ORCLCDB/64A52F53A7693286E053CDA9E80AED76/DATAFILE/system.270.985030667 SYSTEM
1 38 1342732614 2018-12-07 07:07:04 1314973853 1477662 ONLINE 907 YES +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/system.275.985549575 SYSTEM
SYS@orclcdb> column HXFNM format a82
SYS@orclcdb> select fhrdb,fhfno,hxfnm from x$kcvfh where FHRDB=4194824;
FHRDB FHFNO HXFNM
---------- ---------- ----------------------------------------------------------------------------------
4194824 1 +DATA/ORCLCDB/DATAFILE/system.273.985030351
4194824 5 +DATA/ORCLCDB/64A52F53A7693286E053CDA9E80AED76/DATAFILE/system.270.985030667
4194824 6 +DATA/ORCLCDB/64A52F53A7693286E053CDA9E80AED76/DATAFILE/sysaux.269.985030667
4194824 8 +DATA/ORCLCDB/64A52F53A7693286E053CDA9E80AED76/DATAFILE/undotbs1.267.985030667
4194824 38 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/system.275.985549575
4194824 39 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/sysaux.278.985549575
4194824 40 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/undotbs1.277.985549575
4194824 41 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/users.276.985549575
4194824 42 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy.279.985551679
4194824 43 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_05.281.985551715
4194824 44 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_06.280.985551731
4194824 45 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_07.282.985551735
4194824 46 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_08.283.985551737
4194824 47 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_09.284.985551757
4194824 48 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_10.285.985551797
4194824 49 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_11.289.985551845
4194824 50 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_12.290.985551895
4194824 51 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_13.291.985551949
4194824 52 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_14.292.985552009
4194824 53 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_15.293.985552077
4194824 54 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_16.294.985552149
4194824 55 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_17.295.985552231
4194824 56 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_18.296.985552313
4194824 57 +DATA/ORCLCDB/74A69DC145F5662BE0558253DD747177/DATAFILE/xx_yyyy_indx.297.985553863
24 rows selected.
SYS@orclcdb> select fhrdb,fhfno,hxfnm from x$kcvfh where FHRDB<>4194824;
FHRDB FHFNO HXFNM
---------- ---------- ----------------------------------------------------------------------------------
0 3 +DATA/ORCLCDB/DATAFILE/sysaux.259.985030395
0 4 +DATA/ORCLCDB/DATAFILE/undotbs1.271.985030421
0 7 +DATA/ORCLCDB/DATAFILE/users.260.985030421
--//可以发现仅仅cdb下的除了FHFNO=1,其它文件头没有写入root_rdba信息,剩下的数据文件头都写入root_rdba信息.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2284478/,如需转载,请注明出处,否则将追究法律责任。