误删除Oracle数据库恢复,怎么办?

DBF部分被覆盖
2024年12月10日 15:19
有5个网友回答
网友(1):

你可以试试PRM for Oracle。

ParnassusData Recovery Manager(以下简称PRM)是企业级ORACLE数据灾难恢复软件,可直接从Oracle9i,10g,11g,12c的数据库数据文件(datafile)中抽取还原数据表上的数据,而不需要通过ORACLE数据库实例上执行SQL来拯救数据。ParnassusDataRecovery Manager是一款基于JAVA开发的绿色软件,无需安装,下载解压后便可直接使用。

恢复场景1 误Truncate表的常规恢复

D公司的业务维护人员由于误将产品数据库当做测试环境库导致错误地TRUNCATE了一张表上的所有数据,DBA尝试恢复但是发觉最近的备份不可用,导致无法从备份中恢复出该数据表上的记录。 此时DBA决定采用PRM来恢复已经被TRUNCATE掉的数据。

由于该环境中 所有数据库文件均是可用且健康的,用户仅需要 字典模式下加载SYSTEM表空间的数据文件以及被TRUNCATED表的数据文件即可,例如:

create table ParnassusData.torderdetail_his1 tablespace users as
select * from parnassusdata.torderdetail_his;

SQL> desc ParnassusData.TORDERDETAIL_HIS

Name Null? Type

----------------------- -------- --------------

SEQ_ID NOT NULL NUMBER(10)

SI_STATUS NUMBER(38)

D_CREATEDATE CHAR(20)

D_UPDATEDATE CHAR(20)

B_ISDELETE CHAR(1)

N_SHOPID NUMBER(10)

N_ORDERID NUMBER(10)

C_ORDERCODE CHAR(20)

N_MEMBERID NUMBER(10)

N_SKUID NUMBER(10)

C_PROMOTION NVARCHAR2(5)

N_AMOUNT NUMBER(7,2)

N_UNITPRICE NUMBER(7,2)

N_UNITSELLINGPRICE NUMBER(7,2)

N_QTY NUMBER(7,2)

N_QTYFREE NUMBER(7,2)

N_POINTSGET NUMBER(7,2)

N_OPERATOR NUMBER(10)

C_TIMESTAMP VARCHAR2(20)

H_SEQID NUMBER(10)

N_RETQTY NUMBER(7,2)

N_QTYPOS NUMBER(7,2)

select count(*) from ParnassusData.TORDERDETAIL_HIS;

COUNT(*)
----------
984359

select bytes/1024/1024 from dba_segments where segment_name='TORDERDETAIL_HIS' and owner='PARNASSUSDATA';

BYTES/1024/1024
---------------
189.71875

SQL> truncate table ParnassusData.TORDERDETAIL_HIS;

Table truncated.

SQL> select count(*) from ParnassusData.TORDERDETAIL_HIS;

COUNT(*)
----------
0

启动PRM ,并选择 Tools => Recovery Wizard

点击Next

在此TRUNCATE场景中并未采用ASM存储,所以仅需要选择 《Dictionary Mode》字典模式即可:

网友(2):

oracle数据库恢复,主要包括
(1)系统崩溃只剩下数据文件的情况下的恢复,甚至没有system表空间而只有数据表空间的情况下的恢复.只要提供数据文件就可恢复.
(2) undo system 表空间损坏数据恢复 .
(3) 非归档或者归档模式下误 delete 数据的恢复、误删除表空间的恢复、 drop truncate 表的恢复 .
(4) 数据库中有大量CLOB BLOB对象数据恢复等情况以及各种ora-错误的修复.
(5) DMP文件损坏导致文件不能导入数据库的数据恢复
(6) oracle数据库中数据文件出现坏块情况下的恢复.
(7) oracle数据库无数据文件但有日志的情况下的恢复.
(8) UNIX、WINDOWS下ORACLE数据文件被误删除情况下的数据库恢复.
(9) Oracle10G、Oracle11G 的ASM损坏的数据库恢复.
(10) Oracle10G、Oracle11G BIFGILE TABLESPACE大文件表空间损坏数据恢复
(11) Oracle9i、Oracle10G、Oracle11G压缩表 压缩表空间损坏数据恢复
(12)Oracle10G Oracle11G Expdp导出 Impdp导入DMP文件错误数据恢复
恢复成功率高达90%以上,在数据恢复领域处于国内领先的地位。具体案例见广州拓飞官方网站

网友(3):

重新装一个呗,难道没有备份?没有备份意味着数据不重要,正好重装练手

网友(4):

这个没有办法

只能取决于你是否备份了。

有备份就能恢复,

否则没戏。

网友(5):

如果时间不久可以用闪回查询
select * from a as of timestamp (sysdate - 0.1)