事务处理可以回滚的,但是我想更新一个数据库时,更新到一半时,断电,恢复电力后怎么样继续更新啊,而不是回滚到更新之前,而是接着更新啊,
如果回滚到未更新之前,在从头更新,这样很费事,怎么接着更新啊,有点类似断电续传的作用。
高手帮忙设计下,怎么样处理好

解决方案 »

  1.   

    可以使用部分提交,比如你有10000行记录更新,可以每更新100行commit一次,如果发生异常,已经commit的数据都在数据库里了,下次恢复后只更新剩余未更新的记录即可。
      

  2.   

    2楼正解,如果你实在有特殊需求,可是试试savapoint
      

  3.   

    最好还是从头再来,保持数据的一致性。或者你分开几个事务来处理,出错了你还是需要看log的!
      

  4.   

    对于这种操作,一般情况下一个事物完成了,一次性提交,
    关于这个你要了解oracle的三种启动,关闭方式,shutdown abort 就是属于断电的那种,没有提交的全部回滚,下次启动时 ,oracle 会执行内部同步