1、系统正常关闭: system scn=datafile scn=start scn=stop scn 1)system scn=datafile scn=start scn,不需要介质恢复 2)stopscn not null,不需要实例恢复 2、系统异常关闭: system scn=datafile scn=start scn,stop scn null 1)system scn=datafile scn=start scn,不需要介质恢复 2)stopscn null,需要实例恢复 3、旧数据文件 system scn=datafile scn>start scn,stop scn null/notnull 1)system scn=datafile scn>start scn,需要介质恢复成system scn=datafile scn=start scn 2)stopscn null,需要实例恢复,not null 不需要实例恢复 4、备份控制文件 system scn=datafile scn<=start scn(当数据文件为旧的相等),stop scn notnull/null 1)system scn=datafile scn<=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn=current log scn(当前日志最大SCN) 2)为保证上一次恢复没有用到log日志不被使用,必须resetlogs 5、重建noresetlogs控制文件 控制文件中 datafile Checkpoint来自Online logs中的Current log头 current log scn=system scn=datafile scn>=start scn,stop scn not null/null 1)current log scn=system scn=datafile scn>=start scn,需要介质恢复成system scn=datafile scn=start scn=redolog scn(当前日志最大SCN),stop scn not null 2)stopscn not null 不需要实例恢复 6、重建resetlogs控制文件 控制文件中datafile Checkpoint来自各数据文件头。 system scn>=datafile scn=start scn,stop scn not null/null 1)system scn>=datafile scn=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn(当前日志最大SCN),stop scn not null 2)stop notnull,因为SCN已经为redolog scn,log已经不能使用,必须resetlogs
7、alter database open resetlog 指定RESETLOGS将重设当前LOG sequence number为1,抛弃所有日志信息。
以下条件需要使用resetlog 1)在不完全恢复(介质恢复) 2)使用备份控制文件 使用resetlogs打开数据库后无必完整地备份一次数据库。 8、create controlfile resetlogs/noresetlogs 1).用Noresetlogs重建控制文件时,控制文件中 datafile Checkpoint来自Online logs中的Current log头 2).用Resetlogs重建控制文件时,控制文件中datafile Checkpoint来自各数据文件头。
当system scn,datafile scn,start scn 不全相等,需要介质恢复,如果stop scn null需要实例恢复 resetlogs抛弃所有在上一次恢复没有用到的日志信息,确保不被重新用与恢复。