[转载]Oracle的启动过程


Oracle的启动过程分三步:nomount、mount和open(以下已oracle9i和windows平台为例)

首先来看看nomount,使用startup命令带上nomount参数,Oracle则启动到nomount状态,该状态其实就是启动一个Oracle实例,这个启动过程主要是完成下列任务:

1、读初始化参数文件,该文件或者由pfile参数指定,或者使用缺省的spfileSID.ora(如果spfileSID.ora没有则找 spfile.ora,再没有就看initSID.ora,这些都在%oracle_home%/database目录下),在这里说明一下,9i以前的 版本直接读initSID.ora,如果没有找到初始化文件,则会出错;

2、根据参数文件的参数来确定启动所作的操作如何执行;

3、在内存里分配出SGA(系统全局区),该区的大小就由参数文件指定;

4、启动后台进程,也就是DBWn LGWR PMON SMON CKPT这些进程;

5、打开alert和trace文件,这些都是用来记录和跟踪Oracle错误的诊断文件。在这个阶段,可以创建数据库和重建控制文件,数据库的名字必须和参数文件中的db_name一致,否则无法进行下一步。

接下来就是mount,由nomount到mount状态使用alter database mount命令,使用startup命令带上mount参数也可直接进入到该状态,这个阶段主要完成这些任务:

1、把前一个阶段启动的实例和数据库挂接起了,mount其实就是装上的意思;

2、根据参数文件中的参数定位和打开控制文件,这个时候如果控制文件中的db_name和参数文件中的db_name不一致则会出错;

3、根据控制文件获得数据文件和日志文件的名称和状态,但并不检查这些文件是否存在。在mount状态下可以重命名数据文件,可以改变归档模式,可以执行全数据库恢复等特殊的数据库维护。

最后就是open状态,alter database open可以把数据库从mount到open,但不能从nomount直接到open,使用startup不带任何参数数据库就直接启动到open状态,从nomount到open这个过程会完成以下内容:

1、打开数据文件和日志文件;

2、检查数据库的一致性;

3、如果必要后台进程会执行实例恢复(数据库非正常关闭)。

至此数据库就可以正常使用了,合法用户就可以连接数据库执行数据操作了。

 

SHUTDOWN命令就是关闭一个正在运行的Oracle实例(包括关闭和卸掉数据库),该命令需要sysdba和sysoper权限。

命令格式:SHUTDOWN[ABORT|IMMEDIATE|NORMAL|TRANSACTIONAL [LOCAL]]。

各参数的含义:

ABORT,不等当前连接用户断开连接,也不等正在执行的调用完成,最快的关闭当前数据库,所有未提交的事务不进行回滚,当前正在执行的SQL语句 被终止,所有连接被强行断开,内存中的data buffer和redo buffer不写入磁盘。该方式关闭要求在下一次启动时进行实例恢复,当发生后台进程异常中止时需要用该方式才能关闭Oracle实例。

IMMEDIATE,与ABORT方式不同,在该方式下将回滚当前事务,然后断开所有连接,data buffer cache会写入数据文件,这样在下一次启动就不需要实例恢复。

NORMAL,这是缺省值,使用该参数或不带参数,Oracle server会等所有用户断开连接后才关闭数据库,在这期间不允许新的连接产生,data buffer和redo buffer都会写入磁盘。

TRANSACTIONAL [LOCAL],不允许新的事务产生,用户连接将在当前事务完成后断开,当所有事务完成就开始关闭数据库,如果带有LOCAL参数,则只等本地的事务完 成。在这几种关闭方式中只有ABORT需要在下一次启动时进行实例恢复,其余都不需要,但它们对用户的影响不一样,NORMAL方式用户可以完成自己所有 的操作,但很少会用到该方式,因为如果有那位连接用户忘了断开连接或要做很多事,那么SHUTDOWN就会等很久,TRANSACTION用户不会受什么 损失,而IMMEDIATE方式则会有些用户需重做一遍SHUTDOWN前的操作。

不管什么方式,SHUTDOWN最后都会终止所有Oracle后台进程,从内存中释放掉SGA区。


以上摘自:http://www.oracle86.com/html/structure/instance/2009/0430/762.html

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

转载于:http://blog.itpub.net/22021749/viewspace-609200/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值