oracle数据库误删除数据恢复(oracle数据库数据删除后如何恢复)

本文目录
- oracle数据库数据删除后如何恢复
- oracle 如何恢复误删的表记录数据
- oracle误删数据恢复方法小结
- oracle的一个数据表被删除,如何恢复数据,以及查询是谁进行了操作
- oracle怎样恢复删除的数据文件
- 误删除了delete oracle中数据表记录,没备份要怎么恢复
- Oracle数据库软件删除后数据有办法恢复么
oracle数据库数据删除后如何恢复
删除表后,可以采用如下操作:
在 user_recyclebin中找到最近操作过的表名称,然后用闪回(只能用于10G及以厅罩上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个扮世闹表返此中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小时前的),减去的时间可以自己定。如楼上F_253那位老兄的写法就不错,能自由定制时间
oracle 如何恢复误删的表记录数据
Oracle DBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRM For Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated/drop掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性
oracle误删数据恢复方法小结
如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,弯帆他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善。Or(www.jb51.net)acle
9i中提供了一项新的技术手段--闪回查询,用户使用闪回查询可以及时取得误操作前的数据,并可以针对错误进行相应的恢复措施,而这一切都无需DBA干预
因为一时手贱,生产上的数据被我给delete掉了。
用的是delete语句,然后很迅速的还给commit了
下面这两个语句:
ALTER
TABLE
tablename
ENABLE
row
movement
;
flashback
table
tablename
to
timestamp
to_timestamp(’2012-09-13
13:00:00’,’yyyy-mm-dd
hh34:mi:ss’);
记得大概是两点半左右运行的delete---commit;
具体执行流程我们可从以下几个示例图中体会;
1.原表记录
$
sqlplus
eygle/eygle
SQL*Plus:
Release
10.1.0.2.0
-
Production
on
Wed
Mar
30
08:52:04
2005
Copyright
(c)
1982,
2004,
Oracle.
All
rights
reserved.
Connected
to:
Oracle
Database
10g
Enterprise
Edition
Release
10.1.0.2.0
-
64bit
Production
With
the
Partitioning,
OLAP
and
Data
Mining
options
SQL》select
count(*)
from
t1;
COUNT(*)
----------
9318
2.误删除所有记录
并且提交更改。
SQL》delete
from
t1;
9318
rows
deleted.
SQL》commit;
Commit
complete.
SQL》select
count(*)
from
t1;
COUNT(*)
----------
0
3.获得当前SCN
如果能够确切知道删除之前SCN最好,如果不知道,可以进行闪回查询尝试.
SQL》select
dbms_flashback.get_system_change_number
from
dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
10671006
SQL》select
count(*)
from
t1
as
of
scn
10671000;
COUNT(*)
----------
0
SQL》select
count(*)
from
t1
as
of
scn
10670000;
COUNT(*)
----------
9318
我们看到在SCN=10670000时,数据都在。
4.恢复数据.
SQL》insert
into
t1
select
*
from
t1
as
of
scn
10670000;
9318
rows
created.
SQL》commit;
Commit
complete.
SQL》select
count(*)
from
t1;
COUNT(*)
----------
9318
其它网友用的教程
进行数据库操作,delete后面一定要加where”。今天无意中在网上看到了关于oracle误删除数据恢复的一条信息,发现的确很好使,下面就我的测试向大家汇报下。
1.
select
*
from
t_viradsl2
t
//查询t_viradsl2中所有的数据,可以看到三条数据
2.
delete
t_viradsl2
//删除t_viradsl2中所有的数据,三条数据消失
3.
select
*
from
t_viradsl2
t
//无数如闹穗据渣卜。
4.
insert
into
t_viradsl2
select
*
from
t_viradsl2
as
of
timestamp
to_Date(’2011-01-19
15:28:00’,
’yyyy-mm-dd
hh34:mi:ss’)
//已将误删除数据插入表中
5.
select
*
from
t_viradsl2
t
//又会看到三条数据。
我们来分析下第四步,注意这句:
select
*
from
t_viradsl2
as
of
timestamp
to_Date(’2011-01-19
15:28:00’,
’yyyy-mm-dd
hh34:mi:ss’),什么意思呢,
找到t_viradsl2在2011-01-19
15:28:00这个时间点的所有数据,既然找到了,你想怎么操作都可以了。
在此分享给大家
oracle的一个数据表被删除,如何恢复数据,以及查询是谁进行了操作
基于oracle数据文件和控制文件的恢复,只要数据文件还在 就可以利用PRM FOR Oracle工具从中抽取出有用数据。
PRM可以再无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter database open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性。
而且PRM无需学任何新命令。
对于误操作DROP TABLE的数据恢复
D公司的应用开发人员在ASM存储环境下,在没有任何备份的情况下DROP了系统中一张核心应用表,此时第一时间采用PRM可以恢复该DROP掉数据表的绝大部分数据。10g以后提供了 recyclebin回收站特性,可以首先通过查询DBA_RECYCLEBINS视图来确定被DROP掉的表是否在回收站中,如果在则优先通过回收站flashback to before drop,如果回收站中也没有了,则第一时间使用PRM恢复。
恢复简要流程如下:
首先将被DROP掉的数据表所在的表空间OFFLINE
通过查询数据字典或者LOGMINER找到被DROP掉数据表的DATA_OBJECT_ID,如果此步骤中得不到这个DATA_OBJECT_ID,则需要在NON-DICT非字典模式下
启动PRM,进入NON-DICT非字典模式,并加入被DROP掉数据表所在的表空间的所有数据文件,之后SCAN DATABASE+SCAN TABLE from Extent MAP
通过DATA_OBJECT_ID定位到展开对象树形图中对应的数据表,采用DataBridge模式插回到源数据库中
oracle怎样恢复删除的数据文件
oracle数据库恢复,主要包括(1)系统崩溃只剩下数据文件的情况下的恢复,甚至没有system表空间而只有数据表空间的情况下的恢复.只要提供数据文件就可恢复.(2)undosystem表空间损坏数据恢复.(3)非归档或者归档模式下误delete数据的恢复、误删除表空间的恢复、droptruncate表的恢复.(4)数据库中有大量CLOBBLOB对象数据恢复等情况以及各种ora-错误的修复.(5)DMP文件损坏导致文件不能导入数据库的数据恢复(6)oracle数据库中数据文件出现坏块情况下的恢复.(7)oracle数据库无数据文件但有日志的情况下的恢复.(8)UNIX、WINDOWS下ORACLE数据文件被误删除情况下的数据库恢复.(9)Oracle10G、Oracle11G的ASM损坏的数据库恢复.(10)Oracle10G、Oracle11GBIFGILETABLESPACE大文件表空间损坏数据恢复(11)Oracle9i、Oracle10G、Oracle11G压缩表压缩表空间损坏数据恢复(12)Oracle10GOracle11GExpdp导出Impdp导入DMP文件错误数据恢复恢复成功率高达90%以上,在数据恢复领域处于国内领先的地位。具体案例见广州拓飞官方网站
误删除了delete oracle中数据表记录,没备份要怎么恢复
flashback query闪回查询
尝试使用Oracle 10g 以后的flashback Query特性 闪回查询可以查询若干时间之前的数据
2. logmnr 日志挖掘
使用logminer 日志挖掘 把delete的redo挖出来看有没有 对应的undo回滚SQL可用
3. 使用ORACLE PRM-DUL 工具
Oracle PRM-DUL 工具可以恢复 数据库中表上 被删除的记录,大致流程如下:
对于没有有效物理或逻辑备份的场景,当Oracle中发生delete误操作时 一般会优先考虑使用flashback闪回或logminer日志挖掘等技术来恢复Oracle表中的数据行记录,但很多时候flashback或logminer都无法力挽狂澜。
对于delete操作而言,其对于oracle底层数据块block中的row piece记录一般仅仅是修改其row flag标记为已删除标记,容许后续INSERT的记录覆盖这些被标记为delete的数据,也容许破坏这些delete掉的数据的结构。 换斗做句话说如果delete后没有对表做什么操作的话,直接读取block中的这些被标记为deleted的记录还是有可能读取到完整数据的。
总而言之,是否能恢复这部分delete掉的数据,完全取决于磁盘上oracle block中这部分删除的数据行是否有被最终清理掉。
在被清理掉之前ORACLE PRM-DUL工具都可以尝试把这部分数据恢复出来, 具体步骤与普通的数据字典模式差别很小。
启动PRM-DUL 点击恢复向导 字典模式
加入所有oracle数据文件,不搏销燃需要加入临时文件TEMPFILE、UNDO数据文件、控制文件、日志文件
点击load 按钮,PRM会自动加载数据字典 即bootstrap动作
至此 PRM左侧将出现 树形的对象树,选择你需要恢复的用户下的对应数据表, 右击对象后选择 unload deleted data
PRM-DUL 完成对已删除数据的恢复操作后会将 数据写出到 上图中 File path的位置,基虚 示例的数据恢复情况如下:
Oracle数据库软件删除后数据有办法恢复么
1、如果你没有删除数据库文件:
我的是放在这个文件夹下面,看看有没有被删祥逗除,如果没有被删除的话,看看这么文件夹里面的文件夹叫什么名字,并把里面的那个文件夹备份一份。
2、重新安装数据库,再重新建一个下面文件夹名字相同的数据库实例。
3、安装完毕后,停止oracle相关的所有服务,把你备份的那个文件夹覆盖到新的下面,重新启动数据库服则派务即可完成恢复。
补充:如果数据库文件被你删除了,用EasyRecovery
Professional
恢复一下再按照上面的步骤恢复一下即可。
---
以上,希望对你有所帮助。

更多文章:
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30
方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)?植物大战僵尸英文版图鉴
2026年9月22日 00:10
html document对象(载入浏览器的html文档都会成为document的对象吗)
2026年9月21日 16:00
安装包怎样下载mysql(如何在官网上下载可安装版的MySQL数据库)
2026年9月21日 15:30






