SQL> alter tablespace test read write;
表空间已更改。
SQL> alter database datafile 6 offline;
数据库已更改。
SQL> alter database datafile 6 online;
alter database datafile 6 online
*
第 1 行出现错误:
ORA-01113: 文件 6 需要介质恢复
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF'
我们预先看一下恢复使用以前大小的数据拷贝文件:
RMAN> restore preview from datafilecopy until scn 725421 datafile 6;
启动 restore 于 2008-05-21 15:28:16
使用通道 ORA_DISK_1
数据文件副本列表
关键字 文件 S 完成时间 Ckp SCN Ckp 时间 名称
------- ---- - ------------------- ---------- ------------------- ----
499 6 A 2008-05-05 15:32:16 725421 2008-05-05 14:07:38 D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF1
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 05/21/2008 15:26:45 上) 失败
RMAN-06021: FROM DATAFILECCOPY/BACKUPSET 可能未使用存档日志指定
用以前大小的datafilecopy 做恢复:
RMAN> restore from datafilecopy until scn 725421 datafile 6;
启动 restore 于 2008-05-21 15:28:31
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在还原数据文件00006
输入数据文件副本 recid=3 stamp=653931136 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF1
数据文件 00006 的还原目标: D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
故障转移到上一个备份
创建数据文件 fno = 6 名称 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 05/21/2008 15:28:33 上) 失败
ORA-01119: 创建数据库文件 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF' 时出错
ORA-27038: 所创建的文件已存在
OSD-04010: 指定了 选项, 但文件已经存在
我们看到不能用以前的datafilecopy还原
我们看RMAN选择的还原方式,用当前的datafilecopy和归档进行:
RMAN> restore preview datafile 6;
启动 restore 于 2008-05-21 15:30:45
使用通道 ORA_DISK_1
数据文件副本列表
关键字 文件 S 完成时间 Ckp SCN Ckp 时间 名称
------- ---- - ------------------- ---------- ------------------- ----
661 6 A 2008-05-21 14:18:29 903795 2008-05-15 15:23:14 +DISK_GROUP2/devdb/datafile/test.313.655309109
已存档的日志副本列表
关键字 Thrd Seq S 时间下限 名称
------- ---- ------- - ------------------- ----
441 1 14 A 2008-05-15 15:04:48 +DISK_GROUP2/devdb/archivelog/2008_05_19/thread_1_seq_14.305.655117381
442 1 15 A 2008-05-19 09:03:00 +DISK_GROUP2/devdb/archivelog/2008_05_20/thread_1_seq_15.304.655220939
443 1 16 A 2008-05-20 13:48:58 +DISK_GROUP2/devdb/archivelog/2008_05_20/thread_1_seq_16.287.655232693
介质恢复启动 SCN 是 903795
恢复范围必须超出 SCN 903795 才能清除数据文件模糊性
完成 restore 于 2008-05-21 15:30:45
RMAN> restore datafile 6;
启动 restore 于 2008-05-21 15:32:10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在还原数据文件00006
输入数据文件副本 recid=9 stamp=655309109 文件名=+DISK_GROUP2/devdb/datafile/test.313.655309109
数据文件 00006 的还原目标: D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
故障转移到上一个备份
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00006还原到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
通道 ORA_DISK_1: 正在读取备份片段 F:\RMAN\DB_0DJGS3HU_DEVDB_13
故障转移到上一个备份
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00006还原到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST_COPY.DBF
故障转移到上一个备份
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00006还原到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
通道 ORA_DISK_1: 正在读取备份片段 +DISK_GROUP2/devdb/backupset/2008_05_06/nnndf0_tag20080506t163654_0.303.654021415
故障转移到上一个备份
通道 ORA_DISK_1: 正在还原数据文件00006
输入数据文件副本 recid=3 stamp=653931136 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF1
数据文件 00006 的还原目标: D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
故障转移到上一个备份
创建数据文件 fno = 6 名称 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 05/21/2008 15:32:20 上) 失败
ORA-01119: 创建数据库文件 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF' 时出错
ORA-27038: 所创建的文件已存在
OSD-04010: 指定了 选项, 但文件已经存在
也不能还原,但我们发现datafile大小发生了变化.
SQL> alter database datafile 6 online;
alter database datafile 6 online
*
第 1 行出现错误:
ORA-01122: 数据库文件 6 验证失败
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF'
ORA-01200: 638 的实际文件大小小于 1280 块的正确大小
实际上已经还原了datafilecopy中的数据块大小,这个是之前499的datafilecopy.
RMAN> restore from datafilecopy datafile 6;
启动 restore 于 2008-05-21 15:40:13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在还原数据文件00006
输入数据文件副本 recid=9 stamp=655309109 文件名=+DISK_GROUP2/devdb/datafile/test.313.655309109
数据文件 00006 的还原目标: D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
故障转移到上一个备份
创建数据文件 fno = 6 名称 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 05/21/2008 15:40:14 上) 失败
ORA-01119: 创建数据库文件 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF' 时出错
ORA-27038: 所创建的文件已存在
OSD-04010: 指定了 选项, 但文件已经存在
我们再用当前的datafilecopy还原一次,我们发现数据块和当前一样,只是报需要介质恢复的错误.
SQL> l
1* alter database datafile 6 online
SQL> /
alter database datafile 6 online
*
第 1 行出现错误:
ORA-01113: 文件 6 需要介质恢复
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF'
SQL> recover datafile 6;
完成介质恢复。
SQL> alter tablespace test online;
表空间已更改。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/175005/viewspace-293437/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/175005/viewspace-293437/