RMAN数据库恢复之恢复表空间和数据文件

执行表空间或数据文件恢复时,数据库既可以是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;

启动 restore21-12月-14
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=172 设备类型=DISK

创建数据文件, 文件号 = 7 名称 = D:APPADMINISTRATORORADATAORCLUSERS02.DBF
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:APPADMINISTRATORORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:RMAN_BAKFUL_BAK_20141221
通道 ORA_DISK_1: 段句柄 = D:RMAN_BAKFUL_BAK_20141221 标记 = TAG20141221T134059
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:04
完成 restore21-12月-14

RMAN> RECOVER TABLESPACE USERS;

启动 recover 于 21-12月-14
使用通道 ORA_DISK_1

正在开始介质的恢复

线程 1 序列 22 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_22_B9FPC0GR_.ARC 存在于磁盘上
线程 1 序列 23 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_23_B9FPC4PT_.ARC 存在于磁盘上
线程 1 序列 24 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_24_B9FPC37H_.ARC 存在于磁盘上
线程 1 序列 25 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_25_B9FPC3VQ_.ARC 存在于磁盘上
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_22_B9FPC0GR_.ARC 线程=1 序列=22
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_23_B9FPC4PT_.ARC 线程=1 序列=23
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_24_B9FPC37H_.ARC 线程=1 序列=24
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_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:APPADMINISTRATORORADATAORCLSYSTEM01.DBF
2 ONLINE D:APPADMINISTRATORORADATAORCLSYSAUX01.DBF
3 ONLINE D:APPADMINISTRATORORADATAORCLUNDOTBS01.DBF
4 ONLINE D:APPADMINISTRATORORADATAORCLUSERS01.DBF
5 ONLINE D:APPADMINISTRATORORADATAORCLEXAMPLE01.DBF
6 ONLINE D:RMAN_CATALOGRMANTBS01.DBF
7 ONLINE D:APPADMINISTRATORORADATAORCLUSERS02.DBF
7 rows selected

=============================
oracle数据库告警日志文件路径:
D:appAdministratordiag
dbmsorclorcl	race
=========================
恢复数据文件D:APPADMINISTRATORORADATAORCLUSERS01.DBF。
RMAN> SQL 'ALTER DATABASE DATAFILE 4 OFFLINE';

sql 语句: ALTER DATABASE DATAFILE 4 OFFLINE

RMAN> RESTORE DATAFILE 4;

启动 restore22-12月-14
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:APPADMINISTRATORORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:RMAN_BAKFUL_BAK_20141221
通道 ORA_DISK_1: 段句柄 = D:RMAN_BAKFUL_BAK_20141221 标记 = TAG20141221T134059
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:02
完成 restore22-12月-14

RMAN> RECOVER DATAFILE 4;

启动 recover 于 22-12月-14
使用通道 ORA_DISK_1

正在开始介质的恢复

线程 1 序列 22 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_22_B9FPC0GR_.ARC 存在于磁盘上
线程 1 序列 23 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_23_B9FPC4PT_.ARC 存在于磁盘上
线程 1 序列 24 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_24_B9FPC37H_.ARC 存在于磁盘上
线程 1 序列 25 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_25_B9FPC3VQ_.ARC 存在于磁盘上
线程 1 序列 1 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_1_B9FWSYH4_.ARC 存在于磁盘上
线程 1 序列 2 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_2_B9FXKQ7X_.ARC 存在于磁盘上
线程 1 序列 3 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_3_B9FXPFMP_.ARC 存在于磁盘上
线程 1 序列 4 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_4_B9JDBDJ6_.ARC 存在于磁盘上
线程 1 序列 5 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_5_B9JDBC8L_.ARC 存在于磁盘上
线程 1 序列 6 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_6_B9JDBCNC_.ARC 存在于磁盘上
线程 1 序列 7 的归档日志已作为文件 D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_7_B9JDBD18_.ARC 存在于磁盘上
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_22_B9FPC0GR_.ARC 线程=1 序列=22
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_23_B9FPC4PT_.ARC 线程=1 序列=23
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_24_B9FPC37H_.ARC 线程=1 序列=24
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_21O1_MF_1_25_B9FPC3VQ_.ARC 线程=1 序列=25
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_1_B9FWSYH4_.ARC 线程=1 序列=1
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_2_B9FXKQ7X_.ARC 线程=1 序列=2
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_3_B9FXPFMP_.ARC 线程=1 序列=3
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_4_B9JDBDJ6_.ARC 线程=1 序列=4
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_5_B9JDBC8L_.ARC 线程=1 序列=5
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_MF_1_6_B9JDBCNC_.ARC 线程=1 序列=6
归档日志文件名=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2014_12_22O1_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:APPADMINISTRATORORADATAORCLUSERS01.DBF';
RESTORE DATAFILE 4;
SWITCH DATAFILE 4;
RECOVER DATAFILE 4;
}
原文地址:https://www.cnblogs.com/rusking/p/4179234.html