0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Oracle数据恢复—Oracle删除数据不用怕!这些数据恢复方法了解一下

Frombyte 来源:Frombyte 作者:Frombyte 2024-07-19 16:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程师下面简单介绍几个误删除Oracle数据库数据的恢复方法。

Oracle数据库误删除数据的恢复方法一:
利用oracle提供的闪回方法恢复数据,该方法适用于delete删除(一条记录)的情况:
首先需要知道是什么时间进行的删除操作,如果不能确定具体时间点则选择尽量准确的删除数据前的时间。然后利用“select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss')”语句可以找回删除的数据。
利用“insert into 表名 (select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss'))”语句就可以将恢复出来的数据插入原表中(注意要保证主键不重复)。
另一种方法可以通过闪回整个表来恢复误删除的数据,但仅适用于表结构没有发生改变且用户有flash any table权限的情况下,语句如下:
alter table 表名 enable row movement
flashback table 表名 to timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss')

Oracle数据库误删除数据的恢复方法二:
oracle数据库在删除表时会将删除信息存放于某虚拟“回收站”中而非直接清空,再此种状态下数据库标记该表的数据库为“可以复写”,所以在该块未被重新使用前依然可以恢复数据。该方法适用于drop删除。
首先需要通过查询user_table视图找到被删除的表:
select table_name,dropped from user_tables
select object_name,original_name,type,droptime from user_recyclebin
注意此时的表名称已经被重新命名,table_name和object_name就是回收站中的存放表名。如果知道原表的名称可以通过“flashback table 原表名 to before drop”语句恢复数据,如果不知道原表的名称可以直接按照回收站中的表名称将数据恢复,然后通过
“flashback table "回收站中的表名(如:Bin$DSbdfd4rdfdfdfegdfsf==$0)" to before drop rename to 新表名”语句就可以重新命名。

Oracle数据库误删除数据的恢复方法三:
利用oracle数据库的闪回功能可以将数据库恢复到过去某一状态,语句如下:
SQL>alter database flashback on;
SQL>flashback database to scn SCNNO;
SQL>flashback database to timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss');
Oracle数据库虽然提供了恢复数据的保障机制,但是也占用了大量空间,使用drop删除一个表或者delete删除数据后空间并不能自动回收。如果确实需要恢复删除的数据又不想空间被浪费又该如何操作呢?可以采用以下方法:
1、采用truncate方式进行截断。
2、在drop时加上purge选项:drop table 表名 purge,该选项也可以通过删除recyclebin区域来永久性删除表。
删除表:
SQL>drop table emp cascade constraints;
SQL>purge table emp;
删除当前用户的回收站:
SQL>purge recyclebin;
删除全体用户在回收站的数据:
SQL>purge dba_recyclebin

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据恢复
    +关注

    关注

    10

    文章

    689

    浏览量

    18805
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67742
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Netapp数据恢复—误删NetApp卷数据:从崩溃到恢复的实战复盘

    NetApp存储数据恢复环境: NetApp某型号存储存储上有96块SAS接口硬盘,硬盘扇区大小是520字节。所有lun映射到小型机使用,存放Oracle数据库文件,采用ASM裸设备
    的头像 发表于 11-25 14:33 69次阅读
    Netapp<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—误删NetApp卷<b class='flag-5'>数据</b>:从崩溃到<b class='flag-5'>恢复</b>的实战复盘

    Netapp数据恢复—Netapp存储数据恢复揭秘

    某公司台服务器中共有72块SAS硬盘。 工作人员误操作删除了十几个lun。需要恢复服务器中的数据
    的头像 发表于 10-28 15:26 210次阅读
    Netapp<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—Netapp存储<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>揭秘

    Mysql数据恢复—Windows ServerMySQL(InnoDB)全表误删数据恢复案例

    本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据
    的头像 发表于 09-23 15:56 499次阅读
    Mysql<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—Windows Server<b class='flag-5'>下</b>MySQL(InnoDB)全表误删<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    Oracle数据库故障: 某公司台服务器上部署Oracle数据库。服务器意外断电导致数据库报
    的头像 发表于 07-24 11:12 440次阅读
    <b class='flag-5'>数据</b>库<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—服务器异常断电导致<b class='flag-5'>Oracle</b><b class='flag-5'>数据</b>库故障的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    Oracle数据恢复—格式化分区导致Oracle数据库报错的数据恢复案例

    台服务器上个分区存放Oracle数据数据。由于管理员误操作不小心删除了该分区,
    的头像 发表于 07-22 14:06 273次阅读
    <b class='flag-5'>Oracle</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—格式化分区导致<b class='flag-5'>Oracle</b><b class='flag-5'>数据</b>库报错的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    oracle数据恢复oracle数据库误执行错误truncate命令如何恢复数据

    oracle数据库误执行truncate命令导致数据丢失是种常见情况。通常情况oracle
    的头像 发表于 06-05 16:01 611次阅读
    <b class='flag-5'>oracle</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—<b class='flag-5'>oracle</b><b class='flag-5'>数据</b>库误执行错误truncate命令如何<b class='flag-5'>恢复数据</b>?

    数据数据恢复——MySQL数据库误删除表记录的数据恢复案例

    误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据删除删除后未对该表进行任何操作。
    的头像 发表于 02-22 09:44 1209次阅读
    <b class='flag-5'>数据</b>库<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>——MySQL<b class='flag-5'>数据</b>库误<b class='flag-5'>删除</b>表记录的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    Oracle推出创新数据库服务

    近日,Oracle公司再次引领数据库技术创新,限量推出了Globally Distributed Exadata Database on Exascale Infrastructure服务。该服
    的头像 发表于 02-10 14:45 794次阅读

    适用于Oracle的SSIS数据流组件:提供快速导入及导出功能

    使用SSIS 数据流组件,通过与关键数据库和云服务的 Oracle 数据集成来改进您的 ETL 流程,这些组件提供快捷和可靠的
    的头像 发表于 01-15 10:51 1453次阅读
    适用于<b class='flag-5'>Oracle</b>的SSIS<b class='flag-5'>数据</b>流组件:提供快速导入及导出功能

    从Delphi、C++ Builder和Lazarus连接到Oracle数据

    从 Delphi、C++ Builder 和 Lazarus 连接到 Oracle 数据Oracle 数据访问组件 (ODAC) 是
    的头像 发表于 01-15 10:01 1352次阅读

    适用于Oracle的Devart Excel插件:轻松管理数据

    工作簿中的数据,编辑这些数据并将其保存回 Oracle。它使您能够像使用 Excel 工作表样处理
    的头像 发表于 01-14 11:11 946次阅读
    适用于<b class='flag-5'>Oracle</b>的Devart Excel插件:轻松管理<b class='flag-5'>数据</b>

    适用于Oracle的Python连接器:可访问托管以及非托管的数据

    适用于 Oracle 的 Python 连接器 适用于 Oracle 的 Python 连接器是种可靠的连接解决方案,用于从 Python 应用程序访问 Oracle
    的头像 发表于 01-14 10:30 746次阅读

    服务器数据恢复—raid5阵列上层win系统+oracle数据数据恢复案例

    台服务器上的8块硬盘组建了组raid5磁盘阵列。上层安装windows server操作系统,部署了oracle数据库。 raid5阵列中有2块硬盘的硬盘指示灯显示异常报警。服务
    的头像 发表于 01-10 14:40 554次阅读

    RAID 5 数据恢复方法

    RAID 5数据恢复个复杂且精细的过程,涉及多个步骤和专业知识。以下是套RAID 5数据恢复
    的头像 发表于 12-27 17:04 2327次阅读

    数据数据恢复ORACLE常见故障的数据恢复可行性分析

    Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、
    的头像 发表于 12-10 11:35 675次阅读