Oracle DB关闭

Oracle DB在shutdown时可选择关闭模式:NORMAL、TRANSACTIONAL、IMMEDIATE或ABORT
 
 
1、关闭模式
 
关闭模式对当前活动的适用性按以下顺序逐渐增强:
• ABORT:在关闭之前执行的任务最少。由于此模式需要在启动之前进行恢复,因此只在需要时才使用此模式。当启动实例时出现了问题,或者因紧急情况(如,通知在数秒内断电)而需要立即关闭时,如果其它关闭方式都不起作用,通常选择使用此模式。
 
• IMMEDIATE:这是最常用选项。选择此模式会回退未提交的事务处理。
 
• TRANSACTIONAL:允许事务处理完成
 
• NORMAL:等待会话断开
 
如果考虑执行关闭所花费的时间,则会发现ABORT的关闭速度最快,而NORMAL的关闭速度最慢。NORMAL和TRANSACTIONAL花费的时间较长,具体取决于会话和事务处理的数目。
 
2、关闭选项
 
在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 服务器不会等待当前连接到数据库的用户断开连接。
• 数据库和重做缓冲区未写入磁盘。
• 不回退未提交的事务处理。
• 实例终止,但未关闭文件。
• 数据库未关闭或未卸载。
• 下一次启动时需要进行实例恢复,实例恢复是自动进行的。
注:建议不要备份处于不一致状态的数据库。
 
3、使用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初始化参数文件。
原文地址:https://www.cnblogs.com/hzcya1995/p/13317128.html