每日一论 每个dba都会碰到的事shutdown immediate


当你放下shutdown immediate的时候,有的时候你会发现很久没有响应,为什么呢,这时候可能
会有大的事物在回滚,也可能还有很多用户连接在那等着被清理(用ps -ef |grep oracle|grep LOCAL=NO可以看到)。
或许有的人需要立即关闭数据库,等它不及,就放下shutdown abort,
但建议不要随便使用shutdown abort,因为关闭的时候没有保证数据的一致性,再次startup的时候还要做实例恢复。
如果你需要立即关闭数据库那么可以在操作系统上执行

ps -ef |grep oracle|grep LOCAL=NO|awk '{print $2}'|xargs kill -9

快速的从操作系统释放资源,然后shutdown immediate执行就要快很多了
为什么呢,因为这时候终止了回滚,只需要一致性关闭就行了,至于终止掉的回滚那数据库还做不做呢,
当然要做,不做可不行,那什么时候做呢,就是在你再次打开数据库,open之后做回滚,这样是不是节省了
关闭数据库的时间。

如果有较大事务的生产库我们可以这样来关闭数据库
1.停监听
2.ps -ef |grep oracle|grep LOCAL=NO|awk '{print $2}'|xargs kill -9
3.shutdown immediate(还可以再shutdown之前执行 alter system checkpoint,具体试情况而定,有时候觉着没多大意义,shutdown immediate就包含了完全检查点的)

以上纯属个人观点,如有误解,还请指正!
标签: 暂无标签
fishcat

写了 55 篇文章,拥有财富 503,被 40 人关注

oracle爱好者
转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2012-12-29 23:54:37
不错,改天实验下了
回复

使用道具

P4 | 发表于 2013-2-11 10:12:24
有道理,
ps -ef |grep oracle|grep LOCAL=NO|awk '{print $2}'|xargs kill -9
第一次见到,回头实验
回复

使用道具

P5 | 发表于 2013-2-16 15:14:17
mlqiang 发表于 2013-2-11 10:12
有道理,
ps -ef |grep oracle|grep LOCAL=NO|awk '{print $2}'|xargs kill -9
第一次见到,回头实验 ...

哈哈,祝你好运
回复

使用道具

P4 | 发表于 2013-2-17 23:02:55
不错,学习了!
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈