RMAN备份与恢复—恢复有备份的表空间和数据文件

首先模拟数据文件丢失

  1. SQL> select status from v$instance;  
  2.   
  3. STATUS  
  4. ------------  
  5. OPEN  
  6.   
  7. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbf  
  8.   
  9. SQL> select file_name,online_status from dba_data_files;  
  10.   
  11. FILE_NAME                                                                        ONLINE_  
  12. -------------------------------------------------------------------------------- -------  
  13. /u01/app/oracle/oradata/orcl/users01.dbf                                         ONLINE  
  14. /u01/app/oracle/oradata/orcl/sysaux01.dbf                                        ONLINE  
  15. /u01/app/oracle/oradata/orcl/undotbs01.dbf                                       ONLINE  
  16. /u01/app/oracle/oradata/orcl/system01.dbf                                        SYSTEM  
  17. /u01/app/oracle/oradata/orcl/tb1.dbf                                             ONLINE  
  18. /u01/app/oracle/oradata/orcl/tb2.dbf                                             ONLINE  
  19.   
  20. 已选择6行。  
  21.   
  22. SQL> conn u1/u1  
  23. 已连接。  
  24. SQL> select * from t;  
  25. select * from t  
  26.               *  
  27. 第 1 行出现错误:  
  28. ORA-01116: 打开数据库文件 5 时出错  
  29. ORA-01110: 数据文件 5: '/u01/app/oracle/oradata/orcl/tb1.dbf'  
  30. ORA-27041: 无法打开文件  
  31. Linux Error: 2: No such file or directory  
  32. Additional information: 3  
SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbf

SQL> select file_name,online_status from dba_data_files;

FILE_NAME                                                                        ONLINE_
-------------------------------------------------------------------------------- -------
/u01/app/oracle/oradata/orcl/users01.dbf                                         ONLINE
/u01/app/oracle/oradata/orcl/sysaux01.dbf                                        ONLINE
/u01/app/oracle/oradata/orcl/undotbs01.dbf                                       ONLINE
/u01/app/oracle/oradata/orcl/system01.dbf                                        SYSTEM
/u01/app/oracle/oradata/orcl/tb1.dbf                                             ONLINE
/u01/app/oracle/oradata/orcl/tb2.dbf                                             ONLINE

已选择6行。

SQL> conn u1/u1
已连接。
SQL> select * from t;
select * from t
              *
第 1 行出现错误:
ORA-01116: 打开数据库文件 5 时出错
ORA-01110: 数据文件 5: '/u01/app/oracle/oradata/orcl/tb1.dbf'
ORA-27041: 无法打开文件
Linux Error: 2: No such file or directory
Additional information: 3


1、恢复表空间(因为表空间就只有一个数据文件tb1.dbf)

  1. RMAN> sql "alter tablespace tb1 offline immediate";  
  2.   
  3. sql 语句: alter tablespace tb1 offline immediate  
  4.   
  5. RMAN> restore tablespace tb1;  
  6.   
  7. 启动 restore 于 11-10月-11  
  8. 使用通道 ORA_DISK_1  
  9.   
  10. 通道 ORA_DISK_1: 正在开始恢复数据文件备份集  
  11. 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件  
  12. 正将数据文件00005还原到/u01/app/oracle/oradata/orcl/tb1.dbf  
  13. 通道 ORA_DISK_1: 正在读取备份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_11/o1_mf_nnndf_TAG20111011T193526_798bhz92_.bkp  
  14. 通道 ORA_DISK_1: 已还原备份片段 1  
  15. 段句柄 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_11/o1_mf_nnndf_TAG20111011T193526_798bhz92_.bkp 标记 = TAG20111011T193526  
  16. 通道 ORA_DISK_1: 还原完成, 用时: 00:00:01  
  17. 完成 restore 于 11-10月-11  
  18.   
  19. RMAN> recover tablespace tb1;  
  20.   
  21. 启动 recover 于 11-10月-11  
  22. 使用通道 ORA_DISK_1  
  23.   
  24. 正在开始介质的恢复  
  25. 介质恢复完成, 用时: 00:00:01  
  26.   
  27. 完成 recover 于 11-10月-11  
  28.   
  29. RMAN> sql "alter tablespace tb1 online";  
  30.   
  31. sql 语句: alter tablespace tb1 online  
RMAN> sql "alter tablespace tb1 offline immediate";

sql 语句: alter tablespace tb1 offline immediate

RMAN> restore tablespace tb1;

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

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00005还原到/u01/app/oracle/oradata/orcl/tb1.dbf
通道 ORA_DISK_1: 正在读取备份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_11/o1_mf_nnndf_TAG20111011T193526_798bhz92_.bkp
通道 ORA_DISK_1: 已还原备份片段 1
段句柄 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_11/o1_mf_nnndf_TAG20111011T193526_798bhz92_.bkp 标记 = TAG20111011T193526
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
完成 restore 于 11-10月-11

RMAN> recover tablespace tb1;

启动 recover 于 11-10月-11
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:01

完成 recover 于 11-10月-11

RMAN> sql "alter tablespace tb1 online";

sql 语句: alter tablespace tb1 online


2、恢复数据文件(把前面的模拟在执行一次,现在换另一种方法来恢复。)

  1. RMAN> sql "alter database datafile 5 offline";  
  2.   
  3. sql 语句: alter database datafile 5 offline  
  4.   
  5. RMAN> restore datafile 5;  
  6.   
  7. 启动 restore 于 11-10月-11  
  8. 使用通道 ORA_DISK_1  
  9.   
  10. 通道 ORA_DISK_1: 正在开始恢复数据文件备份集  
  11. 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件  
  12. 正将数据文件00005还原到/u01/app/oracle/oradata/orcl/tb1.dbf  
  13. 通道 ORA_DISK_1: 正在读取备份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_11/o1_mf_nnndf_TAG20111011T193526_798bhz92_.bkp  
  14. 通道 ORA_DISK_1: 已还原备份片段 1  
  15. 段句柄 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_11/o1_mf_nnndf_TAG20111011T193526_798bhz92_.bkp 标记 = TAG20111011T193526  
  16. 通道 ORA_DISK_1: 还原完成, 用时: 00:00:01  
  17. 完成 restore 于 11-10月-11  
  18.   
  19. RMAN> recover datafile 5;  
  20.   
  21. 启动 recover 于 11-10月-11  
  22. 使用通道 ORA_DISK_1  
  23.   
  24. 正在开始介质的恢复  
  25. 介质恢复完成, 用时: 00:00:03  
  26.   
  27. 完成 recover 于 11-10月-11  
  28.   
  29. RMAN> sql "alter database datafile 5 online";  
  30.   
  31. sql 语句: alter database datafile 5 online  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值