本帖最后由 最后的吃货 于 2013-4-30 21:03 编辑
做表空间删除后恢复的实验,到最后打开数据库时表空间状态为recover状态,这时应该怎么操作才能恢复呢。
实验步骤:
1.建立表空间rman_test,建立测试表r_t,插入数据。
2.数据库备份数据文件,控制文件设置为自动备份
RMAN>backup database from 'd:\oracle_file_llist\backup\full_%d_%s.bak';
3.删除表空间
drop tablespace rman_test including contents
4.在alter文件查看表空间删除时间
Tue Apr 30 19:16:13 2013
drop tablespace rman_test including contents
Completed: drop tablespace rman_test including contents
5.还原与恢复
RMAN>startup force nomount
RMAN>set dbid=1259414934
还原控制文件
RMAN> restore controlfile from 'd:\oracle_file_list\backup\C-1259414934-20130430-09';
启动 restore 于 30-4月 -13
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=153 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:04
输出文件名=D:\ORACLE_FILE_LIST\CONTROL1\CONTROL01.CTL
输出文件名=D:\ORACLE_FILE_LIST\CONTROL2\CONTROL02.CTL
输出文件名=D:\ORACLE_FILE_LIST\CONTROL3\CONTROL03.CTL
完成 restore 于 30-4月 -13
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> run{
2> set until time="to_date('2013-04-30 19:16:10','yyyy-mm-dd hh24:mi:ss')";
3> restore database;
4> recover database;
5> sql 'alter database open resetlogs';
6> }
正在执行命令: SET until clause
启动 restore 于 30-4月 -13
启动 implicit crosscheck backup 于 30-4月 -13
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=153 设备类型=DISK
已交叉检验的 14 对象
完成 implicit crosscheck backup 于 30-4月 -13
启动 implicit crosscheck copy 于 30-4月 -13
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 30-4月 -13
搜索恢复区中的所有文件
正在编制文件目录...
没有为文件编制目录
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\ORACLE_FILE_LIST\COLD\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\ORACLE_FILE_LIST\COLD\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\ORACLE_FILE_LIST\COLD\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\ORACLE_FILE_LIST\COLD\EXAMPLE01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:\ORACLE_FILE_LIST\COLD\TEST_DATA.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\ORACLE_FILE_LIST\COLD\TEST_INDEX.DBF
通道 ORA_DISK_1: 将数据文件 00010 还原到 D:\ORACLE_FILE_LIST\COLD\PERFSTAT_01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\ORACLE_FILE_LIST\BACKUP\FULL_ORCL_126.BAK
通道 ORA_DISK_1: 段句柄 = D:\ORACLE_FILE_LIST\BACKUP\FULL_ORCL_126.BAK 标记 = TAG20130430T191305
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:55
完成 restore 于 30-4月 -13
启动 recover 于 30-4月 -13
使用通道 ORA_DISK_1
正在开始介质的恢复
归档日志文件名=D:\ORACLE_FILE_LIST\ARCHIVE\21_1_813776187 线程=1 序列=21
介质恢复完成, 用时: 00:00:02
完成 recover 于 30-4月 -13
sql 语句: alter database open resetlogs
修改数据文件路径
SQL>alter database rename file 'C:\APP\ADMINISTRATOR\PRODUCT\11.1.0\DB_1\DATABASE\MISSING00004' to 'd:\rman_test.dbf';
SQL> select file#,status,name from v$datafile;
FILE# STATUS NAME
---------- ------- --------------------------------------------------
1 SYSTEM D:\ORACLE_FILE_LIST\COLD\SYSTEM01.DBF
2 ONLINE D:\ORACLE_FILE_LIST\COLD\SYSAUX01.DBF
3 ONLINE D:\ORACLE_FILE_LIST\COLD\UNDOTBS01.DBF
4 RECOVER D:\RMAN_TEST.DBF
5 ONLINE D:\ORACLE_FILE_LIST\COLD\EXAMPLE01.DBF
6 ONLINE D:\ORACLE_FILE_LIST\COLD\TEST_DATA.DBF
7 ONLINE D:\ORACLE_FILE_LIST\COLD\TEST_INDEX.DBF
10 ONLINE D:\ORACLE_FILE_LIST\COLD\PERFSTAT_01.DBF
online时报错:
SQL> alter database datafile 4 online;
alter database datafile 4 online
*
第 1 行出现错误:
ORA-01190: 控制文件或数据文件 4 来自最后一个 RESETLOGS 之前
ORA-01110: 数据文件 4: 'D:\RMAN_TEST.DBF'
恢复时也报错:
RMAN> recover datafile 4;
启动 recover 于 30-4月 -13
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=121 设备类型=DISK
正在开始介质的恢复
无法恢复介质
DBGANY: Mismatched message length! [20:16:01.540] (krmiduem)
DBGANY: Mismatched message length! [20:16:01.540] (krmiduem)
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 04/30/2013 20:16:01 上) 失败
ORA-00283: recovery session canceled due to errors
RMAN-11003: 在分析/执行 SQL 语句期间失败: alter database recover if needed
datafile 4
ORA-00283: 恢复会话因错误而取消
ORA-19909: 数据文件 4 属于孤立的原型
ORA-01110: 数据文件 4: 'D:\RMAN_TEST.DBF'
要怎么才能恢复呢。