设为首页 加入收藏

TOP

normal数据库关闭hang的问题(三)
2015-11-21 01:34:06 来源: 作者: 【 】 浏览:1
Tags:normal 数据库 关闭 hang 问题
QMNC Mon Jun 22 17:46:09 2015 QMNC started with pid=20, OS id=30789 Completed: ALTER DATABASE OPEN Starting background process CJQ0 Mon Jun 22 17:46:11 2015 CJQ0 started with pid=22, OS id=30806 Mon Jun 22 17:46:18 2015 Shutting down instance (normal) Shutting down instance: further logons disabled Stopping background process QMNC Stopping background process CJQ0 Stopping background process MMNL Stopping background process MMON License high water mark = 5 All dispatchers and shared servers shutdown ALTER DATABASE CLOSE NORMAL Mon Jun 22 17:46:22 2015 SMON: disabling tx recovery SMON: disabling cache recovery Mon Jun 22 17:46:22 2015 Shutting down archive processes Archiving is disabled Archive process shutdown avoided: 0 active Thread 1 closed at log sequence 1279 Successful close of redo thread 1 Completed: ALTER DATABASE CLOSE NORMAL ALTER DATABASE DISMOUNT Completed: ALTER DATABASE DISMOUNT ARCH: Archival disabled due to shutdown: 1090 Shutting down archive processes Archiving is disabled Archive process shutdown avoided: 0 active Mon Jun 22 17:46:23 2015 Stopping background process VKTM: ARCH: Archival disabled due to shutdown: 1090 Shutting down archive processes Archiving is disabled Archive process shutdown avoided: 0 active Mon Jun 22 17:46:25 2015 Instance shutdown complete

?

?

借鉴《Concept》,一些知识点:

1. 如果用户试图访问一个正在关闭的数据库,会得到错误提示:ORA-01090: shutdown in progress - connection is not permitted.

2. 关闭数据库,必须用SYSOPER或SYSDBA的角色。

3. 关闭数据库,是有超时时间的,如果用户未中断连接,或者交易未完成,超过一小时,则shutdown命令会取消,提示错误:ORA-01013: user requested cancel of current operation.

4. 几种关闭库的参数,

shutdown normal:

默认的关闭参数,需要两个条件:

(1) 执行语句后,不允许新的连接。

(2) 数据库关闭之前,数据库会等待所有已连接用户中断连接。

下一次启动时不需要实例恢复。

shutdown immediate:

使用场景:

(1) 初始化一个自动,无人值守的备份。

(2) 马上就要断电。

(3) 数据库或应用工作不正常,你不能马上联系到用户退出登录或他们无法退出登录。

条件:

(1) 不允许新的连接,不允许新的交易。

(2) 任何未提交的事务会回滚(如果此时有个长交易,未提交,那么不会像这种关闭名称immediate那样迅速地关闭)。

(3) 不会等待已连接用户退出登录。数据库会隐式回滚活动事务,中断连接用户。

下一次启动时不需要实例恢复。

shutdown transactional:

适用于计划停机,允许活动交易处理完成后再停止实例的场景。

条件:

(1) 不允许新的连接,不允许新的交易。

(2) 所有交易完成后,会中断所有和库的连接。

(3) 在这个时间点,关闭实例就像执行了shutdown immediate。

下一次启动时不需要实例恢复。

transactional参数主要会防止用户丢失交易,同时不需要所有用户退出登录。

shutdown abort:

适用场景:

数据库或应用不能正常工作,并且没有其它类型的关闭操作正在进行。

(1) 需要立即关闭数据库(例如,一分钟后电源会被关闭)。

(2) 启动实例时碰到了问题。

条件:

(1) 不允许新的连接,不允许新的交易。

(2) 正在被Oracle处理的客户端SQL语句会被立即中断。

(3) 未提交事务不会回滚。

(4) Oracle不会等待正保持连接的客户端退出登录。数据库会隐式地中断所有连接。

下一次启动时需要进行实例恢复。

总结:

以上四种参数会适合于不同的场景,简单讲,shutdown normal是默认的关闭方式,最完整的关闭方式,缺点是需要被动等待所有交易完成,所有用户退出登录。shutdown immediate只要不存在较长的需要回滚的事务,其关闭时间会快。shutdown transactional会最大限度地保证交易的完成。前三种都不需要实例恢复。shutdown abort则是最暴力的关闭,关闭时间最快,但代价是启动需要实例恢复,因为关闭时存在未回滚未提交的事务。

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库-并发控制 下一篇java.sql.SQLException:[Microsof..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: