oracle热备份,用的是一周前的热备份,用的控制文件是今天的,但在这一周内数据库出问题了(问题是热备没有结束,正常工作无法联接,我就重启服务,也就是我在数据文件归档时停了数据库),用了recover database ,后可能是用了alter database open resetlogs;
这样恢复是老是提ora-01189错误!
老是说datafile or controlfile is before RESETLOGS;
有人能具体说说controlfile 和resetlogs的关系吗???
还有数据库启动时v$datafile  v$log v$recoverfile v$database 的关系吗???

解决方案 »

  1.   

    alter database open resetlogs;---不完全恢复时使用,是为了重置redolog里的scn号
    因为控制文件时今天的,而数据文件是一周前的,所以造成不匹配,
    v$recoverfile里是redolog或archive log 和数据不匹配需要恢复的数据。
    v$datafile是数据文件
    v$log是关于redo log的信息
    v$database是关于目前实例的信息要想恢复数据库,应该把数据库启动到mount状态,
    查看v$recoverfile里是否有数据,有的话recover database 没有的话,就需要恢复数据库
    恢复完以后,更改数据库为open