ORA-01097错误解决办法及探索shutdown immediate

ORA-01097错误解决办法及探索shutdown immediate
很晚了要关机睡觉了,先把oralce 数据库关闭,结果出现下面的错误。
SQL> shutdown immediate
ORA-01097: cannot shutdown while in a transaction - commit or rollback first
提示说在一个事物未提交或者回滚前不能shutdown.我才想到我对一个测试用的表,进行了 下面的更新而没有提交。
SQL> update test01
  2  set (id,name)
  3  = ( select 102,'huawei' from dual)
  4  where id=100;
1 row updated.
现在来提交下。
SQL> commit
  2  ;
Commit complete.
再次尝试关闭数据库OK 了。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
虽然这个错误很简单,但是不能放过每一次学习的机会,趁此学些下shutdown immediate。 正如它的名字使用这种方式关闭数据库是比较快速的。并且在下次重启的时候不需要做实例 恢复。
使用shutdown immediate 会经历以下的情景。
1、不允许对数据库发起新的连接,会话不能发起新的事务。
2、没有提交的事务要先提交或者回滚。(正如你所看到了oracle 不会自动的完成该项工作 所以你需要自己来提交或者回滚事务)不过出现这种情况,可能会延迟关闭数据库的时间 具体取决于事务的长度与数量。
3、 oracle 数据库会主动的断开与用户的连接。
第二天开机以后我模拟了昨天关机的情景,是为了想证明oracle 会不会自动的帮我们做提交 或者回滚。先往测试表中插入一条记录,不提交。
SQL> insert into test01 
  2  values (103,'newland');
1 row created.
尝试关机。
SQL> shutdown immediate
ORA-01097: cannot shutdown while in a transaction - commit or rollback first
再关
SQL> shutdown immediate
再关。。。
ORA-01097: cannot shutdown while in a transaction - commit or rollback first
再关。。。。。。。
SQL> shutdown immediate
ORA-01097: cannot shutdown while in a transaction - commit or rollback first
显然oracle 不会自动的帮会话提交事务或者回滚事务。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-720298/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-720298/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值