25、恢复没有备份的数据文件
在数据文件崩溃之前没有任何备份的情况下,要恢复这个文件通常要符合如下条件:
●所需恢复的数据文件不属于系统表空间或还原/回滚段表空间。
●由于介质损坏或用户错误操作导致数据文件的丢失,但是这个文件从来就没有备份过。
●在创建本次丢失的数据文件之前数据库处于归档模式下。
●从这个数据文件创建以来所有的归档日志文件都完整无损。
步骤:
1、如果数据库是在打开状态,使用数据字典dba_data_files获取要恢复的数据文件所对应
的表空间及它所对应的状态。
SQL>select tablespace_name,table_name,status from dba_data_file;
2、如果数据库处在联机状态,使用数据库字典dba_tablespace获取要恢复的表空间信息,
通过表空间V$database获取要恢复的数据文件是否处在联机状态。
3、如果表空间处于联机状态,要先将表空间脱机状态,也可以将数据文件设为脱机,打开
数据库。
如果数据已经关闭,启动到mount状态将数据文件脱机,再打开数据库。
(1)如果数据库处于打开状态
\test.dbf’ offline;
SQL>alter database datafile ‘c:
(2)如果数据库处于关闭状态
SQL>startup mount;
test.dbf’ offline;
SQL>alter database datafile ‘c:
SQL>alter database open;
4、使用v$recover_file查看数据文件的恢复状态
5、在数据库打开状态下,使用alter database create datafile重建数据文件结构。
‘c:test.dbf’;
SQL>alter database create datafile ‘c:
test.dbf’ as
6、再次使用v$recover_file查看数据文件的恢复状态
表空间”,也可以使用recover datafile “
数据文件”
7、使用:recover tablespace “
把数据从归档日志文件盒重做日志文件重新写入已经修复的数据文件。
test.dbf’;
SQL>recover datafile ‘c:
8、当恢复完成后使用alter tablespace 或alter database命令将表空间或数据文件重新设
置为联机状态
test.dbf’ online;
SQL>alter database dataf ile ‘c:
至此数据文件恢复完成。
9、查看恢复的情况。