只读表空间的恢复

来源:互联网 发布:import form js 编辑:程序博客网 时间:2024/06/05 08:18


2个表空间是设置成了只读,对应的数据文件是5,6,6是在备份之前就设置成了只读,5是在备份后设置成只读的。

RMAN> restore database
2> ;

启动 restore 于 03-10月-14
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK

未处理数据文件 5, 因为文件是只读的
未处理数据文件 6, 因为文件是只读的
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\RMANBAK\ORA_BAK85998310
6_S9_S1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\RMANBAK\ORA_BAK859983106_S9_S1 标记 = TAG20141
003T121145
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:56
完成 restore 于 03-10月-14

RMAN> recover database;

启动 recover 于 03-10月-14
使用通道 ORA_DISK_1
未处理数据文件 5, 因为文件是只读的
未处理数据文件 6, 因为文件是只读的

正在开始介质的恢复

我们看到,5,6是只读的文件,在restore的时候没有他们,这两个文件丢失了,这样也是没有办法来恢复的。要在restore的时候恢复只读表空间,使用RESTORE DATABASE CHECK READONLY;

RMAN> restore database check readonly;

启动 restore 于 03-10月-14
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\T4.DBF
正将数据文件00006恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\RMANBAK\ORA_BAK85998310
6_S9_S1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\RMANBAK\ORA_BAK859983106_S9_S1 标记 = TAG20141
003T121145
通道 ORA_DISK_1: 恢复完成, 用时: 00:07:51
完成 restore 于 03-10月-14

RMAN> recover database;

启动 recover 于 03-10月-14
使用通道 ORA_DISK_1
未处理数据文件 5, 因为文件是只读的
未处理数据文件 6, 因为文件是只读的

正在开始介质的恢复

存档日志线程 1 序列 60 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00060_085592
5716.001 存在于磁盘上
存档日志线程 1 序列 61 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00061_085592
5716.001 存在于磁盘上
存档日志线程 1 序列 62 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00062_085592
5716.001 存在于磁盘上
存档日志线程 1 序列 63 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00063_085592
5716.001 存在于磁盘上
存档日志线程 1 序列 64 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00064_085592
5716.001 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00060_0855925716.001 线程 =1
序列 =60
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00061_0855925716.001 线程 =1
序列 =61
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH1\ARC00062_0855925716.001 线程 =1
序列 =62
介质恢复完成, 用时: 00:00:03
完成 recover 于 03-10月-14

在打开数据库的时候,出现提示:

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\T4.DBF'

看到由于在备份后,数据文件5中的表有变动,现在由于是只读的,无法open,需要手工recover


SQL> recover datafile 5;
ORA-00279: 更改 2275818 (在 10/03/2014 12:11:46 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00060_0855925716.001
ORA-00280: 更改 2275818 (用于线程 1) 在序列 #60 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00060_0855925716.001
ORA-00279: 更改 2275864 (在 10/03/2014 12:13:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00061_0855925716.001
ORA-00280: 更改 2275864 (用于线程 1) 在序列 #61 中
ORA-00278: 此恢复不再需要日志文件
'D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00060_0855925716.001'


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00061_0855925716.001
ORA-00279: 更改 2275866 (在 10/03/2014 12:13:46 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00062_0855925716.001
ORA-00280: 更改 2275866 (用于线程 1) 在序列 #62 中
ORA-00278: 此恢复不再需要日志文件
'D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00061_0855925716.001'


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\ORACLE\PRODUCT\10.2.0\ARCH2\ARC00062_0855925716.001
已应用的日志。
完成介质恢复。
SQL> alter database open;

数据库已更改。

0 0
原创粉丝点击