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

标签 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

最佳答案

如果您的数据文件保存在PDB 中
您将必须遵循以下命令:

SHUTDOWN ABORT
STARTUP
ALTER PLUGGABLE DATABASE $MyPDB OPEN;

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

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

要正确执行此操作,您必须将 session 修改为目标 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

关于database - ORACLE 数据库 |删除缺少数据文件的表空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33274869/

相关文章:

database - 将唯一访问者存储在分布式数据库中

java - WhichdDatabase 将被证明是有效的?

sql - SQL中如何随机选择行?

mysql - 涉及集合比较的 SQL 查询

c# - ORA-00936 : missing expression using Entity framework update statement

database - 从 Oracle 11g 中给定的 url 下载文件并将其保存到 blob 类型列中的过程

Oracle:列定义不明确

mysql - MySQL中的包(Oracle)是否有任何等价物

java - JPA 标准在所选日期上添加一天

mysql - 删除具有关系的相关列的最佳方法