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

Oracle 数据库实例启动关闭过程
启动过程:nomount ---> mount ---> open               (startup不带参数将逐步一一完成)

1.nomount阶段(即实例的启动)
        实例的启动通常包含下列任务:
           a.按以下顺序在$ORACLE_HOME/dbs[win平台为database]目录下搜索下列文件,即如果第一个没找到,就找下一个
               spfile<SID>.ora ---> spfile.ora ---> init<SID>.ora
           b.分配SGA
           c.启动后台进程
           d.打开并修改告警<SID>.log文件及跟踪文件
       使用场景:
           多用于数据库创建、控制文件重建、特定的备份恢复等
       注意:
           此阶段不打开任何的控制文件及数据文件。
         
    2.mount阶段
        mount阶段完成的任务:
           a.启动实例并打开控制文件,将数据库与实例关联起来
           b.利用参数文件中的说明,打开并锁定控制文件
           c.读取控制文件以获取数据文件和重做日志文件的名字和状态信息,但不检查数据日志文件是否存在
       使用场景:
           a.重命名数据文件,移动数据文件位置等(数据库打开,表空间脱机的情况下也可以重命名数据文件)
           b.启用或关闭重做日志文件的归档及非归档模式
           c.实现数据库的完全恢复
       注意:
           这一步会读控制文件,如果这一步有一个控制文件损坏就无法启动
         
    3.open阶段
       mount阶段完成的任务:
           a.打开数据文件
           b.打开联机日志文件
       注意:
            a.在此期间,Oracle服务器将校验所偶的数据文件和联机日志文件能否打开并对数据库作一致性检查
           b.如果出现一致性错误,SMON进程将启动实例恢复
           c.如果任一数据文件或联机日志文件丢失,Oracle服务器将报错
    4.特殊的方式打开数据库
       只读模式:
       startup open read only;
     
       如果现在在mount
       alter database open read only;
     
       受限模式:
       有时进行数据库维护护,希望一般的用户不能登录。可以启动到该模式,这样只有用户具有
       restricted session 权限,才可登录到数据库。
     
       启动方法:
           startup restrict;
         
       取消受限:
            alter system disable restricted session;

二、数据库实例的关闭
    关闭命令:shutdowm abort | immediate | transactional | normal (shutdown不带参数将缺省为normal)
    关闭选项:
       normal         --->不准许新的连接,等待当前的session 结束,等待当前的事务结束,强制检查点并关闭文件
       transactional --->不准许新的连接,不等待当前的session结束,等