recover与resetlog.docx_第1页
recover与resetlog.docx_第2页
recover与resetlog.docx_第3页
recover与resetlog.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

有关 SCN 和 RESETLOG的一些资料简单说两句:要理解recover database using backup controlfile,先理解 recover database 也就是说,不加using backup controlfile的情况。在 普通的recover database 或者 recover tablespace, recover datafile时, Oracle会以当前controlfile所纪录的SCN为准,利用archive log和 redo log的redo entry, 把相关的datafile 的 block恢复到“当前controlfile所纪录的SCN”而某些情况下,Oracle需要把数据恢复到比当 前controlfile所纪录的SCN还要靠后的位置(比如说,control file是backup controlfile , 或者 controlfile是根据trace create的。),这时候,就需要用using backup controlfile. 恢复就不会受“当前controlfile所纪录的SCN”的限制。这时候的限制就来自于你的语句(until time , until scn),或者可用的archive log(until cancel) .-首先这里我们先介绍四个SCN概念。1、系统检查点scn当一个检查点动作完成后,Oracle就把系统检查点的SCN存储到控制文件中。select checkpoint_change# from v$database;2,数据文件检查点scn当一个检查点动作完成后,Oracle就把每个数据文件的scn单独存放在控制文件中。select name,checkpoint_change# from v$datafile;3,启动scnOracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。select name,checkpoint_change# from v$datafile_header4、终止scn每个数据文件的终止scn都存储在控制文件中。select name,last_change# from v$datafile以下条件需要使用using backup controlfile 1)、使用备份控制文件2)、重建resetlogs控制文件,如果重建立noresetlogs不必要使用using backup controlfile2、alter database open resetlog 指定RESETLOGS将重设当前LOG sequence number为1,抛弃所有日志信息。以下条件需要使用resetlog1)在不完全恢复(介质恢复)2)使用备份控制文件使用resetlogs打开数据库后无必完整地备份一次数据库。3、create controlfile resetlogs/noresetlogs1)用Noresetlogs重建控制文件时,控制文件中 datafile Checkpoint来自Online logs中的Current log头2)用Resetlogs重建控制文件时,控制文件中datafile Checkpoint来自各数据文件头。当system scn,datafile scn,start scn 不全相等,需要介质恢复,如果stopscn null需要实例恢复resetlogs抛弃所有在上一次恢复没有用到的日志信息,确保不被重新用与恢复。1、系统正常关闭:system scn=datafile scn=start scn=stop scn1)system scn=datafile scn=start scn,不需要介质恢复2)stopscn not null,不需要实例恢复2、系统异常关闭:system scn=datafile scn=start scn,stop scn null1)system scn=datafile scn=start scn,不需要介质恢复2)stopscn null,需要实例恢复3、旧数据文件system scn=datafile scnstart scn,stop scn null/notnull1)system scn=datafile scnstart scn,需要介质恢复成system scn=datafile scn=start scn2)stopscn null,需要实例恢复,not null 不需要实例恢复4、备份控制文件system scn=datafile scn=start scn(当数据文件为旧的相等),stop scn notnull/null1)system scn=datafile scn=start scn,stop scn not null/null1)current log scn=system scn=datafile scn=start scn,需要介质恢复成system scn=datafile scn=start scn=redolog scn(当前日志最大SCN),stop scn not null2)stopscn not null 不需要实例恢复6、重建resetlogs控制文件控制文件中datafile Checkpoint来自各数据文件头。 system scn=datafile scn=start scn,stop scn not null/null1)system scn=datafile scn=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn(当前日志最大SCN),stop scn not null2)stop notnull,因为SCN已经为redolog scn,log已经不能使用,必须resetlogs关于recoverdatabase的一些理解在普通的recoverdatabase或者recovertablespace,recoverdatafile时, Oracle会以当前controlfile所纪录的SCN为准,利用archive log和 redo log的redo entry, 把相关的datafile 的 block恢复到“当前controlfile所纪录的SCN”而某些情况下,Oracle需要把数据恢复到比当前controlfile所纪录的SCN还要靠后的位置(比如说,control file是backupcontrolfile , 或者 controlfile是根据trace create的。),这时候,就需要用usingbackupcontrolfile. 恢复就不会受“当前controlfile所纪录的SCN”的限制。这时候的限制就来自于你的语句(until time , until scn),或者可用的archive log(until cancel)startup nomount后, recover database,可以使用until cancel来进行incomplete recover,recover database until cancel,数据库会逐一应用redo log直到cancel(应用所有的redo log就是complete recover)如果 recover database using backup controlfile 则一定是incomplete recoverrecover 完成后需要 alter database open resetlog 重置 redologresetlog的一篇文很多人说,resetlogs就是不完全恢复,这是不对的,做不完全恢复必须使用resetlogs,但resetlogs也可以做完全恢复。而noresetlogs则是必须做完全恢复时使用。resetlogs会重置日志序列号强制清空或重建REDO,而noresetlogs则不会这么做。第一种情况,我们假设仅仅控制文件丢失,而其他文件没有丢失(主要是归档和REDO),那么恢复的时候如果选择从备份中恢复控制文件。恢复后,控制文件会去读数据文件头中与CHECKPOINT SCN对应的RBA信息来确定从那个序列的归档日志开始恢复,一直推进恢复到NEXT SCN是无穷大的那个REDOLOG,此时恢复是完全恢复的,但打开的时候还要以resetlogs方式打开,这样要重置归档日志的sequence,也就是说,如果你恢复时使用了备份控制文件,那么打开数据库时必然是要resetlogs的。第二种情况,不完全恢复,不管你是要什么样的不完全恢复,SCN,TIME,跨越REDO,都必须使用resetlogs。第三种情况,丢失REDOLOG,这就更需要resetlogs了,因为resetlogs能够重建REDOLOG。如果你的REDOLOG、控制文件、数据文件丢失的话,需要先恢复控制文件,然后restore database;recover database;alter database open resetlogs;注意,这时候做的是不完全恢复,因为REDO没有了。在recover过程中可能会报错然后自动退出RMAN,无视,alter database open resetlogs即可,第四种情况,没有丢失控制文件及各种日志,仅丢失数据文件,这种问题比较常见,有可能磁盘损坏造成数据文件丢失,等磁盘故障排除后,需要恢复,此时的恢复就很简单了,restore da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论