ITPub博客

oracle数据库启动过程大揭秘

原创 Oracle 作者:yushi2262 时间:2014-05-04 13:26:35 0 删除 编辑
    五一期间,拜读了《Oracle Database 9i/10g/11g编程艺术》,突然对oracle数据库启动过程有了清晰的了解,现通过实验对其启动过程进行大揭秘。
一、oracle数据库启动概述及部分知识储备
     很多人都知道,oracle数据库具有四种状态,启动过程具有三个阶段。四种状态分别shutdown、nomount、mount、open,对应三个阶段分别为shutdown至nomount,nomount至mount,mount至open。
     ps命令:常用来查看系统运行了哪些进程。
     ipcs:报告进程间通信设施状态。会报告指出使用了共享内存和信号量。
二、oracle数据库启动详解
2.1 shutdown状态
     查看进程和通信设施状态:

2.2 shutdown至nomount阶段
数据库状态如下图:

查看系统进程和通信设施状态:

由smon、pmon等进程可以看出此阶段实例已经启动,并首次报告使用了共享内存和信号量。因此此阶段完成了以下任务:
1、读取参数文件,并指定控制文件和数据库实例名
2、分配SGA
3、启动后台进程
4、打开告警文件和跟踪文件
注意:读取参数文件顺序为:spfile(sid).ora,init(sid).ora,init.ora
2.3 nomount至mount状态
数据库状态图如下:

可以看出数据库状态已变成mount了,可以查询控制文件、数据文件、重做日志文件了。表明此阶段,打开了控制文件,将数据库与打开的实例相关联,同时读取了数据文件和重做日志文件的名称和状态。但此时还不能查询用户表的内容。如图:

2.3 mount至open状态
数据库状态信息:


    由实验可以看出此阶段打开了数据库,通过控制文件打开了数据文件和重做日志文件。
三、总结
    由oracle数据库启动过程来看,实例其实就是诸如smon、pmon、ckpt、dbwn、lgwr等进程以及这些进程需要的共享内存集合,具有生命周期。数据库就是物理文件(控制文件、数据文件、重做日志文件、参数文件等)的组合。一个实例只能加载一个数据库。在rac中,一个数据库可以被多个实例连接。所以实例和数据库还是有区别的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29620680/viewspace-1153413/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-04-21

  • 博文量
    8
  • 访问量
    17687