在冷备份的时候 为什么需要关闭数据库
  在我测试的过程中,在数据库运行的时候,是可以复制数据文件的。所以不存在只有关闭数据库才能复制的问题
  在热备份的时候,也就是在alter database begin backup 后 做了复制文件的操作,只是热备份多了一个scn的锁定,保证复制过程中数据的一致性,是不是这里就是冷备份会出问题的地方?    

解决方案 »

  1.   

    正如你所说的,数据库在运行的时候,是可以对dbf和ctl文件进行复制的。冷备份的时候,需要停止数据库,不会为了防止文件不能复制,而是在关闭数据库时,使得dbf和ctl文件的checkpoint cnt 和 SCN保持数据一致性。如果,在数据库真正运行时,去备份dbf和ctl文件,而这个时候,又有事务处理,那么以后你用这个备份文件进行恢复数据库的时候,就会发生数据不一致的现象。
      

  2.   

       你的意思是指在运行时备份的数据文件内部不一致么 ?  这里的数据不一致不是dbf与ctl文件的scn不一致吧 , 毕竟用热备份的时候,数据文件和控制文件的scn也是肯定不一样的。
      

  3.   

    热备份的时候,数据文件和控制文件的scn也是肯定不一样的,所以这个时候会额外的生成大量的Redo log,来记录差分数据。
      

  4.   

    虽然可以copy,但SCN不一致,是无法恢复的。