首先模拟数据文件丢失
- 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
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)
- 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
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、恢复数据文件(把前面的模拟在执行一次,现在换另一种方法来恢复。)
- RMAN> sql "alter database datafile 5 offline";
- sql 语句: alter database datafile 5 offline
- RMAN> restore datafile 5;
- 启动 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 datafile 5;
- 启动 recover 于 11-10月-11
- 使用通道 ORA_DISK_1
- 正在开始介质的恢复
- 介质恢复完成, 用时: 00:00:03
- 完成 recover 于 11-10月-11
- RMAN> sql "alter database datafile 5 online";
- sql 语句: alter database datafile 5 online
本文详细介绍了当数据库数据文件丢失时,如何通过RMAN进行恢复的步骤,包括表空间恢复和单个数据文件恢复。
270

被折叠的 条评论
为什么被折叠?



