丢失表空间的恢复方法和丢失数据文件的恢复方法一样。
1.非 datafile 1 丢失或损坏
启动数据库不会报错,
SQL> startup
SYS@ghyyk> select count() from test5;
select count() from test5
*
ERROR at line 1:
ORA-00376: file 7 cannot be read at this time
ORA-01110: data file 7: ‘/home/oracle/oradata/AAA01.dbf’
但是在查询相关表时会报错。
SYS@ghyyk> select * From dba_data_files;
/home/oracle/oradata/AAA01.dbf
7 AAA AVAILABLE
7
RECOVER
(查询datafile视图时,该表空间的状态是recover)
恢复方法:
RMAN>run
{
sql 'alter database datafile 7 offline ';
restore datafile 7;
recover datafile 7;
sql ‘alter database datafile 7 online’;
}
select count(*) from test5;
2.datafile 1 丢失,数据库启动时报错:
SYS@ghyyk> startup
ORACLE instance started.
Total System Global Area 8