oracle数据文件5属于孤立,reset incarnation的分析之二

上一次,测试了一下reset incarnation的作用,朋友又提出下一个问题,能不能跨多个实体进行恢复呢,理论上是可以的,不过没实践过,还是测试一下吧。

--首先在实体5上进行全库备份

RMAN> backup database format='c:bak%U.bak';

启动 backup 于 26-3月 -08

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=142 devtype=DISK

通道 ORA_DISK_1: 启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF

输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF

输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF

输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF

通道 ORA_DISK_1: 正在启动段 1 于 26-3月 -08

通道 ORA_DISK_1: 已完成段 1 于 27-3月 -08

段句柄=C:BAKQJC96UQ_1_1.BAK 标记=TAG20080326T235922 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:05

通道 ORA_DISK_1: 启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

备份集中包括当前控制文件

在备份集中包含当前的 SPFILE

通道 ORA_DISK_1: 正在启动段 1 于 27-3月 -08

通道 ORA_DISK_1: 已完成段 1 于 27-3月 -08

段句柄=C:BAKRJC970R_1_1.BAK 标记=TAG20080326T235922 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04

完成 backup 于 27-3月 -08

--关闭数据库,删除当前日志文件,强制open resetlogs打开数据库

RMAN> shutdown immediate

数据库已关闭

数据库已卸载

Oracle 实例已关闭

RMAN> startup

已连接到目标数据库 (未启动)

Oracle 实例已启动

数据库已装载

数据库已打开

系统全局区域总计 314572800 字节

Fixed Size 1248768 字节

Variable Size 79692288 字节

Database Buffers 226492416 字节

Redo Buffers 7139328 字节

RMAN> shutdown immediate

数据库已关闭

数据库已卸载

Oracle 实例已关闭

RMAN> startup mount

已连接到目标数据库 (未启动)

Oracle 实例已启动

数据库已装载

系统全局区域总计 314572800 字节

Fixed Size 1248768 字节

Variable Size 79692288 字节

Database Buffers 226492416 字节

Redo Buffers 7139328 字节

RMAN> recover database;

启动 recover 于 27-3月 -08

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=157 devtype=DISK

正在开始介质的恢复

无法恢复介质

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

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

RMAN-03002: recover 命令 (在 03/27/2008 00:08:47 上) 失败

ORA-00283: recovery session canceled due to errors

RMAN-11003: 在分析/执行 SQL 语句期间失败: alter database recover if needed

start

ORA-00283: 恢复会话因错误而取消

ORA-19909: 数据文件 1 属于孤立的原型

ORA-01110: 数据文件 1: 'E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF'

RMAN> alter database open resetlogs;

数据库已打开

--打开数据库后,形成实体6

RMAN> list incarnation;

数据库原型列表

DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间

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

1 1 ORCL 1176767170 PARENT 1 10-3月 -08

2 2 ORCL 1176767170 PARENT 472611 25-3月 -08

3 3 ORCL 1176767170 PARENT 474163 25-3月 -08

4 4 ORCL 1176767170 PARENT 488631 26-3月 -08

5 5 ORCL 1176767170 PARENT 490308 26-3月 -08

6 6 ORCL 1176767170 CURRENT 506067 27-3月 -08

--再次关闭数据库,删除当前日志文件,通过sqlplus做open resetlogs,形成实体7

RMAN> shutdown immediate

数据库已关闭

数据库已卸载

Oracle 实例已关闭

RMAN> quit

恢复管理器完成。

D:>rman target / nocatalog

恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 27 00:18:13 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到目标数据库: ORCL (DBID=1176767170)

使用目标数据库控制文件替代恢复目录

RMAN> list incarnation;

数据库原型列表

DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间

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

1 1 ORCL 1176767170 PARENT 1 10-3月 -08

2 2 ORCL 1176767170 PARENT 472611 25-3月 -08

3 3 ORCL 1176767170 PARENT 474163 25-3月 -08

4 4 ORCL 1176767170 PARENT 488631 26-3月 -08

5 5 ORCL 1176767170 PARENT 490308 26-3月 -08

6 6 ORCL 1176767170 PARENT 506067 27-3月 -08

7 7 ORCL 1176767170 CURRENT 506961 27-3月 -08

--发现有对象丢失,需要进行基于时间的恢复,但丢失对象是发生在实体5的运行过程中,因此使用实体5的备份进行不完全恢复

RMAN> shutdown immediate

数据库已关闭

数据库已卸载

Oracle 实例已关闭

RMAN> startup mount

已连接到目标数据库 (未启动)

Oracle 实例已启动

数据库已装载

系统全局区域总计 314572800 字节

Fixed Size 1248768 字节

Variable Size 79692288 字节

Database Buffers 226492416 字节

Redo Buffers 7139328 字节

--直接执行恢复命令报错,因为当前是实体7,实体7的时间在需要被恢复的时间之后

RMAN> run{

2> sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';

3> set until time='2008-3-27 00:02:00';

4> restore database;

5> recover database;

6> alter database open resetlogs;

7> }

sql 语句: alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"

正在执行命令: SET until clause

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

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

RMAN-03002: set 命令 (在 03/27/2008 00:28:18 上) 失败

RMAN-20207: UNTIL TIME 或 RECOVERY WINDOW 在 RESETLOGS 时间之前

--重置数据库实体为5,然后进行基于时间的恢复

RMAN> reset database to incarnation 5;

将数据库重置为原型 5

RMAN> run{

2> sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';

3> set until time='2008-3-27 00:02:00';

4> restore database;

5> recover database;

6> alter database open resetlogs;

7> }

sql 语句: alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"

正在执行命令: SET until clause

启动 restore 于 27-3月 -08

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=157 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF

正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF

正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF

正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF

通道 ORA_DISK_1: 正在读取备份段 C:BAKQJC96UQ_1_1.BAK

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = C:BAKQJC96UQ_1_1.BAK 标记 = TAG20080326T235922

通道 ORA_DISK_1: 恢复完成, 用时: 00:01:05

完成 restore 于 27-3月 -08

启动 recover 于 27-3月 -08

使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 3 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAOR

CLARCHIVELOG2008_03_27O1_MF_1_3_3YNWZ1KL_.ARC 存在于磁盘上

存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG200

8_03_27O1_MF_1_3_3YNWZ1KL_.ARC 线程 =1 序列 =3

介质恢复完成, 用时: 00:00:02

完成 recover 于 27-3月 -08

数据库已打开

--恢复完成,由于再次使用open resetlogs打开数据库,因此现在实体为8,而实体8的scn低于实体6、7

RMAN> list incarnation;

数据库原型列表

DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间

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

1 1 ORCL 1176767170 PARENT 1 10-3月 -08

2 2 ORCL 1176767170 PARENT 472611 25-3月 -08

3 3 ORCL 1176767170 PARENT 474163 25-3月 -08

4 4 ORCL 1176767170 PARENT 488631 26-3月 -08

5 5 ORCL 1176767170 PARENT 490308 26-3月 -08

8 8 ORCL 1176767170 CURRENT 505314 27-3月 -08

6 6 ORCL 1176767170 ORPHAN 506067 27-3月 -08

7 7 ORCL 1176767170 ORPHAN 506961 27-3月 -08

RMAN>[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值