启动Oracle DB 实例:NOMOUNT
启动数据库实例时,请选择实例启动时所处的状态。以下方案描述了启动实例过程中的不
同阶段。
在创建数据库期间、重新创建控制文件期间,或执行某些备份和恢复方案期间,通常只在
NOMOUNT 模式下启动实例。
启动实例过程包括执行以下任务:
• 按以下顺序搜索$ORACLE_HOME/dbs 中具有特定名称的文件:
- 搜索spfile.ora。
- 如果未找到spfile.ora,则搜索spfile.ora。
- 如果未找到spfile.ora,则搜索init.ora。
这是包含实例初始化参数的文件。使用STARTUP 指定PFILE 参数可覆盖默认
行为。
• 分配SGA
• 启动后台进程
• 打开alert_.log 文件和跟踪文件启动Oracle DB 实例:MOUNT
数据库装载过程包括执行以下任务:
• 将数据库与以前启动的实例关联
• 定位并打开参数文件中指定的控制文件
• 通过读取控制文件来获取数据文件和联机重做日志文件的名称和状态(但是,此时不
会执行检查来验证是否存在数据文件和联机重做日志文件)。
要执行特定的维护操作,请启动实例,然后装载数据库,但不打开该数据库。
例如,在执行以下任务期间必须装载数据库,但不得打开数据库:
• 重命名数据文件(打开数据库时可重命名脱机表空间的数据文件)。
• 启用和禁用联机重做日志文件归档选项
• 执行完整的数据库恢复
注:即使发出了OPEN 请求,数据库仍可能处于MOUNT 模式下。这是因为可能需要以某
种方式恢复数据库。如果在MOUNT 状态下执行恢复,将打开重做日志进行读取,并打开
数据文件读取需要恢复的块,以及在恢复期间根据需要写入块。
启动Oracle DB 实例:OPEN
数据库操作正常意味着实例已启动、数据库已装载且已打开。在数据库操作正常时,任何
有效用户都可连接到数据库,而且可执行典型数据访问操作。
打开数据库过程包括执行以下任务:
• 打开数据文件
• 打开联机重做日志文件
如果尝试打开数据库时任一数据文件或联机重做日志文件不存在,则Oracle 服务器返回
错误。
打开已装入的数据库使其可用于正常的数据库操作。
任何有效用户都可以连接到开放数据库并访问其信息。通常,数据库管理员打开数据库以使其可供一般使用。
打开数据库时,Oracle数据库将执行以下操作:
- 在undo表空间以外的表空间中打开在线数据文件
如果在先前关闭数据库时表空间处于脱机状态,则在重新打开数据库时,表空间及其相应的数据文件将处于脱机状态。 - 获取撤消表空间
如果存在多个撤消表空间,则UNDO_TABLESPACE
初始化参数指定要使用的撤消表空间。如果未设置此参数,则选择第一个可用的撤消表空间。 - 打开在线重做日志文件
在最后这个阶段,Oracle 服务器会验证是否可以打开所有数据文件和联机重做日志文件,
还会检查数据库的一致性。如有必要,系统监视器(SMON) 后台进程将启动实例恢复。
关闭模式
关闭模式对当前活动的适用性按以下顺序逐渐增强:
• ABORT:在关闭之前执行的任务最少。由于此模式需要在启动之前进行恢复,因此只
在需要时才使用此模式。当启动实例时出现了问题,或者因紧急情况(如,通知在数
秒内断电)而需要立即关闭时,如果其它关闭方式都不起作用,通常选择使用此模式。
• IMMEDIATE:这是最常用选项。选择此模式会回退未提交的事务处理。
• TRANSACTIONAL:允许事务处理完成
• NORMAL:等待会话断开
如果考虑执行关闭所花费的时间,则会发现ABORT 的关闭速度最快,而NORMAL 的关闭
速度最慢。NORMAL 和TRANSACTIONAL 花费的时间较长,具体取决于会话和事务处理
的数目。
关闭选项
SHUTDOWN NORMAL
NORMAL 是使用SQL*Plus 时的默认关闭模式。正常关闭数据库时会发生以下情况:
• 不可以建立新连接。
• Oracle 服务器待所有用户断开连接后再完成关闭。
• 数据库和重做缓冲区被写入磁盘。
• 后台进程终止,并从内存中删除SGA。
• Oracle 服务器在关闭并断开数据库后关闭实例。
• 下一次启动不需要进行实例恢复。
SHUTDOWN TRANSACTIONAL
采用TRANSACTIONAL 关闭方式可防止客户机丢失数据,其中包括客户机当前活动的
结果。执行事务处理数据库关闭时会发生以下情况:
• 任何客户机都不能利用这个特定实例启动新事务处理。
• 会在客户机结束正在进行的事务处理后断开客户机。
• 完成所有事务处理后立即执行关闭。
• 下一次启动不需要进行实例恢复。
SHUTDOWN IMMEDIATE
采用IMMEDIATE 关闭模式会出现以下情况:
• Oracle DB 正在处理的当前SQL 语句不会完成。
• Oracle 服务器不会等待当前连接到数据库的用户断开连接。
• Oracle 服务器会回退活动的事务处理,而且会断开所有连接用户。
• Oracle 服务器在关闭并断开数据库后关闭实例。
• 下一次启动不需要进行实例恢复。
注:IMMEDIATE 是使用Enterprise Manager 时的默认关闭模式。
SHUTDOWN ABORT
如果NORMAL、TRANSACTIONAL 和IMMEDIATE 关闭模式都不起作用,则可以中止当前
的数据库实例。中止实例时会发生以下情况:
• Oracle DB 正在处理的当前SQL 语句会立即终止。
• Oracle 服务器不会等待当前连接到数据库的用户断开连接。
• 数据库和重做缓冲区未写入磁盘。
• 不回退未提交的事务处理。
• 实例终止,但未关闭文件。
• 数据库未关闭或未卸载。
• 下一次启动时需要进行实例恢复,实例恢复是自动进行的。
注:建议不要备份处于不一致状态的数据库。