日期:2014-05-16  浏览次数:20417 次

oracle启动的状态
oracle启动的状态

Oracle 数据库服务状态有四个:Shutdown、Nomount、Mount和Open。启动服务可以通过Startup命令进行。

oracle实例启动的三个状态。
1 nomount(Instance started)
2 mount(Control file opened for this instance)
3 open(All files opened as described by the control file for this instance)


1 nomount,只启动实例(Instance started)。
这个过程oracle做了4件事。
1 打开参数文件,spfile或者pfile。
2 分配内存,即SGA。
3 启动后台进程。
4 写入alert<SID>.log日志文件和其他跟踪文件。

启动到nomount状态后,可以创建数据库或重新创建控制文件。

自己总结:这个过程出错,有两个原因,一是参数设置错误,二是操作系统级的问题。总结就是和数据库文件没有关系,因为这个时候还没有打开数据库文件。

上次一个朋友的数据库,被反复克隆后,死活启动不了实例,最后也没有解决,可惜了,没留下环境让我再研究一下。


2 mount
这个过程oracle做了3件事:
1 使数据库和实例关联。
2 打开控制文件(控制文件的位置由参数文件指定)。
3 读控制文件中的数据文件和重做日志文件的名称和状态,但是不检查他们是否存在。

启动到nomount状态后,可以进行:
1 重命名数据文件。
2 设置归档状态。
3 数据库恢复等。

自己总结:这个过程出错,应该是由控制文件引起的。


3 open
这个过程oracle做了3件事:
1 打开联机数据文件。
2 打开联机重做日志文件。
3 检查数据库的一致性,有可能会进行恢复操作。

自己总结:这个过程出错,有可能是数据文件和日志文件物理错误。或者一致性的问题。


相关命令:
STARTUP [OPEN|MOUNT|NOMOUNT]
ALTER DATABASE { MOUNT | OPEN }


参考:
Oracle Database 10g: Administration Workshop I Edition 3.0
Oracle9i 数据库管理基础I 第1 册? 学生指南 产品版1.1