首页 > 代码库 > RMAN数据库恢复之恢复表空间和数据文件

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

执行表空间或数据文件恢复时,数据库既可以是MOUNT状态,也可以是OPEN状态。
1、恢复表空间
在执行恢复之前,如果被操作的表空间未处理OFFLINE状态,必须首先通过ALTER TABLESPACE…OFFLINE语句将其置为脱机。然后再RESTORE-->RECOVER--->ONLINE即可。

RMAN> SQL ALTER TABLESPACE USERS OFFLINE IMMEDIATE;在恢复目录中注册的数据库的新原型正在启动全部恢复目录的 resync完成全部 resyncsql 语句: ALTER TABLESPACE USERS OFFLINE IMMEDIATERMAN> RESTORE TABLESPACE USERS;启动 restore21-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完成 restore21-12月-14RMAN> 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月-14RMAN> 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.DBF2 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF3 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF4 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF5 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF6 ONLINE D:\RMAN_CATALOG\RMANTBS01.DBF7 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF7 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 OFFLINERMAN> RESTORE DATAFILE 4;启动 restore22-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完成 restore22-12月-14RMAN> 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月-14RMAN> 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;}

 

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