一、关闭模式
关闭模式对当前活动的适用性按如下顺序逐渐加强:
• ABORT:在关闭以前执行的任务最少。因为此模式须要在启动以前进行恢复,所以只在须要时才使用此模式。当启动实例时出现了问题,或者因紧急状况(如,通知在数秒内断电)而须要当即关闭时,若是其它关闭方式都不起做用,一般选择使用此模式。
• IMMEDIATE:这是最经常使用选项。选择此模式会回退未提交的事务处理。
• TRANSACTIONAL:容许事务处理完成
• NORMAL:等待会话断开
若是考虑执行关闭所花费的时间,则会发现ABORT的关闭速度最快,而NORMAL的关闭速度最慢。NORMAL和TRANSACTIONAL花费的时间较长,具体取决于会话和事务处理的数目。
二、关闭选项
在SHUTDOWN NORMAL或SHUTDOWN TRANSACTIONAL或 SHUTDOWN IMMEDIATE 这三个模式下关闭数据库,则:
关闭时:执行immediate时,会回退未提交的更改;数据库缓冲区高速缓存,会写入到数据文件;会释放资源。
启动时:不用恢复实例。
在SHUTDOWN ABORT或 实例错误 或STARTUP FORCE,则
关闭时:修改过的缓冲区未写入数据文件;不回退未提交的更改。
启动时:使用联机重作日志文件从新应用更改;使用还原段回退未提交的更改。
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 服务器不会等待当前链接到数据库的用户断开链接。
• 数据库和重作缓冲区未写入磁盘。
• 不回退未提交的事务处理。
• 实例终止,但未关闭文件。
• 数据库未关闭或未卸载。
• 下一次启动时须要进行实例恢复,实例恢复是自动进行的。
注:建议不要备份处于不一致状态的数据库。
三、使用SQL*Plus 启动和关闭
要使用SQL*Plus 启动、关闭数据库或者更改数据库的状态,必须以SYSDBA或SYSOPER身份登陆。而后,使用之前介绍的Enterprise Manager 功能的等效命令:
SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]
STARTUP [NOMOUNT | MOUNT | OPEN (open_options)] [FORCE]
[RESTRICT] [PFILE=filename]
这样,能够将启动和关闭操做包含在执行数据库任务的脚本或批处理中执行(这种状况下,数据库须要处于特定的状态)。
注:经过open选项能够指定一种访问模式,即指定的数据库启动时应处的模式。可能的模式包括:
• READ ONLY
• READ WRITE
对于STARTUP,还可使用PFILE选项。该选项指定要在启动数据库实例时使用的PFILE初始化参数文件。
来源:http://blog.csdn.net/rlhua/article/details/12238279