如题,shutdown abort之后为什么不能做冷备?个人理解,shutdown abort后control file,datafile, redo log 检查点可能不一致,但是全部一起备份了的话 ,恢复的时候应该是可以用的?如果恢复的时候正常启动,待实例回复完成后正常关闭数据库,之后在通过归档日志进行完全恢复 不行么?请达人指点.

解决方案 »

  1.   

    因为联机日志不在备份范畴之内,所以说shutdown abort后不能冷备。
    不过你如果把联机日志也备了,那是可行的。
      

  2.   

    楼主的想法可行。
    oracle还不推荐在运行状态下进行冷备呢。但如果你是归档模式,并且运气还可以的话,在不关闭系统的情况下执行冷备(备份包括数据文件,归档日志文件,联机重做日志文件,控制文件)的话,也有很大机会成功恢复的。
        除非你运气差到在备份某个数据块的时候该数据块正好在update,导致块分裂。
      

  3.   

    shutdown abort有可能导致数据库起不来的
      

  4.   

     如果数据库shutdown abort,非commit的数据不回滚
     因为oracle写redo log的时候并没有保证未commit得数据也同步写入到了redo log文件中了,oracle保证的是“log-force-at-commit”,也就是,只有commit才会强制oracle将同步到redo log file里面,如果没有commit,实际上并不一定保证已经同步到文件中了,也可能还在buffer中,而shutdown abort后,不管是data buffer还是log buffer里面的数据肯定都会丢失。
       可能有人会问那后面oracle启动的时候那怎么恢复为一致,怎么回滚未commit得事务。实际上,oracle的redo log里面并不只是记录redo信息,redo log里面还记录了undo的很多信息,redo log的记录顺序是:undo 的redo -> undo -> redo。未commit得事务的回滚,实际上是利用了redo里面的信息和rollback segments里面的信息一起完成的。
      

  5.   

    为什么不能做?
    shutdown abort 然后启动,做recovery
    和 
    shutdown immediate,然后正常起动
    做的事情几乎一样,无非是把数据完整性放在结束的时候还是启动的时候来维护而已.
      

  6.   

    轻松赚钱  
    http://www.incomeweb.info/start.html?a_aid=4bbedf912493a
    免费注册月入7000美金
    了解详情请登陆http://1281354985.qzone.qq.com/查看日志