导读:如果我们指定以alter database openresetlogs打开数据库,那么我们当前onlineline日志的sequencenumber会归为1,并且之前的日志信息都会被抛弃。这时就要用到数据库的恢复技术。
以下条件需要使用resetlog
1)在不完全恢复(介质恢复)
2)使用备份控制文件(backup的控制文件一般从日志文件和数据库的信息以及SCN的信息,相比目前的状态都已经过期了)
使用resetlogs打开数据库(logsequencenumber变为1)后无必完整地备份一次数据库。而且这一操作会抛弃所有在上一次恢复没有用到的日志信息,确保不被重新用与恢复。
在重建控制文件的时候需要注意:
create controlfile resetlogs/noresetlogs
1).用noresetlogs重建控制文件时,控制文件中 datafile checkpointscn来自onlinelogs中的Current log头
2).用resetlogs重建控制文件时,控制文件中datafile CheckpointSCN来自各数据文件头(StartSCN)。
如果system checkpoint scn,datafile checkpoint scn,startscn不全相等,需要介质恢复.
如果stopscn null需要实例恢复
小小的总结一下各种情况:
1、系统正常关闭:
会使得:system checkpoint scn = datafile checkpoint scn = start scn=stop scn
1)system checkpoint scn = datafile checkpoint scn =startscn,不需要介质恢复
2)stop scn is not null = start SCN,不需要实例恢复
2、系统异常关闭:
会使得:system checkpoint scn = datafile checkpoint scn = start scn=stop scn
1)system checkpoint scn = datafile checkpoint scn =startscn,不需要介质恢复
2)stop scn is null,需要实例恢复
【编辑推荐】