ORACLE数据库|删除缺少数据文件的表空间

时间:2015-10-22 06:45:01

标签: database oracle

在删除表空间之前,我错误地删除了数据文件。但是表空间占用了很大的空间。我需要删除它,任何方法?

它发生:

DROP TABLESPACE abc;

*

ERROR at line 1:
ORA-01116: error in opening database file 8
ORA-01110: data file 8: '/data/oradata/oracle/abc.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

3 个答案:

答案 0 :(得分:1)

您可以按照此Oracle forum

中的步骤进行操作
  

按照以下步骤操作: -

     

1)关机中止

     

2)sqlplus sys / xxx as sysdba

     

3)更改数据库装载

     

4)改变数据库数据文件''离线掉线;

     

5)改变数据库打开

答案 1 :(得分:0)

尝试恢复数据文件,识别表空间的名称

select tablespace_name from dba_data_files where file_id =  8;

将表空间的状态更改为脱机,以便您可以运行RMAN(恢复管理器)

alter tablespace test offline immediate;

之后你必须运行RMAN来恢复文件..有关如何执行此操作的更多信息,请阅读此内容,了解有关RMAN Burleson

的更多信息

答案 2 :(得分:0)

如果您的数据文件位于PDB内部
您将必须遵循以下命令:

SHUTDOWN ABORT
STARTUP
ALTER PLUGGABLE DATABASE $MyPDB OPEN;

在这最后一条命令上,它应该失败并出现ORA-01110错误。
如果您尝试ALTER DATABASE DATAFILE $datafileNumber OFFLINE DROP;
您将遇到ORA-01516。

这是因为您试图在CDB而不是PDB上删除数据文件。

要正确执行此操作,必须将会话修改为目标PDB:

ALTER SESSION SET CONTAINER=$MyPDB;

现在,您可以删除数据文件并打开数据库:

ALTER DATABASE DATAFILE $datafileNumber OFFLINE DROP;
ALTER PLUGGABLE DATABASE $MyPDB OPEN;

参考

https://blogs.oracle.com/robertgfreeman/pdb-recovery-your-pdb-wont-open-because-a-datafile-is-missing