在上一篇中讲了数据文件状态的改变,并做了一个非归档模式下利用
ALTER DATABASE DATAFILE ...OFFLINE FOR DROP 语句将一个数据文件设置为脱机状态,实验的过程如下:
SQL> ALTER TABLESPACE USERS ADD DATAFILE
2 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' SIZE 10M;
SQL> alter database datafile
2 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' offline for drop;
2 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' SIZE 10M;
表空间已更改。
下面我们来删除
SQL> alter database datafile
2 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' offline for drop;
数据库已更改。
然后查询users表空间的数据文件
SQL> select file_name from dba_data_files
2 where tablespace_name='USERS';
2 where tablespace_name='USERS';
FILE_NAME
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
G:\APP\BEI\ORADATA\ORCL\USERS01.DBF
G:\APP\BEI\ORADATA\ORCL\USER11.DBF--还在表空间中
G:\APP\BEI\ORADATA\ORCL\USER11.DBF--还在表空间中
我们发现了一个user11.dbf仍然在表空间中。其实该语句只是将数据文件脱机,数据文件不可用,并没有真正的将其从数据字典记忆控制文件中删除该数据文件信息,也没有从磁盘上删除该数据文件。该数据文件随后可以随其所属表空间的珊瑚粗而删除。
那么 ,我们应该如何,再将其从脱机状态恢复为联机状态呢?
如果我们直接恢复:
效果如下:
SQL> alter database datafile
2 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' online
3 ;
alter database datafile
*
第 1 行出现错误:
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF'
2 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' online
3 ;
alter database datafile
*
第 1 行出现错误:
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF'
很明显不可一直利用以上办法,应该采用介质恢复:
如下:
SQL> recover datafile 5;
完成介质恢复。
完成介质恢复。
查看状态:
SQL> select file_name,status from dba_data_files
2 where tablespace_name='USERS';
2 where tablespace_name='USERS';
FILE_NAME
--------------------
--------------------
STATUS
---------
G:\APP\BEI\ORADATA\ORCL\USERS01.DBF
AVAILABLE
G:\APP\BEI\ORADATA\ORCL\USERS01.DBF
AVAILABLE
G:\APP\BEI\ORADATA\ORCL\USER11.DBF
AVAILABLE
AVAILABLE
完成脱机到联机的转换
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28811724/viewspace-758669/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28811724/viewspace-758669/