(转)alter database open resetlogs 的意义
转自:http://blog.sina.com.cn/s/blog_63216bda0100zblr.html
Oracle文档中提到,一旦用备份的控制文件进行数据库恢复,就需要使用resetlogs的方法打开数据库,但是resetlogs通常意味着不完全恢复,而且更重要的是一旦用resetlogs方法打开数据库,日志的序号用重新从1开始。其实如果只是控制文件损坏,日志文件都完整的话,数据库是可以完全恢复的,而且不必非得用resetlogs打开。接下来,我们就对不完全恢复做出总结,如图9-10所示,然后再通过一些实验深入理解。
|
| 图9-10 控制文件的重建方法及后续恢复操作 |
9.6.1 使用alter database open resetlogs的场合
使用resetlogs选项,会把当前的日志序号(log sequence number)重设为1,并抛弃所有日志信息。在以下条件时需要使用resetlogs选项:
在不完全恢复(介质恢复);
使用备份控制文件。
使用resetlogs打开数据库后,务必要完整地进行一次数据库备份。
指定RESETLOGS会执行下列操作:
归档当前的在线重做日志文件(如果能访问到的话),然后清空内容并将日志文件序号重置为1(如果在线重做日志文件不存在,则重建)。
更新数据文件和在线重做日志文件中的RESETLOGS SCN和重置时间信息。
顾名思义,reset将重置日志顺序号,那么以前数据库的备份将不再可用
万事万物有果必有因,执行了不完全恢复操作,或者使用了备份的控制文件进行恢复,或者执行Flashback Database操作之后,在打开数据库时必须指定RESETLOGS选项,这是由Oracle自身特性决定的。
正常运行中Oracle内部有一个生命周期,这种生命周期在Oracle中也有一个专业词汇,叫incarnation。不完全恢复,顾名思义就是只恢复部分数据,由于已经无法将数据库恢复到当前状态(崩溃前的状态),Oracle数据库也不知道当前处于什么状态了,事务上也许一致,但是不是最新,Oracle自己无从判断,后续也许仍有重做日志文件,但却无法应用(或DBA不允许应用)。如果没有Incarnation的概念,正常Open数据库的话又会产生重做日志文件,并且这些日志文件的序号与之前相同(但内容可能不同),这样不管是备份还是恢复都会造成混淆,因此必须在执行不完全恢复后,标示之前生命周期结束,方法就是以RESETLOGS方式打开数据库。以RESETLOGS方式打开后,Oracle数据库又开始了一个新的生命周期,即重置Incarnation,日志文件序号也被重新初始化到1。
图7-4显示了一次OPEN RESETLOGS的操作。如果我们画一个时间轴的话,不完全恢复就是将数据库恢复到从备份时间到当前时间之间的某一个点。
数据库在日志文件序号为1000时创建了备份,在日志文件序号为4000时崩溃,由于日志文件序号为2501,因此你只能将数据库恢复到日志文件序号为2500时的状态,然后以RESETLOGS方式打开,Oracle数据库又开始了一个新的Incarnation,日志文件序号被重新初始化到1,然后随着数据库的运行不断增加并达到4000,但这些日志文件与之前的日志文件并不关联(虽然文件序号相同)。
|
指定RESETLOGS会执行下列操作:
归档当前的在线重做日志文件(如果能访问到的话),然后清空内容并将日志文件序号重置为1(如果在线重做日志文件不存在,则重建)。
重置控制文件中关于在线日志文件的元数据。
更新数据文件和在线重做日志文件中的RESETLOGS SCN和重置时间信息。
在10g之前的版本,数据库执行完OPEN RESETLOGS操作之后,都建议立刻进行一次完全备份,因为之前版本中在执行OPEN RESETLOGS操作时并不对当前的Online Redologs文件进行归档,这会导致归档文件不再连续,因此之前创建的备份不再有效(恢复不到当前状态了,只能恢复到OPEN RESETLOGS操作之前)。10g及之后版本就不存在这个问题了,OPEN RESETLOGS操作会首先将当前在线重做日志文件归档(如果能够访问到的话),并且OPEN RESETLOGS操作也会记入Online Redologs文件并正常归档,相当于OPEN RESETLOGS只是一个命令操作,就像其他SQL命令一样,这样保证了归档日志文件的连续性,之前的备份依然有效,不过三思仍然建议执行OPEN RESETLOGS操作之后马上进行一次全库备份。
提示
什么是Incarnation?
Oracle数据库的Incarnation在有些资料中译作对应物,在我看来可以将其理解成生命周期。Oracle数据库从创建到遇到RESETLOGS操作为一个生命周期,这个生命周期内数据库的逻辑属性,如SCN、日志文件序列号等具有相同的特征。当通过OPEN RESETLOGS方式打开数据库后,原生命周期即宣告结束,原生命周期中生成的重做日志文件也被废弃,日志文件序号自动重置为1。
(转)alter database open resetlogs 的意义的更多相关文章
- alter database open resetlogs
使用resetlogs选项,会把当前的日志序号(log sequence number)重设为1,并抛弃所有日志信息.在以下条件时需要使用resetlogs选项: 在不完全恢复(介质恢复): 使用备份 ...
- 关于alter database open resetlogs及incarnation的一点理解
关于alter database open resetlogs及incarnation的一点理解 不完全恢复只能做一次吗? 采用rman的默认设置,对数据库进行了backup database备份,进 ...
- 丢失全部控制文件,noresetlogs重建控制文件,alter database open
測试2: (1)一致性的全备 SQL> shutdown immediate; $ cp -rf $ORACLE_BASE/oradata/boss/*.dbf /oradata/bossbak ...
- 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法
非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...
- backup, file manipulation operations (such as ALTER DATABASE ADD FILE) and encryption changes on a database must be serialized.
昨天在检查YourSQLDba备份时,发现有台数据库做备份时出现了下面错误信息,如下所示: <Exec> <ctx>yMaint.ShrinkLog</ctx> ...
- 由于无法在数据库 'TestNonContainedDB' 上放置锁 ALTER DATABASE 失败
Error: 消息5601,级别16,状态1,第1行,由于无法在数据库 'TestNonContainedDB' 上放置锁,ALTER DATABASE 失败.请稍后再试.消息5069,级别16,状态 ...
- [Hive - LanguageManual] Create/Drop/Alter Database Create/Drop/Truncate Table
Hive Data Definition Language Hive Data Definition Language Overview Create/Drop/Alter Database Crea ...
- Use ALTER DATABASE to Move Databases
Use ALTER DATABASE to Move Databases Follow Our Daily Tips •facebook.com/TechNetTips• twitter.com/Te ...
- ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected解决方法
在进行物理主备库角色转换的时候遇到ORA-01093错误 SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; ALTER ...
随机推荐
- 【Uva 10285】Longest Run on a Snowboard
[Link]: [Description] 在一个r*c的格子上; 求最长的下降路径; [Solution] 记忆化搜索; f[x][y]表示从(x,y)这个格子往下还能走多远; 因为是严格递增,所以 ...
- Jsp学习总结(1)——JSP九大内置对象和四种属性范围解读
一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性,跳转之后无效 request:在一次服务请求范围内,服务器跳转后依然有效 session:-在一次会话范围内 ...
- android图像处理(3) 底片效果
这篇将讲到图片特效处理的底片效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理:将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值. 例: ABC 求B点的底片效果: B.r ...
- 用NPOI、C#操作Excel表格生成班级成绩单
在C#中利用NPOI操作Excel表格非常方便,几乎上支持所有的Excel表格本身所有的功能,如字体设置.颜色设置.单元格合并.数值计算.页眉页脚等等. 这里准备使用NPOI生成一个班级成绩单Exce ...
- 如何优雅地关闭一个socket
最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-)) 1. 关闭Socket ...
- 51Nod 圆与三角形
给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). Input 第1行:一个数T ...
- CString与 char *之间的转换
http://www.cnblogs.com/watsonlong/archive/2011/04/15/2017086.html
- php开启openssl扩展
windows下开启方法: 1: 首先检查php.ini中:extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘:’, 如果不存在这行,那么添加extensio ...
- 几个不错的开源的.net界面控件
转自原文 几个不错的开源的.net界面控件 (转) 几个不错的开源的.net界面控件 - zt 介绍几个自己觉得不错的几个开源的.net界面控件,不知道是否有人介绍过. DockPanel Suite ...
- Directx9.0 学习教程3 -图形学之创建点 线 三角形 等
1.首先 介绍点的表示方法 struct CUSTOMVERTEX { float x,y,z; }; CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { ...