[20181207]12c bootstrap$段头都会记录在哪里.txt

来源:这里教程网 时间:2026-03-03 12:42:49 作者:

[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信息.

相关推荐

热文推荐