oracle会话未提交 退出后,【Shutdown】同一会话存在未提交事务时使用immediate选项无法关闭数据库...

这是一个事实,当同一会话存在未提交事务时使用immediate选项无法关闭数据库。简单看一下这个现象。1.模拟未提交事务这里为了简便,会话session1直接在sys用户下创建表t进行测试。sys@ora10g> create table t (x number);Table created.sys@ora10g> insert into t values (1);1 row created.2.使用immediate选项关闭数据库sys@ora10g> shutdown immediate;ORA-01097: cannot shutdown while in a transaction - commit or rollback firstOK,错误提示“ORA-01097”已经给出,提示信息解释的非常清楚。因此在同一个会话session1中如果存在未提交的事务使用immediate选项是没有办法关闭数据库的。3.在其他会话中存在未提交事务时可被immediate选项关闭1)首先我们提交上面第一个会话session1中的事务。sys@ora10g> commit;Commit complete.2)另外开启一个session2在开一个会话session2同样模拟一个未提交的事务sys@ora10g> create table t2 (x number);Table created.sys@ora10g> insert into t2 values (2);1 row created.这里不要提交事务。3)回到session1中执行具有immediate选项的关闭数据库命令回到第一个窗口执行关闭数据库的操作sys@ora10g> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.可见此时关闭动作可以成功完成。可以进一步确认第二个会话session2已经被强制杀死。这也是immediate选项本应具有的能力。sec@ora10g> select * from t;select * from t*ERROR at line 1:ORA-03135: connection lost contactERROR:ORA-03114: not connected to ORACLE4.体验无敌的abort方式关闭数据库1)启动数据库sys@ora10g> startup;ORACLE instance started.Total System Global Area  209715200 bytesFixed Size                  2071640 bytesVariable Size             125830056 bytesDatabase Buffers           75497472 bytesRedo Buffers                6316032 bytesDatabase mounted.Database opened.2)重新模拟同一会话中未提交事务sys@ora10g> select * from t;X----------1sys@ora10g> delete from t;1 row deleted.3)确认immediate选项无法关闭数据库sys@ora10g> shutdown immediate;ORA-01097: cannot shutdown while in a transaction - commit or rollback first4)使用abort选项关闭数据库sys@ora10g> shutdown abort;ORACLE instance shut down.sys@ora10g>可见abort选项的“闪电断电式”关闭数据库的方法是毫无任何羁绊的!5.小结这里给出的是一个现象和事实。从中可以体会出不同关闭数据库方式的细微差别(这里仅仅讨论了immediate和abort选项)。Good luck.secooler11.01.08-- The End --

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值