执行表空间或数据文件恢复时,数据库既可以是MOUNT状态,也可以是OPEN状态。
1、恢复表空间
在执行恢复之前,如果被操作的表空间未处理OFFLINE状态,必须首先通过ALTER TABLESPACE…OFFLINE语句将其置为脱机。然后再RESTORE-->RECOVER--->ONLINE即可。
RMAN> SQL 'ALTER TABLESPACE USERS OFFLINE IMMEDIATE'; 在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync
sql 语句: ALTER TABLESPACE USERS OFFLINE IMMEDIATE RMAN> RESTORE TABLESPACE USERS; 启动 restore 于 21-12月-14
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=172 设备类型=DISK 创建数据文件, 文件号 = 7 名称 = D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\RMAN_BAK\FUL_BAK_20141221
通道 ORA_DISK_1: 段句柄 = D:\RMAN_BAK\FUL_BAK_20141221 标记 = TAG20141221T134059
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:04
完成 restore 于 21-12月-14 RMAN> RECOVER TABLESPACE USERS; 启动 recover 于 21-12月-14
使用通道 ORA_DISK_1 正在开始介质的恢复 线程 1 序列 22 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_22_B9FPC0GR_.ARC 存在于磁盘上
线程 1 序列 23 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_23_B9FPC4PT_.ARC 存在于磁盘上
线程 1 序列 24 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_24_B9FPC37H_.ARC 存在于磁盘上
线程 1 序列 25 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_25_B9FPC3VQ_.ARC 存在于磁盘上
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_22_B9FPC0GR_.ARC 线程=1 序列=22
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_23_B9FPC4PT_.ARC 线程=1 序列=23
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_24_B9FPC37H_.ARC 线程=1 序列=24
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_25_B9FPC3VQ_.ARC 线程=1 序列=25
介质恢复完成, 用时: 00:00:04
完成 recover 于 21-12月-14 RMAN> SQL 'ALTER TABLESPACE USERS ONLINE'; sql 语句: ALTER TABLESPACE USERS ONLINE
2、恢复数据文件
恢复表空间其实就是恢复其所对应的数据文件。一个表空间可能对应多个数据文件。因此恢复文件操作与恢复表空间类似。
将数据文件置为OFFLINE,再RESTORE,再RECOVER,然后ONLINE即可。
SQL> SELECT FILE#,STATUS,NAME FROM V$DATAFILE;
FILE# STATUS NAME
---------- ------- ------------------------------------------------
1 SYSTEM D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
2 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
3 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
4 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
5 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
6 ONLINE D:\RMAN_CATALOG\RMANTBS01.DBF
7 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF
7 rows selected =============================
oracle数据库告警日志文件路径:
D:\app\Administrator\diag\rdbms\orcl\orcl\trace
=========================
恢复数据文件D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF。
RMAN> SQL 'ALTER DATABASE DATAFILE 4 OFFLINE'; sql 语句: ALTER DATABASE DATAFILE 4 OFFLINE RMAN> RESTORE DATAFILE 4; 启动 restore 于 22-12月-14
使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\RMAN_BAK\FUL_BAK_20141221
通道 ORA_DISK_1: 段句柄 = D:\RMAN_BAK\FUL_BAK_20141221 标记 = TAG20141221T134059
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:02
完成 restore 于 22-12月-14 RMAN> RECOVER DATAFILE 4; 启动 recover 于 22-12月-14
使用通道 ORA_DISK_1 正在开始介质的恢复 线程 1 序列 22 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_22_B9FPC0GR_.ARC 存在于磁盘上
线程 1 序列 23 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_23_B9FPC4PT_.ARC 存在于磁盘上
线程 1 序列 24 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_24_B9FPC37H_.ARC 存在于磁盘上
线程 1 序列 25 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_25_B9FPC3VQ_.ARC 存在于磁盘上
线程 1 序列 1 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_1_B9FWSYH4_.ARC 存在于磁盘上
线程 1 序列 2 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_2_B9FXKQ7X_.ARC 存在于磁盘上
线程 1 序列 3 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_3_B9FXPFMP_.ARC 存在于磁盘上
线程 1 序列 4 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_4_B9JDBDJ6_.ARC 存在于磁盘上
线程 1 序列 5 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_5_B9JDBC8L_.ARC 存在于磁盘上
线程 1 序列 6 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_6_B9JDBCNC_.ARC 存在于磁盘上
线程 1 序列 7 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_7_B9JDBD18_.ARC 存在于磁盘上
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_22_B9FPC0GR_.ARC 线程=1 序列=22
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_23_B9FPC4PT_.ARC 线程=1 序列=23
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_24_B9FPC37H_.ARC 线程=1 序列=24
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_21\O1_MF_1_25_B9FPC3VQ_.ARC 线程=1 序列=25
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_1_B9FWSYH4_.ARC 线程=1 序列=1
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_2_B9FXKQ7X_.ARC 线程=1 序列=2
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_3_B9FXPFMP_.ARC 线程=1 序列=3
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_4_B9JDBDJ6_.ARC 线程=1 序列=4
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_5_B9JDBC8L_.ARC 线程=1 序列=5
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_6_B9JDBCNC_.ARC 线程=1 序列=6
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_12_22\O1_MF_1_7_B9JDBD18_.ARC 线程=1 序列=7
介质恢复完成, 用时: 00:00:05
完成 recover 于 22-12月-14 RMAN> SQL 'ALTER DATABASE DATAFILE 4 ONLINE'; sql 语句: ALTER DATABASE DATAFILE 4 ONLINE
=============================
说明:执行RESTORE/RECOVER操作指定数据文件时,既可以直接指定数据文件的详细路径,也可以以数据文件序号代替。
如果由于磁盘损坏导致数据文件无法访问,恢复时可能需要恢复到其它路径,此时必须给数据文件指定新的路径:
RMAN> RUN{SET NEWNAME FOR DATAFILE 4 TO 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF';
RESTORE DATAFILE 4;
SWITCH DATAFILE 4;
RECOVER DATAFILE 4;
}