Oracle 12g-如何恢复覆盖的表空间文件?

时间:2019-03-20 02:46:09

标签: database oracle tablespace

我不小心更改了表空间,以将新文件添加到当前表空间,但是我不小心使用了与现有文件相同的名称。换句话说,我将覆盖现有的一个。

我的问题是:

  1. 如何知道该表空间中丢失的表的哪一行被覆盖?
  2. 如何恢复覆盖的表空间?考虑它发生在2天前。

如果有帮助,我使用的查询: ALTER TABLESPACE [表空间名称]添加数据文件'[EXISTING DBF FILE]'大小2000M自动扩展,下一个10M最大大小20000M;

1 个答案:

答案 0 :(得分:0)

数据库不允许您添加已经属于数据库的文件

SQL> create tablespace demo datafile 'X:\ORADATA\DB18\PDB1\DEMO.DBF' size 10m;

Tablespace created.

SQL> alter tablespace demo add datafile 'X:\ORADATA\DB18\PDB1\DEMO.DBF' size 10m;
alter tablespace demo add datafile 'X:\ORADATA\DB18\PDB1\DEMO.DBF' size 10m
*
ERROR at line 1:
ORA-01537: cannot add file 'X:\ORADATA\DB18\PDB1\DEMO.DBF' - file already part of database

所以要发生这种情况,必须发生其他事情。

但是,除此之外,如果某些外部操作已经对该数据文件进行了压缩,那么唯一的办法就是从备份中恢复该文件并向前恢复。从这里开始的方式取决于您拥有的备份,用于备份的工具等。

但是,如果您使用的是RMAN,则标准文档提供了一系列方案,可指导您完成所需的工作。

https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/index.html