ITPub博客

首页 > 数据库 > Oracle > [20181207]12c bootstrap$段头都会记录在哪里.txt

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

原创 Oracle 作者:lfree 时间:2018-12-07 10:54:32 0 删除 编辑

[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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2241
  • 访问量
    5977737