暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库几种关闭方式的对比

原创 Eygle 2019-07-24
596

SHUTDOWN NORMAL

SHUTDOWN NORMAL是数据库关闭SHUTDOWN命令的缺省选项,当我们执行SHUTDOWN时,Oracle即以正常方式关闭数据库。发出该命令后,任何新的连接都将不再允许连接到数据库,但是在数据库关闭之前,Oracle需要等待当前连接的所有用户都从数据库中退出。

采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复,但是由于Normal方式要等所有用户断开连接后才能关闭数据库,所以等待时间可能超长;在生产环境中,这种方式几乎无法关闭有大量用户连接的数据库,所以很少被采用。

 SHUTDOWN IMMEDIATE

SHUTDOWN IMMEDIATE方式是最为常用的一种关闭数据库的方式,使用这个命令时,当前正在被Oracle处理的事务立即中断,未提交的事务将全部回滚,系统不等待连接到数据库的用户退出,强制断开所有的连接用户。然后执行检查点,将变更数据全部写回数据文件,关闭数据库。使用这种方式关闭数据库,在下次启动数据库时不需要进行实例恢复,是一种安全的数据库关闭方式。

但是注意,如果数据库系统繁忙,当前有大量事务执行(甚至是大事务正在处理),那么使用此选项关闭数据库也可能需要大量时间。

 SHUTDOWN TRANSACTIONAL

SHUTDOWN TRANSACTIONAL选项仅在Oracle 8i后可用,使用该命令时,数据库不再允许建立新的连接,禁止新事务的进行,但是允许当前活动事务执行完毕。

在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

 SHUTDOWN ABORT

SHUTDOWN ABORT是最不推荐采用的关闭数据库的方法,使用改选项,数据库会立即终止所有用户连接、中断所有事务、立即关闭数据库,使用这种方式关闭数据库,未完成事务不会回滚,数据库也不会执行检查点,所以在下次启动时,数据库必须执行实例恢复,实例恢复可能会需要大量时间,数据库的启动因此可能需要等候很长时间。

Abort的方式关闭数据库,就类似于数据库服务器突然断电,可能会导致不一致的情况出现,所以除非不得已,轻易不要使用这种方式关闭数据库。

那么在什么情况下需要使用Shutdown abort方式关闭数据库呢?以下是一些常见的场景:

u 数据库或应用异常,其他方式无法关闭数据库

u 因为马上到来的断电或其他维护情况,需要快速关闭数据库

u 启动异常后需要重新尝试启动

u 当使用Shutdown Immediate无法关闭时

u 需要快速重新启动数据库

u Shutdown超时或异常


最后修改时间:2019-07-24 10:07:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论