在SCOTT模式下创建一个表:
create table test01 as select rownum rn from dual connect by rownum <= 1000;
update test01 set rn = rn*2;
然后在RMAN中使用backup database plus archivelog做一个备份之后关闭数据库。
缺省情况下test01表位于表空间USERS01。将数据文件移动到其他位置。
启动数据库时,发生错误:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2488635392 bytes
Fixed Size 2798928 bytes
Variable Size 721423024 bytes
Database Buffers 1744830464 bytes
Redo Buffers 19582976 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'C:\ORACLE\ORADATA\ORCL\USERS01.DBF'
进入RMAN, 使用list backup查看现有的备份
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
2 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF
3 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
5 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
6 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\USERS01.DBF
可以看到, 缺失的数据文件编号是6。
RMAN中输入命令:
RMAN> restore datafile 6;
启动 restore 于 13-1月 -15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=62 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00006 还原到 C:\ORACLE\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\20
15_01_13\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP
通道 ORA_DISK_1: 段句柄 = C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\2015_01_13
\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP 标记 = TAG20150113T202605
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
完成 restore 于 13-1月 -15
RMAN> recover datafile 6;
启动 recover 于 13-1月 -15
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:00
完成 recover 于 13-1月 -15
RMAN> alter database open;
至此, 数据文件恢复完成。
我们也可以指定恢复的数据文件为其他名字,使用如下RMAN脚本
set newname for datafile 6 to 'c:\users01.dbf'; --将数据文件恢复至其他物理位置
run{
startup mount
set newname for datafile 6 to 'c:\users01.dbf';
restore datafile 6;
switch datafile 6;
recover datafile 6;
alter database open;
}
RMAN> run{
2> startup mount
3> set newname for datafile 6 to 'F:\users01.dbf';
4> restore datafile 6;
5> switch datafile 6;
6> recover datafile 6;
7> alter database open;
8> }
Oracle 实例已启动
数据库已装载
系统全局区域总计 2488635392 字节
Fixed Size 2798928 字节
Variable Size 721423024 字节
Database Buffers 1744830464 字节
Redo Buffers 19582976 字节
正在执行命令: SET NEWNAME
启动 restore 于 13-1月 -15
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=3 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00006 还原到 F:\users01.dbf
通道 ORA_DISK_1: 正在读取备份片段 C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\20
15_01_13\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP
通道 ORA_DISK_1: 段句柄 = C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\2015_01_13
\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP 标记 = TAG20150113T202605
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
完成 restore 于 13-1月 -15
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=2 STAMP=868913855 文件名=F:\USERS01.DBF
启动 recover 于 13-1月 -15
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:00
完成 recover 于 13-1月 -15
已处理语句
create table test01 as select rownum rn from dual connect by rownum <= 1000;
update test01 set rn = rn*2;
然后在RMAN中使用backup database plus archivelog做一个备份之后关闭数据库。
缺省情况下test01表位于表空间USERS01。将数据文件移动到其他位置。
启动数据库时,发生错误:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2488635392 bytes
Fixed Size 2798928 bytes
Variable Size 721423024 bytes
Database Buffers 1744830464 bytes
Redo Buffers 19582976 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'C:\ORACLE\ORADATA\ORCL\USERS01.DBF'
进入RMAN, 使用list backup查看现有的备份
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
2 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF
3 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
5 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
6 Full 191358074 13-1月 -15 C:\ORACLE\ORADATA\ORCL\USERS01.DBF
可以看到, 缺失的数据文件编号是6。
RMAN中输入命令:
RMAN> restore datafile 6;
启动 restore 于 13-1月 -15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=62 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00006 还原到 C:\ORACLE\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\20
15_01_13\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP
通道 ORA_DISK_1: 段句柄 = C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\2015_01_13
\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP 标记 = TAG20150113T202605
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
完成 restore 于 13-1月 -15
RMAN> recover datafile 6;
启动 recover 于 13-1月 -15
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:00
完成 recover 于 13-1月 -15
RMAN> alter database open;
至此, 数据文件恢复完成。
我们也可以指定恢复的数据文件为其他名字,使用如下RMAN脚本
set newname for datafile 6 to 'c:\users01.dbf'; --将数据文件恢复至其他物理位置
run{
startup mount
set newname for datafile 6 to 'c:\users01.dbf';
restore datafile 6;
switch datafile 6;
recover datafile 6;
alter database open;
}
RMAN> run{
2> startup mount
3> set newname for datafile 6 to 'F:\users01.dbf';
4> restore datafile 6;
5> switch datafile 6;
6> recover datafile 6;
7> alter database open;
8> }
Oracle 实例已启动
数据库已装载
系统全局区域总计 2488635392 字节
Fixed Size 2798928 字节
Variable Size 721423024 字节
Database Buffers 1744830464 字节
Redo Buffers 19582976 字节
正在执行命令: SET NEWNAME
启动 restore 于 13-1月 -15
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=3 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00006 还原到 F:\users01.dbf
通道 ORA_DISK_1: 正在读取备份片段 C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\20
15_01_13\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP
通道 ORA_DISK_1: 段句柄 = C:\ORACLE\FAST_RECOVERY_AREA\ORCL\BACKUPSET\2015_01_13
\O1_MF_NNNDF_TAG20150113T202605_BCB3PXYS_.BKP 标记 = TAG20150113T202605
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
完成 restore 于 13-1月 -15
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=2 STAMP=868913855 文件名=F:\USERS01.DBF
启动 recover 于 13-1月 -15
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:00
完成 recover 于 13-1月 -15
已处理语句
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8520577/viewspace-1400773/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8520577/viewspace-1400773/