【问题标题】:Oracle 12g - How to recover overwritten tablespace file?Oracle 12g - 如何恢复被覆盖的表空间文件?
【发布时间】:2019-03-20 02:46:09
【问题描述】:

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

我的问题是:

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

如果有帮助,我使用的查询: ALTER TABLESPACE [TABLESPACE NAME] ADD DATAFILE '[EXISTING DBF FILE]' SIZE 2000M AUTOEXTEND ON NEXT 10M MAXSIZE 20000M;

【问题讨论】:

    标签: database oracle tablespace


    【解决方案1】:

    数据库不允许你添加已经是数据库一部分的文件

    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

    【讨论】:

    • 谢谢,在这种情况下你是对的。然后我与团队进行了核对,他们确认没有以我今天早上在该服务器中创建的文件命名的现有文件。
    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2019-07-07
    • 2023-03-17
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多