在删除表空间之前,我错误地删除了数据文件。但是表空间占用了很大的空间。我需要删除它,任何方法?
它发生:
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
答案 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;