Oracle数据库基础学习06-关闭数据库

Oracle的关闭也有好几种模式,每种模式具有不同的特性,并且关闭所花费的时间也各不相同。

关闭数据库使用 SHUTDOWN 命令,具有4种关闭模式,分别是 NORMAL、TRANSACTION、IMMEDIATE、ABORT。其中 NORMAL 是默认模式。

下面介绍这几种不同模式之间的区别

NORMAL模式

示例语句:shutdown

NORMAL 是默认的关闭模式,这种模式在关闭数据库之前会等待所有的用户断开与数据库的连接,当所有的会话都断开以后数据库关闭,这种模式会导致数据库需要长时间等地才能正常关闭。使用 NORMAL 模式关闭数据库时,Oracle会发生如下的几种情况:

  • 数据库将不再接收新的数据库连接
  • Oracle服务器等待所有的用户断开连接才完成关闭
  • 数据库文件和重做缓冲区会写入到磁盘中
  • 后台进程被终止,从内存中删除SGA
  • 下一次启动时不需要进行实例恢复

NORMAL模式通常会等待较长的时间才能关闭数据库

TRANSACTION模式

示例语句:shutdown transactional

TRANSACTION模式会等待当前的事务处理完成后就断开连接,当所有的事务处理完成后就会关闭数据库

它会完成如下的一些行为:

  • 任何新用户不能连接到数据库
  • 现有的用户不能启动新的事务,并且连接将会断开
  • 如果用户正在执行事务,在断开用户的连接前,Oracle将等待,直到该事务处理完成
  • 当所有的事务都完成后,Oracle就关闭实例并释放内存,然后将所有的重做日志缓冲区和数据块缓冲区写入磁盘
  • 由于事务都已得到了处理,所以不需要进行实例恢复

TRANSACTION模式保证了Oracle的数据库事务都得到了一致性的处理,因此是一种较为安全的恢复方式,不过它会等待所有的事务处理完成,因此对于长时间的事务来说,仍然需要等待完成,如果因为介质故障灯需要紧急关闭,这种模式不是很适用。

IMMEDIATE模式

示例语句:shutdown immediate

IMMEDIATE模式会立即关闭数据库,这种方式不会无限的等待用户退出,也不会等待事务的完成,它会回滚(ROLLBACK)所有的事务,断开所有已连接的用户,然后关闭数据库。IMMEDIATE会完成如下的一些动作:

  • 该命令发出后,任何用户都不能进行连接
  • 立即断开所有的用户连接
  • 终止所有当前正在执行的数据库事务
  • 对于正在执行的事务,Oracle会将事务进行回滚,是数据保持一致,由于回滚也需要时间,因此IMMEDIATE操作有时也并不是立即完成的。
  • 重启数据库时不需要进行实例恢复,因为它在关闭时是一致的。

ABORT模式

示例语句:shutdown abort

ABORT模式直接关闭数据库,不管当前是否正在执行事务,即不等待完成,也不进行回滚,直接断开连接。ABORT可以看作是强制性的关闭数据库,它会完成如下的几个行为:

  • 它不允许进行新的数据库连接
  • 无论是否有可执行的事务,都会终止会话
  • 事务不会被回滚,更不会等待事务完成
  • 不会将重做日志缓冲区中的数据缓冲区写到磁盘
  • 终止后台进程,立即释放内存并关闭数据库
  • 由于强制性终止不能保证数据库在关闭时是一致的,因此在重启时,Oracle将执行自动恢复实例

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值