ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 对数据库恢复的理解

对数据库恢复的理解

原创 Linux操作系统 作者:flyingslr 时间:2008-07-18 14:54:50 0 删除 编辑

 

作者: 胡金培, 出处:IT专家网,责任编辑: 李书琴,
2008-07-03 10:41
如果我们指定以alter database open resetlogs打开数据库,那么我们当前online line日志的sequence number会归为1,并且之前的日志信息都会被抛弃使用resetlogs打开数据库(log sequence number变为1)后无必完整地备份一次数据库而且这一操作会抛弃所有在上一次恢复没有用到的日志信息,确保不被重新用与恢复

如果我们指定以alter database open resetlogs打开数据库,那么我们当前online line日志的sequence number会归为1,并且之前的日志信息都会被抛弃

以下条件需要使用resetlog

1)在不完全恢复(介质恢复)

2)使用备份控制文件(backup的控制文件一般从日志文件和数据库的信息以及SCN的信息,相比目前的状态都已经过期了)

使用resetlogs打开数据库(log sequence number变为1)后无必完整地备份一次数据库而且这一操作会抛弃所有在上一次恢复没有用到的日志信息,确保不被重新用与恢复

在重建控制文件的时候需要注意:

create controlfile resetlogs/noresetlogs

1).用noresetlogs重建控制文件时,控制文件中 datafile checkpoint scn来自online logs中的Current log头

2).用resetlogs重建控制文件时,控制文件中datafile Checkpoint SCN来自各数据文件头(Start SCN)

如果system checkpoint scn,datafile checkpoint scn,start scn 不全相等,需要介质恢复.

如果stopscn null需要实例恢复

小小的总结一下各种情况:

1系统正常关闭:

会使得:system checkpoint scn = datafile checkpoint scn = start scn = stop scn

1)system checkpoint scn = datafile checkpoint scn = start scn,不需要介质恢复

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 = start scn,不需要介质恢复

2)stop scn is null,需要实例恢复

 

3旧数据文件

会使得:system checkpoint scn = datafile checkpoint scn > start scn,stop scn is null/ is not null

1)system checkpoint scn = datafile checkpoint scn > start scn

需要介质恢复成system checkpoint scn = datafile checkpoint scn = start scn

2)stop scn is null,需要实例恢复,is not null 不需要实例恢复

4备份控制文件

会使得:system checkpoint scn = datafile checkpoint scn <= start scn(当数据文件为旧且和旧控制文件为同一版本的时候相等,如果数据文件是当前的数据文件则是小于),stop scn notnull/null

1)system checkpoint scn = datafile checkpoint scn <= start scn,需要使用using backup controlfile介质恢复成system scn = datafile scn = start scn = current log scn(当前日志最大SCN)

2)为保证上一次恢复没有用到log日志不被使用,必须在恢复完成后用resetlogs打开数据库

5以noresetlogs方式重建控制文件

在以这种方式重建控制文件时,控制文件中的datafile checkpoint scn来自于Online logs中的Current log头,因此

current log scn = system checkpoint scn = datafile scn >= start scn(如果数据文件为备份而来则会大于start SCN,如果是当前的则为相等于start SCN), stop scn not null/null

1)current log scn = system checkpoint scn = datafile checkpoint scn >= start scn,因此需要介质恢复成system checkpoint scn = datafile scn = start scn = redolog scn(当前日志最大SCN)

2)stopscn is not null 不需要实例恢复

6以resetlogs方式重建控制文件

控制文件中datafile checkpoint scn 来自各数据文件头(start scn),而且system checkpoint scn会归为0

system checkpoint scn < datafile checkpoint scn = start scn,stop scn not null/null

1)system checkpoint scn < datafile checkpoint scn = start scn,需要使用using backup controlfile介质恢复成system checkpoint scn = datafile checkpoint scn = start scn(当前日志最大SCN),stop scn not null

2)stopscn is not null 不需要实例恢复,而且因为SCN已经为redolog scn,log已经不能使用,必须用resetlogs方式打开数据库

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10225874/viewspace-404379/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-15

  • 博文量
    44
  • 访问量
    87699