Oracle-解析启动的全过程

来源:Oracle认证    发布时间:2012-11-12    Oracle认证视频    评论

    之前对Oracle也没有什么了解,只是DBA给我们一个用户,然后我们连上去就OK,总是搞不明白。今天有空来看看Oracle的启动过程,还是有很多东西值得我们来仔细研究的:
    Oracle的启动过程总共分三步:
    1 启动Oracle的实例;
    2 挂载Oracle数据库;
    3 打开数据库;
    启动Oracle实例到nomount状态:
    SQL> startup nomount
    ORACLE 例程已经启动。
    Total System Global Area  293601280 bytes
    Fixed Size                  1248600 bytes
    Variable Size             109052584 bytes
    Database Buffers          176160768 bytes
    Redo Buffers                7139328 bytes
    SQL>
    在这个情况下,Oracle都做了哪些工作呢:只是去寻找一个叫做spfile,或者是pfile的文件,然后根据这个文件去创建实例,分配内存;那么你肯定是要问,那我如何才可以知道我载入的那个文件呢:
    SQL> show parameter spfile;  NAME                                 TYPE ------------------------------------ ---------------------- VALUE ------------------------------ spfile                               string D:/ORACLE/PRODUCT/10.2.0/DB_1/ DATABASE/SPFILEGJSID.ORA SQL> 看到了吧,Oracle载入的就是在这个目录下的SPFILE.ora。那pfile和spfile之间有什么区别呢:pfile其实和spfile是一样的内容,只不过spfile在文件头的时候,有些我也不太明白的东西。
    可以用以下的命令来实现pfile和spfile的转换:
    SQL> create pfile from spfile;  文件已创建。  SQL>
    接下来呢,就到了挂载Oracle数据库的时候:
    SQL> alter database mount;  数据库已更改。 那这个过程中,Oracle做了哪些工作,其实是根据刚刚spfile里面的内容来寻找一个叫做控制文件的东东control file,你能搞明白么,在Oracle中,共有三个一模一样的控制文件,就是为了防止有控制文件损坏。
    这个时候你可以通过以下的命令来查看加载的控制文件:
    SQL> select * from v$controlfile;  STATUS  NAME                                     IS_ BLOCK_SIZE FILE_SIZE_BLKS ------- ---------------------------------------- --- ---------- --------------         D:/ORACLE/DATA/GJSID/CONTROL01.CTL       NO       16384            430         D:/ORACLE/DATA/GJSID/CONTROL02.CTL       NO       16384            430         D:/ORACLE/DATA/GJSID/CONTROL03.CTL       NO       16384            430  SQL> show  parameter control_file;  NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ control_file_record_keep_time        integer     7 control_files                        string      D:/ORACLE/DATA/GJSID/CONTROL01                                                  .CTL, D:/ORACLE/DATA/GJSID/CON                                                  TROL02.CTL, D:/ORACLE/DATA/GJS                                                  ID/CONTROL03.CTL SQL> 看到了吧,这个时候,控制文件就加载到系统视图里了,在没有mount之前,v$controlfile里是没有内容的。
    打开数据库,
    SQL> alter database open;
    这个时候,Oracle会去数据文件头和控制文件头里去检查数据库版本的一致性,和数据的连续性,检查SCN - system changing number。
    至此,Oracle就算是启动完成了。如果其中有报错的话,可以去查看在alter_.log. 在其中有比较完整的信息。
    全当自己学习Oracle的笔记吧。
    本文出自 “小菜的空间” 博客,请务必保留此出处http://esc3721.blog.51cto.com/2366253/506900

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答