关于alter database open resetlogs及incarnation的一点理解

不完全恢复只能做一次吗?

采用rman的默认设置,对数据库进行了backup database备份,进行了一些操作后,然后直接关闭启动到mount状态

RMAN> run{

2> set until time "to_date('2010-10-16 23:14:42','yyyy-mm-dd hh24:mi:ss')";

3> restore database;

4> recover database;

5> }

executing command: SET until clause

Starting restore at 17-OCT-10

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /oracle/oradata/denver/system01.dbf

restoring datafile 00002 to /oracle/oradata/denver/undotbs01.dbf

restoring datafile 00003 to /oracle/oradata/denver/sysaux01.dbf

restoring datafile 00004 to /oracle/oradata/denver/users01.dbf

restoring datafile 00005 to /oracle/oradata/denver/example01.dbf

channel ORA_DISK_1: reading from backup piece /oracle/flash_recovery_area/DENVER/backupset/2010_10_16/o1_mf_nnndf_TAG20101016T230845_6cmhzz8t_.bkp

channel ORA_DISK_1: restored backup piece 1

piece handle=/oracle/flash_recovery_area/DENVER/backupset/2010_10_16/o1_mf_nnndf_TAG20101016T230845_6cmhzz8t_.bkp tag=TAG20101016T230845

channel ORA_DISK_1: restore complete, elapsed time: 00:01:26

Finished restore at 17-OCT-10

Starting recover at 17-OCT-10

using channel ORA_DISK_1

starting media recovery

archive log thread 1 sequence 10 is already on disk as file /oracle/archivelog/1_10_732510268.dbf

archive log filename=/oracle/archivelog/1_10_732510268.dbf thread=1 sequence=10

media recovery complete, elapsed time: 00:00:01

Finished recover at 17-OCT-10

RMAN> alter database open resetlogs;

database opened

发现刚才恢复的时间23:14:42有点早,于是想改为恢复时间点为23:17:26,于是再次关闭数据库,mount状态下,但是出错了

RMAN> run {

2> set until time "to_date('2010-10-16 23:17:26','yyyy-mm-dd hh24:mi:ss')";

3> restore database;

4> recover database;

5> }

executing command: SET until clause

using target database control file instead of recovery catalog

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of set command at 10/17/2010 00:45:40

RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time

时间再前点恢复也不行:

RMAN> run {

2> set until time "to_date('2010-10-16 23:14:40','yyyy-mm-dd hh24:mi:ss')";

3> restore database;

4> recover database;

5> }

executing command: SET until clause

using target database control file instead of recovery catalog

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of set command at 10/17/2010 01:17:03

RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time

这是为什么?那些归档都还在,难道我的rman做过一次不完全恢复后,就不能再不完全恢复了,跟有没有换备份控制文件有关系吗?里面做了什么呢?

RMAN> list incarnation;

using target database control file instead of recovery catalog

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       DENVER   4021391415       PARENT  1          22-OCT-05

2       2       DENVER   4021391415       PARENT  525876     16-OCT-10

3       3       DENVER   4021391415       CURRENT 620239     17-OCT-10

问题解决:

先要弄清楚alter database open resetlogs是什么意思,为什么要用resetlogs打开数据库,这个命令发出后oracle都做了什么?

alter database open resetlogs是要打开数据时,重置重做日志,即将重做日志的sequence置零,为什么要重置重做日志呢?

不完全恢复后,原来的online redo log里面包含的是未做恢复前的数据,而这些数据对于恢复后的数据库不再有效,所以数据库会要求在Open之前先对online redo log的sequence置零。

Resetlogs命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,每次使用Resetlogs命令的时候,SCN不会被重置,不过oracle会重置日志序列号,而且会重置联机重做日志内容。

Oracle把这个数据库逻辑生存期称为incarnation

每次使用resetlogs打开数据库,就会使incarnation + 1,也就是产生一个新的incarnation;

如果想要恢复到之前incarnation的scn/time,就需要先恢复到之前的incarnation;

对于上面的案例,具体就是先要

Reset database to incarnation 2;

再做不完全恢复试试

注明:整理自网络

转载:http://blog.csdn.net/leishifei/article/details/6430057

关于alter database open resetlogs及incarnation的一点理解的更多相关文章

  1. alter database open resetlogs

    使用resetlogs选项,会把当前的日志序号(log sequence number)重设为1,并抛弃所有日志信息.在以下条件时需要使用resetlogs选项: 在不完全恢复(介质恢复): 使用备份 ...

  2. (转)alter database open resetlogs 的意义

    转自:http://blog.sina.com.cn/s/blog_63216bda0100zblr.html Oracle文档中提到,一旦用备份的控制文件进行数据库恢复,就需要使用resetlogs ...

  3. 丢失全部控制文件,noresetlogs重建控制文件,alter database open

    測试2: (1)一致性的全备 SQL> shutdown immediate; $ cp -rf $ORACLE_BASE/oradata/boss/*.dbf /oradata/bossbak ...

  4. 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法

    非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...

  5. 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> ...

  6. 由于无法在数据库 'TestNonContainedDB' 上放置锁 ALTER DATABASE 失败

    Error: 消息5601,级别16,状态1,第1行,由于无法在数据库 'TestNonContainedDB' 上放置锁,ALTER DATABASE 失败.请稍后再试.消息5069,级别16,状态 ...

  7. [Hive - LanguageManual] Create/Drop/Alter Database Create/Drop/Truncate Table

    Hive Data Definition Language Hive Data Definition Language Overview Create/Drop/Alter Database Crea ...

  8. Use ALTER DATABASE to Move Databases

    Use ALTER DATABASE to Move Databases Follow Our Daily Tips •facebook.com/TechNetTips• twitter.com/Te ...

  9. ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected解决方法

    在进行物理主备库角色转换的时候遇到ORA-01093错误 SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; ALTER ...

随机推荐

  1. java.io.IOException: Unable to establish loopback connection

    1.错误描述 Starting preview server on port 8080 Modules: HTML5 (/HTML5) 2017-06-17 11:13:04.823:INFO::ma ...

  2. Vue学习笔记 ——v-html

    v-html: 在网页中,后台传来的json数据中包含html标签,将该json数据绑定到Vue.js中对象中,对该对象进行for循环,发现数据中的html标签不能被解析,而是当作字符显示出来 解决: ...

  3. [GitHub] git push的时候报错 fatal: unable to access 'http://github.com/xxx/xxx.git/': Recv failure: Connection reset by peer

    参考了两种方法: 1. 解决fatal: unable to connect to github.com问题 http://blog.csdn.net/greenqingqingws/article/ ...

  4. 如何制作dll库的API文档,自动生成微软风格的chm文件 Sandcastle Help File Builder 使用方法

    当你开发了一个库的时候,就需要给库开发一个api文档,微软提供了一个C#库的自动生成工具.我在使用的过程中记录了相关的信息,以供大家学习和查阅,如有不正之处,欢迎指出. 首先先下载一个软件,下载地址在 ...

  5. TCP、UDP详解

    OSI 计算机网络7层模型 TCP/IP四层网络模型 传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务. TCP 中常说的握手指的是:连接的定义和连接的建立 ...

  6. Git详解之六 Git工具

    以下内容转载自:http://www.open-open.com/lib/view/open1328070367499.html Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控 ...

  7. LOJ2500 NOIP2014 飞扬的小鸟 【背包DP】*

    LOJ2500 NOIP2014 飞扬的小鸟 LINK 题目大意就是说有n个柱子,在每一秒你可以选择不点下降高度y和点p次上升x∗p,若果当前位置加上x∗p大于上界m,就会停在m. 如果可以成功穿越所 ...

  8. WPF 竖排文字(转)

    ---恢复内容开始--- 想做一个WPF 文字竖排 类似上图.用在TabItem的header上面. <TextBlock FontSize="30" Text=" ...

  9. tidb 安装试用&&以及安装几个问题解决

    备注:    tidb 听说已经很长时间了,一直无安装部署(主要是不像cockrouchdb 不见那么简单)   1. 环境准备(官方建议使用6台机器) // 我的机器准备(阿里云的,同时大家最好选择 ...

  10. 【转】简述configure、pkg-config、pkg_config_path三者的关系

    原文网址:http://www.mike.org.cn/articles/description-configure-pkg-config-pkg_config_path-of-the-relatio ...