oracle rman 20207,数据库原型与RMAN恢复

每次执行OPEN RESETLOGS,数据库将进入新的原型。此时的备份对于数据库来说仍然有效(当

然最好做一次全备,毕竟日志序列号重置,产生的归档可能会覆盖原来的归档)。如果恢复的时

候是基于时间点的恢复,恢复时间点在当前数据库原型之中,一般没什么太大问题。如果恢复

时间点落在了先前的数据库原型中,此时在恢复的时候,需要将数据库打回相应的原型。

SQL> SELECT  HANDLE,COMPLETION_TIME FROM V$BACKUP_PIECE;

HANDLE                                             COMPLETION_TIME

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

E:\BACKUP\FULL_0DL2KM06_1_1.BAK                    2010-01-04 17:04:14

E:\BACKUP\FULL_0GL2KM50_1_1.BAK                    2010-01-04 17:05:01

E:\BACKUP\FULL_0EL2KM06_1_1.BAK                    2010-01-04 17:05:04

E:\BACKUP\FULL_0FL2KM0I_1_1.BAK                    2010-01-04 17:05:05

E:\BACKUP\FULL_0HL2KM67_1_1.BAK                    2010-01-04 17:05:11

E:\BACKUP\ARC_0IL2KMA7_1_1.BAK                     2010-01-04 17:07:28

E:\BACKUP\ARC_0JL2KMA7_1_1.BAK                     2010-01-04 17:07:37

E:\BACKUP\ARC_0KL2KMA7_1_1.BAK                     2010-01-04 17:07:41

已选择8行。

SQL> SELECT INCARNATION#,STATUS,RESETLOGS_TIME FROM V$DATABASE_INCARNATION;

INCARNATION# STATUS  RESETLOGS_TIME

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

1 PARENT  2009-12-02 09:16:22

2 PARENT  2010-01-04 12:03:28

3 ORPHAN  2010-01-07 11:06:13

4 CURRENT 2010-01-07 11:36:16

可见数据的备份时在原型2时备份的。如果恢复时间点落在了当前原型中,和一般恢复没什么区别。

RMAN>  RUN{

2> SET UNTIL TIME "to_date('2010-01-07 11:37:09','yyyy-mm-dd hh24:mi:ss')

3> RESTORE DATABASE;

4> RECOVER DATABASE;

5> }

正在执行命令: SET until clause

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

启动 restore 于 07-1月 -10

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=155 devtype=DISK

分配的通道: ORA_DISK_2

通道 ORA_DISK_2: sid=154 devtype=DISK

分配的通道: ORA_DISK_3

通道 ORA_DISK_3: sid=153 devtype=DISK

未处理数据文件 8, 因为文件是只读的

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

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

正将数据文件00004恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\USERS01.DBF

通道 ORA_DISK_1: 正在读取备份段 E:\BACKUP\FULL_0DL2KM06_1_1.BAK

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

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

正将数据文件00005恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\DATA01.DBF

正将数据文件00007恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\DWIDXTBS01.DBF

正将数据文件00009恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\PERFSTAT01.DBF

正将数据文件00010恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\ROLLBACK01.DBF

通道 ORA_DISK_2: 正在读取备份段 E:\BACKUP\FULL_0EL2KM06_1_1.BAK

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

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

正将数据文件00001恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\SYSTEM01.DBF

正将数据文件00002恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\UNDOTBS01.DBF

正将数据文件00003恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\SYSAUX01.DBF

正将数据文件00006恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\DWTBS01.DBF

通道 ORA_DISK_3: 正在读取备份段 E:\BACKUP\FULL_0FL2KM0I_1_1.BAK

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = E:\BACKUP\FULL_0DL2KM06_1_1.BAK 标记 = TAG20100104T170157

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

通道 ORA_DISK_2: 已恢复备份段 1

段句柄 = E:\BACKUP\FULL_0EL2KM06_1_1.BAK 标记 = TAG20100104T170157

通道 ORA_DISK_2: 恢复完成, 用时: 00:02:38

通道 ORA_DISK_3: 已恢复备份段 1

段句柄 = E:\BACKUP\FULL_0FL2KM0I_1_1.BAK 标记 = TAG20100104T170157

通道 ORA_DISK_3: 恢复完成, 用时: 00:02:39

完成 restore 于 07-1月 -10

启动 recover 于 07-1月 -10

使用通道 ORA_DISK_1

使用通道 ORA_DISK_2

使用通道 ORA_DISK_3

未处理数据文件 8, 因为文件是只读的

正在开始介质的恢复

存档日志线程 1 序列 133 已作为文件 C:\ARCHIVELOG\ARC00133_0707400208.001 存在于磁盘

存档日志线程 1 序列 134 已作为文件 C:\ARCHIVELOG\ARC00134_0707400208.001 存在于磁盘

存档日志线程 1 序列 135 已作为文件 C:\ARCHIVELOG\ARC00135_0707400208.001 存在于磁盘

存档日志线程 1 序列 136 已作为文件 C:\ARCHIVELOG\ARC00136_0707400208.001 存在于磁盘

存档日志线程 1 序列 137 已作为文件 C:\ARCHIVELOG\ARC00137_0707400208.001 存在于磁盘

存档日志线程 1 序列 138 已作为文件 C:\ARCHIVELOG\ARC00138_0707400208.001 存在于磁盘

...................

...................

存档日志文件名 =C:\ARCHIVELOG\ARC00133_0707400208.001 线程 =1 序列 =133

存档日志文件名 =C:\ARCHIVELOG\ARC00134_0707400208.001 线程 =1 序列 =134

存档日志文件名 =C:\ARCHIVELOG\ARC00135_0707400208.001 线程 =1 序列 =135

存档日志文件名 =C:\ARCHIVELOG\ARC00136_0707400208.001 线程 =1 序列 =136

存档日志文件名 =C:\ARCHIVELOG\ARC00137_0707400208.001 线程 =1 序列 =137

存档日志文件名 =C:\ARCHIVELOG\ARC00138_0707400208.001 线程 =1 序列 =138

存档日志文件名 =C:\ARCHIVELOG\ARC00139_0707400208.001 线程 =1 序列 =139

存档日志文件名 =C:\ARCHIVELOG\ARC00140_0707400208.001 线程 =1 序列 =140

存档日志文件名 =C:\ARCHIVELOG\ARC00141_0707400208.001 线程 =1 序列 =141

存档日志文件名 =C:\ARCHIVELOG\ARC00142_0707400208.001 线程 =1 序列 =142

存档日志文件名 =C:\ARCHIVELOG\ARC00143_0707400208.001 线程 =1 序列 =143

存档日志文件名 =C:\ARCHIVELOG\ARC00156_0707400208.001 线程 =1 序列 =156

.................

.................

介质恢复完成, 用时: 00:01:56

完成 recover 于 07-1月 -10

如果恢复时间落在先前原型中,如果在当前的原型中RESTORE数据文件,会报RMAN-20207:

UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time 错误。

SQL> SELECT INCARNATION#,STATUS,RESETLOGS_TIME FROM V$DATABASE_INCARNATION;

INCARNATION# STATUS  RESETLOGS_TIME

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

1 PARENT  2009-12-02 09:16:22

2 PARENT  2010-01-04 12:03:28

3 ORPHAN  2010-01-07 11:06:13

4 CURRENT 2010-01-07 11:36:16

譬如当前数据库原型是4,我们将数据库恢复到2010-01-07 10:54:09,即恢复点落在了原型2中

RMAN>  RUN{

2> SET UNTIL TIME "to_date('2010-01-07 10:54:09','yyyy-mm-dd hh24:mi:ss'

3> RESTORE DATABASE;

4> RECOVER DATABASE;

5> }

正在执行命令: SET until clause

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

MAN-00571: ===========================================================

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

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

RMAN-03002: set 命令 (在 01/07/2010 11:12:04 上) 失败

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

此时我们需要将数据库的当前原型设置为恢复时间点所在的数据库原型。本例中为2.

RMAN> RESET DATABASE TO INCARNATION 2;

将数据库重置为原型 2

RMAN> list incarnation;

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

数据库原型列表

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

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

1       1       TOMSYAN  3691161958       PARENT  1          02-12月-09

2       2       TOMSYAN  3691161958       CURRENT 3033490099 04-1月 -10

3       3       TOMSYAN  3691161958       ORPHAN  3033706758 07-1月 -10

4       4       TOMSYAN  3691161958       ORPHAN  3033706759 07-1月 -10

RMAN> RUN{

2> SET UNTIL TIME "to_date('2010-01-07 10:54:09','yyyy-mm-dd hh24:mi:ss')";

3> RESTORE DATABASE;

4> RECOVER DATABASE;

5> }

正在执行命令: SET until clause

启动 restore 于 07-1月 -10

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=155 devtype=DISK

分配的通道: ORA_DISK_2

通道 ORA_DISK_2: sid=154 devtype=DISK

分配的通道: ORA_DISK_3

通道 ORA_DISK_3: sid=153 devtype=DISK

未处理数据文件 8, 因为文件是只读的

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

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

正将数据文件00005恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\DATA01.DBF

正将数据文件00007恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\DWIDXTBS01.DBF

正将数据文件00009恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\PERFSTAT01.DBF

正将数据文件00010恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\ROLLBACK01.DBF

通道 ORA_DISK_2: 正在读取备份段 E:\BACKUP\FULL_0EL2KM06_1_1.BAK

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

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

正将数据文件00001恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\SYSTEM01.DBF

.................

.................

段句柄 = E:\BACKUP\FULL_0EL2KM06_1_1.BAK 标记 = TAG20100104T170157

通道 ORA_DISK_2: 恢复完成, 用时: 00:02:35

通道 ORA_DISK_3: 已恢复备份段 1

段句柄 = E:\BACKUP\FULL_0FL2KM0I_1_1.BAK 标记 = TAG20100104T170157

通道 ORA_DISK_3: 恢复完成, 用时: 00:02:35

完成 restore 于 07-1月 -10

启动 recover 于 07-1月 -10

使用通道 ORA_DISK_1

使用通道 ORA_DISK_2

使用通道 ORA_DISK_3

未处理数据文件 8, 因为文件是只读的

正在开始介质的恢复

存档日志线程 1 序列 133 已作为文件 C:\ARCHIVELOG\ARC00133_0707400208.001 存在于

磁盘上

存档日志线程 1 序列 134 已作为文件 C:\ARCHIVELOG\ARC00134_0707400208.001 存在于

磁盘上

存档日志线程 1 序列 135 已作为文件 C:\ARCHIVELOG\ARC00135_0707400208.001 存在于

磁盘上

.................

.................

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

完成 recover 于 07-1月 -10

RMAN> SQL 'ALTER DATABASE OPEN RESETLOGS';

sql 语句: ALTER DATABASE OPEN RESETLOGS

RMAN> LIST INCARNATION;

数据库原型列表

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

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

1       1       TOMSYAN  3691161958       PARENT  1          02-12月-09

2       2       TOMSYAN  3691161958       PARENT  3033490099 04-1月 -10

3       3       TOMSYAN  3691161958       ORPHAN  3033706758 07-1月 -10

4       4       TOMSYAN  3691161958       ORPHAN  3033706759 07-1月 -10

5       5       TOMSYAN  3691161958       CURRENT 3033706759 07-1月 -10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值