科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Oracle数据库中的Cache对象(2)

Oracle数据库中的Cache对象(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在Oracle10g之前,数据库中存在一个独一无二的Cache对象

作者:eygle.com 来源:eygle.com 2007年9月5日

关键字: 对象 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

一共有44个对象。我们再来看一下初始化过程中bootstrap$中的信息:

SQL> select * from bootstrap$ order by obj#;

       LINE#   OBJ#  SQL_TEXT
      ------ -------- -----------------------
        -1   -1   8.0.0.0.0
        0    0    CREATE ROLLBACK SEGMENT SYSTEM STORAGE 
                  (INITIAL 112K NEXT 1024K MINEXTENTS 1M
        2    2    CREATE CLUSTER C_OBJ#("OBJ#" NUMBER) 
                  PCTFREE 5 PCTUSED 40 INITRANS 2 MAXTRANS 25
        3    3    CREATE INDEX I_OBJ# ON CLUSTER C_OBJ# 
                  PCTFREE 10 INITRANS 2MAXTRANS 255 STORAGE
        4    4    CREATE TABLE TAB$("OBJ#" NUMBER NOT NULL,
                  "DATAOBJ#" NUMBER,"TS#" NUMBER NOT NULL
        5    5    CREATE TABLE CLU$("OBJ#" NUMBER NOT NULL,
                  "DATAOBJ#" NUMBER,"TS#" NUMBER NOT NULL
        6    6    CREATE CLUSTER C_TS#("TS#" NUMBER) 
                  PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 255
        7    7    CREATE INDEX I_TS# ON CLUSTER C_TS# 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (
        8    8    CREATE CLUSTER C_FILE#_BLOCK#("TS#" 
                  NUMBER,"SEGFILE#" NUMBER,"SEGBLOCK#" NUMBER)
        9    9    CREATE INDEX I_FILE#_BLOCK# ON 
                  CLUSTER C_FILE#_BLOCK# PCTFREE 10 INITRANS 2 MAXT
        10   10   CREATE CLUSTER C_USER#("USER#" NUMBER) 
                  PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS
        11   11   CREATE INDEX I_USER# ON CLUSTER C_USER# 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORA
        12   12   CREATE TABLE FET$("TS#" NUMBER NOT NULL,
                  "FILE#" NUMBER NOT NULL,"BLOCK#" NUMBER
        13   13   CREATE TABLE UET$("SEGFILE#" NUMBER NOT
                  NULL,"SEGBLOCK#" NUMBER NOT NULL,"EXT#"
        14   14   CREATE TABLE SEG$("FILE#" NUMBER NOT NULL
                  ,"BLOCK#" NUMBER NOT NULL,"TYPE#" NUMBE
        15   15   CREATE TABLE UNDO$("US#" NUMBER NOT NULL,
                  "NAME" VARCHAR2(30) NOT NULL,"USER#" NU
        16   16   CREATE TABLE TS$("TS#" NUMBER NOT NULL,
                  "NAME" VARCHAR2(30) NOT NULL,"OWNER#" NUM
        17   17   CREATE TABLE FILE$("FILE#" NUMBER NOT NULL,
                  "STATUS$" NUMBER NOT NULL,"BLOCKS" NU
        18   18   CREATE TABLE OBJ$("OBJ#" NUMBER NOT NULL,
                  "DATAOBJ#" NUMBER,"OWNER#" NUMBER NOT N
        19   19   CREATE TABLE IND$("OBJ#" NUMBER NOT NULL,
                  "DATAOBJ#" NUMBER,"TS#" NUMBER NOT NULL

    LINE#      OBJ# SQL_TEXT
---------- ---------- ----------------------------------------
        20   20   CREATE TABLE ICOL$("OBJ#" NUMBER NOT NULL,
                  "BO#" NUMBER NOT NULL,"COL#" NUMBER NO
        21   21   CREATE TABLE COL$("OBJ#" NUMBER NOT NULL,
                  "COL#" NUMBER NOT NULL,"SEGCOL#" NUMBER
        22   22   CREATE TABLE USER$("USER#" NUMBER NOT NULL,
                  "NAME" VARCHAR2(30) NOT NULL,"TYPE#"
        23   23   CREATE TABLE PROXY_DATA$("CLIENT#" NUMBER NOT NULL,
                  "PROXY#" NUMBER NOT NULL,"CRE
        24   24   CREATE UNIQUE INDEX I_PROXY_DATA$ 
                  ON PROXY_DATA$(CLIENT#,PROXY#) PCTFREE 10 INIT
        25   25   CREATE TABLE PROXY_ROLE_DATA$("CLIENT#" 
                  NUMBER NOT NULL,"PROXY#" NUMBER NOT NULL
        26   26   CREATE INDEX I_PROXY_ROLE_DATA$_1 ON 
                  PROXY_ROLE_DATA$(CLIENT#,PROXY#) PCTFREE 10
        27   27   CREATE UNIQUE INDEX I_PROXY_ROLE_
                  DATA$_2ONPROXY_ROLE_DATA$(CLIENT#,
                  PROXY#,ROLE
        28   28   CREATE TABLE CON$("OWNER#" NUMBER NOT NULL,
                  "NAME" VARCHAR2(30) NOT NULL,"CON#" N
        29   29   CREATE CLUSTER C_COBJ#("OBJ#" NUMBER) 
                  PCTFREE 0 PCTUSED 50 INITRANS 2 MAXTRANS 2
        30   30   CREATE INDEX I_COBJ# ON CLUSTER C_COBJ# 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORA
        31   31   CREATE TABLE CDEF$("CON#" NUMBER NOT NULL,
                  "OBJ#" NUMBER NOT NULL,"COLS" NUMBER,"
        32   32   CREATE TABLE CCOL$("CON#" NUMBER NOT NULL,
                  "OBJ#" NUMBER NOT NULL,"COL#" NUMBER N
        33   33   CREATE INDEX I_TAB1 ON TAB$(BOBJ#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (
        34   34   CREATE UNIQUE INDEX I_UNDO1 ON 
                  UNDO$(US#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STO
        35   35   CREATE INDEX I_UNDO2 ON UNDO$(NAME) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (
        36   36   CREATE UNIQUE INDEX I_OBJ1 ON OBJ$(OBJ#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STOR
        37   37   CREATE UNIQUE INDEXI_OBJ2ONOBJ$(OWNER#,
                  NAME,NAMESPACE,REMOTEOWNER,LINKNAME,SU 
        38   38   CREATE INDEX I_OBJ3 ON OBJ$(OID$) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (
        39   39   CREATE UNIQUE INDEX I_IND1 ON IND$(OBJ#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STOR
        40   40   CREATE INDEX I_ICOL1 ON ICOL$(OBJ#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (

    LINE#    OBJ# SQL_TEXT
---------- ------- --------------------------------------------
        41   41   CREATE UNIQUE INDEX I_FILE1 
                  ON FILE$(FILE#) PCTFREE 10 INITRANS 
                  2 MAXTRANS 255 S
        42   42   CREATE UNIQUE INDEX I_FILE2 ON 
                  FILE$(TS#,RELFILE#) PCTFREE 10 
                  INITRANS 2 MAXTRAN
        43   43   CREATE UNIQUE INDEX I_TS1 ON TS$(NAME) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAG
        44   44   CREATE UNIQUE INDEX I_USER1 ON USER$(NAME) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 ST
        45   45   CREATE UNIQUE INDEX I_COL1 ON COL$(OBJ#,NAME)
                  PCTFREE 10 INITRANS 2 MAXTRANS 255
        46   46   CREATE INDEX I_COL2 ON COL$(OBJ#,COL#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAG
        47   47   CREATE UNIQUE INDEX I_COL3 ON COL$(OBJ#,
                  INTCOL#) PCTFREE 10 INITRANS 2 MAXTRANS
        48   48   CREATE UNIQUE INDEX I_CON1 ON CON$(OWNER#,
                  NAME) PCTFREE 10 INITRANS 2 MAXTRANS 2
        49   49   CREATE UNIQUE INDEX I_CON2 ON CON$(CON#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STOR
        50   50   CREATE UNIQUE INDEX I_CDEF1 ON CDEF$(CON#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 ST
        51   51   CREATE INDEX I_CDEF2 ON CDEF$(OBJ#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (
        52   52   CREATE INDEX I_CDEF3 ON CDEF$(ROBJ#) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE
        53   53   CREATE INDEX I_CDEF4 ON CDEF$(ENABLED) 
                  PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAG
        54   54   CREATE INDEX I_CCOL1 ON CCOL$(CON#,COL#) 
 		  PCTFREE 10 INITRANS 2 MAXTRANS 255 STOR
        55   55   CREATE UNIQUE INDEX I_CCOL2 ON CCOL$(CON#,
	          INTCOL#) PCTFREE 10 INITRANS 2 MAXTRAN
        56   56   CREATE TABLE BOOTSTRAP$("LINE#" NUMBER 
                  NOT NULL,"OBJ#" NUMBER NOT NULL,"SQL_TEXT

57 rows selected

bootstarp的对象都是在1.417之前的,当然有部分对象是基于Cluster创建的。那么这个对象在启动之前有什么作用呢?

itpub上的jametong同学给出了一个重要的信息,在SYSTEM文件头,Oracle存储了一个root dba:Root dba: This field only occurs in data file #1, and is the location of blocks required during bootstrapping the data dictionary (bootstrap$)。

这个root dba指向了1.417对象,而1.417对象的上一个对象正是bootstrap$,Oracle通过1.417找到了bootstrap$对象就可以启动了数据库。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章