问题解决:

先要弄清楚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;

再做不完全恢复试试

--------------------------我执行一次rman之后,再次执行这个脚本--------------

  1. RMAN> @/home/oracle/testrman.rman
  2. RMAN> run{
  3. 2> allocate channel c1 type disk;
  4. 3> allocate channel c2 type disk;
  5. 4> sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
  6. 5> set until time='2012-08-16 17:30:00';
  7. 6> restore database;
  8. 7> recover database;
  9. 8> sql 'alter database open resetlogs';}
  10. allocated channel: c1
  11. channel c1: sid=145 devtype=DISK
  12. allocated channel: c2
  13. channel c2: sid=146 devtype=DISK
  14. sql statement: alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"
  15. executing command: SET until clause
  16. released channel: c1
  17. released channel: c2
  18. RMAN-00571: ===========================================================
  19. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  20. RMAN-00571: ===========================================================
  21. RMAN-03002: failure of set command at 08/16/2012 21:01:11
  22. RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time
  23. RMAN> **end-of-file**

http://hi.baidu.com/heuet032606/item/4553f3c1d8f8b22c47d5c07c

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

关于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;

再做不完全恢复试试

alter database open resetlogs相关推荐

  1. RAC 实例不能启动 ORA-1589 signalled during ALTER DATABASE OPEN

    今天启动RAC 做实验,发现RAC 实例怎么启动不了. [oracle@rac2 bin]$ crs_stat -t Name           Type           Target    S ...

  2. alter database命令

    alter database:修改数据文件 alter database datafile 4 offline; alter database datafile '/opt/oracle/datafi ...

  3. sql server:alter database name

    --step 1 : 修改数据库名称 USE master GO ALTER DATABASE GeovinDuCms SET SINGLE_USER WITH ROLLBACK IMMEDIATE ...

  4. MySQL修改数据库:ALTER DATABASE用法简介

    数据库创建好后也是可以修改的,下面我们来介绍一下修改数据库的基本操作 基本语法 在 MySQL 中,可以使用 ALTER DATABASE 或 ALTER SCHEMA 语句来修改已经被创建或者存在的 ...

  5. 5、MySQL修改数据库:ALTER DATABASE用法简介

    在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中.下面我们来介绍一下修改数据库的基本操作. 在 MySQL 中,可以使用 ALTER ...

  6. 数据库选项--ALTER DATABASE WITH 选项

    指定当数据库从一种状态转换到另一种状态时,何时回滚未完成的事务. 如果终止子句被忽略,则当数据库中存在任何锁时,ALTER DATABASE 语句将无限期等待. 只能指定一条终止子句,而且该子句应跟在 ...

  7. 数据库开启了闪回和归档,关闭归档日志alter database noarchivelog的时候报错:ORA-38781: cannot disable media recovery

    处理过程如下: 1.查询数据库存在闪回点UAT_20200527 SQL> SELECT name, guarantee_flashback_database, scn FROM v$resto ...

  8. alter database recover managed standby database 语句

    RDBMS 11.2.0.4 参考文档: ALTER DATABASE (oracle.com) 语法格式如下: 一种用法: alter database recover managed standb ...

  9. alter database datafile resize(+释放空间)

    RESIZE DATAFILE的时候会失败,因为一些OBJECT的EXTENTS已经扩展到DATAFILE的边缘(最大的地方).  下面的SQL可以让我们找到前5个最边缘的OBJECT select ...

最新文章

  1. 高性能和可扩展的React-Redux
  2. BootStrap学习(2)
  3. DotnetSpider (一) 架构的理解、应用、搭建
  4. 每天一道LeetCode-----计算一个直方图空隙的容量(如果装水能装多少)
  5. BZOJ-2005能量采集-数论函数
  6. golang并发的一篇文章
  7. redis和mysql双写一致_缓存与库双写一致,这种“老大难”怎么给它制服?
  8. cdh Cannot access: user/hive/warehouse. Note: you are a Hue admin but not a HDFS
  9. Bailian2722 学分绩点【序列处理】
  10. 苹果mac智能手写笔记软件:GoodNotes 5 +iCloud同步
  11. 编写一个c语言源程序输出以下信息,C语言课后习题源程序(5页)-原创力文档...
  12. 美联储加息75个基点释放什么信号?对我们有什么影响
  13. Renew 、Revive 、Renovate、Update、Refresh区别
  14. 登录微软账户后远程桌面连接提示用户名错误
  15. LRU(Least Recent Used) java实现——为什么采用HashMap+双向链表
  16. 华为智慧办公全系列终端介绍
  17. 怎么登录163vip邮箱?163vip邮箱登录方式有哪些?
  18. oracle10g 概述,Oracle 10g数据库概述
  19. 并网光伏逆变器的基本设计
  20. 内存、主存、外存、主存储器、外存储器等之间的区别

热门文章

  1. 猎魂觉醒显示无法连接战斗服务器,猎魂觉醒安装失败怎么办_猎魂觉醒安装失败解决方法_游戏吧...
  2. camunda 流程执行追踪_九思OA项目管理解决方案:规范企业项目流程,掌握项目进展...
  3. (3)LoraWAN:链路控制、SF BW CR
  4. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功
  5. 迷宫寻宝(一) ---- 状态压缩
  6. Windows 8.1 新增控件之 DatePicker
  7. JavaScript 解决浮点值运算Bug
  8. 【译】表变量和临时表的比较
  9. Direct3D学习_绘制流水线
  10. 最近整理关于SQL Server2005性能优化技巧