Heim  >  Artikel  >  Datenbank  >  对数据库恢复的理解

对数据库恢复的理解

WBOY
WBOYOriginal
2016-06-07 15:24:001423Durchsuche

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 如果我们指定以alter database open resetlogs打开数据库,那么我们当前online line日志的sequence number会归为1,并且之前的日志信息都会被抛弃。 以下条件需要使用resetlog 1)在不完全恢复(介质

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  如果我们指定以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

  1)system checkpoint scn = datafile checkpoint 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

  1)system checkpoint scn

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

对数据库恢复的理解

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn