ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-01097错误解决办法及探索shutdown immediate

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

原创 Linux操作系统 作者:pingley 时间:2012-04-04 10:33:50 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 聚集函数之cube
请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    720812