问题1:物理删除DBF文件导致数据库不能正常使用的解决方法
由于本机oracle安装所在的E盘空间不足,故把不用的数据文件E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TCM_BM.DBF 直接物理删除,www.2cto.com
导致数据库普通用户无法正常登录。
解决办法:
用sys用户登录数据库,执行命令:
SQL> alter database open;
alter database open
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TCM_BM.DBF'
此时使用非归档模式删除数据文件(文件已经被物理删除,此处作用只是删除文件映射):
SQL> alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TCM_BM.DBF' offline drop;
Database altered
SQL> alter database open;
Database altered
此时oracle普通帐号可以正常使用了。
===============================================================
问题2:一个表空间对于多个dbf文间,误删其中一个,且无法恢复,导致表空间处于脱线状态,也无法导出用户数据进行备份
查询v$datafile
--------------------------
status enable
---------------------------
offline disabled
处理:
SQL> alter database datafile 'E:\ORACLE\ORADATA\ORCL\TCM_BM02.DBF' offline drop;
Database altered
SQL> alter tablespace name online;
仍提示 'E:\ORACLE\ORADATA\ORCL\TCM_BM02.DBF' 文件有问题
解决:
file$表中删除文件信息
SQL> select file#,status$ from file$;
SQL> delete file$ where file# = 19;
SQL> alter tablespace name online;
Database altered
表空间恢复正常
万不得已,不要这么处理,要经常备份