iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle使用fy_recover_data恢复truncate删除的数据
  • 343
分享到

Oracle使用fy_recover_data恢复truncate删除的数据

Oracle恢复truncate删除数据Oraclefy_recover_data 2022-07-20 16:07:10 343人浏览 安东尼
摘要

目录前言1.创建测试表2.truncate table pak_tab3 编译fy_recover_data包4.执行fy_recover_data包5.把数据插回原表6.校验数据总结前言 TRUNCATE不会逐个清除用

前言

TRUNCATE不会逐个清除用户数据块上的数据,而仅仅重置数据字典和元数据块上的元数据(如存储段头和扩展段图)。也就是说,此时,其基本数据并未被破坏,而是被系统回收、等待被重新分配。

如果我们已经有一套元数据及数据块,然后将被TRUNCATE的用户数据块的内容取代其用户数据块的内容,是否可以“骗”过oracle,让它读出这些数据呢? 回顾一下表扫描的过程,这个方法应该是可行的。我们只要想办法构造出一个结构相同、且具有完整元数据信息和格式化了的用户数据块的傀儡表对象,然后将被TRUNCATE的用户数据块找出,再将其数据内容部分嫁接到傀儡对象的用户数据块,使Oracle以外这是傀儡对象的数据,就能让Oracle扫描并读出数据内容。

1.创建测试表

sql> create table pak_tab as select * from dba_objects;
Table created.
SQL> select count(*) from pak_tab;
COUNT(*)
----------
86262

2.truncate table pak_tab

SQL> truncate table pak_tab;
Table truncated.
SQL> select count(*) from pak_tab;
COUNT(*)
----------
0
SQL> select owner from sys.pak_tab where rownum<=1;
OWNER
------------------------------
SYS

3 编译fy_recover_data包

SQL> @fy_recover_data.pck
Package created.
Package body created.

4.执行fy_recover_data包

SQL> exec fy_recover_data.recover_truncated_table('sys','pak_tab');
PL/SQL procedure successfully completed.
SQL> SELECT COUNT(*) FROM pak_tab;
COUNT(*)
----------
0
SQL> SELECT COUNT(*) FROM pak_tab$$;

COUNT(*)
----------
86262

5.把数据插回原表

SQL> alter table pak_tab nologging;
Table altered.
SQL> insert  into pak_tab select * from pak_tab$$;
86262 rows created.
SQL> commit;
Commit complete.
SQL> alter table pak_tab logging;
Table altered.

6.校验数据

SQL> select count(*) from pak_tab;

COUNT(*)
----------
86262

总结

1,删除因为恢复表自动创建的两个表空间

  • drop tablespace fy_rec_data including contents and datafiles;
  • drop tablespace fy_rst_data including contents and datafiles;

2,truncate以后,要保证没有新数据灌入

3,存储该表的数据文件不能覆盖。否则无法完成恢复。

4,紧急时刻可以将表空间设为只读

5,备份的关键性,合理的备份策略是DBA最后的救命稻草,请重视备份!对数据怀有敬畏之心!!

到此这篇关于Oracle使用fy_recover_data恢复truncate删除的数据的文章就介绍到这了,更多相关Oracle 恢复truncate删除数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle使用fy_recover_data恢复truncate删除的数据

本文链接: https://www.lsjlt.com/news/33410.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle删除的数据如何恢复
    如果使用DELETE语句删除了数据,Oracle数据库是没有内置的恢复机制来撤销删除操作的。因此,一旦数据被删除,恢复数据的唯一方法...
    99+
    2023-08-31
    oracle
  • Oracle恢复删除数据的方法
    Oracle数据库提供了以下几种方法来恢复删除的数据:1. 通过闪回技术(Flashback Technology):Oracle提...
    99+
    2023-09-01
    Oracle
  • oracle怎么恢复删除的数据
    要恢复删除的数据,可以通过以下步骤使用Oracle的备份和恢复功能: 检查备份:首先要确认是否有可用的数据库备份,备份通常会包含...
    99+
    2024-04-22
    oracle
  • oracle删除数据如何恢复
    oracle 中已删除的数据可通过以下方式恢复:撤销操作,适用于尚未提交的事务;闪回查询,允许查看指定时间点的数据状态;闪回表,恢复整个表至指定时间点;数据泵导入,需要之前的导出备份;手...
    99+
    2024-04-19
    oracle 数据丢失
  • oracle delete删除的数据怎么恢复
    通过以下方法可恢复 oracle 中被 delete 删除的数据:从备份恢复:前提是有最新的备份;使用撤销表空间:撤销表空间启用了回滚段保留;使用闪回查询:查看删除前的数据并导出到新表;...
    99+
    2024-04-18
    oracle 数据丢失
  • oracle怎么把删除的数据恢复
    oracle中恢复已删除数据的步骤:查看回收站:检查回收站中是否包含已删除的数据。回滚操作:仅适用于事务数据库,可撤消删除操作。恢复表区:在非事务模式或回收站未启用时使用,但仅适用于数据...
    99+
    2024-04-18
    oracle
  • oracle如何恢复刚删除的数据
    在Oracle数据库中,如果误删了数据,可以通过以下几种方法来恢复刚删除的数据: 使用回滚操作:如果误删除的数据在一个事务中被删除...
    99+
    2024-04-02
  • oracle数据库怎么恢复删除的数据
    启用闪回查询,然后使用恢复点目标 (rpo) 或闪回区域查询表恢复已删除的数据:1. 启用闪回查询以指定数据库保留已提交事务时所创建数据的时长。2. 使用 rpo 根据特定时间点恢复数据...
    99+
    2024-04-18
    oracle
  • oracle删除表数据怎么恢复
    oracle 中恢复已删除的表数据涉及以下步骤:检查回收站,如果找到已删除的表,执行步骤 2;运行查询还原表,可指定时间戳恢复到特定时间点;还原后可从回收站中删除表(可选);检查数据是否...
    99+
    2024-05-11
    oracle
  • oracle数据误删除怎么恢复
    oracle 提供了多种数据误删恢复方法:从回收站中恢复(30 天内可用);使用闪回查询(特定时间点恢复);从备份中恢复(备份需及时);使用第三方工具(更高级)。预防措施:定期备份、使用...
    99+
    2024-04-18
    oracle 数据丢失
  • oracle数据误删除如何恢复
    要恢复已经误删除的Oracle数据,你可以尝试以下几种方法: 使用备份恢复:如果你有最近的备份文件,可以使用Oracle的恢复工...
    99+
    2024-04-09
    oracle
  • oracle删除数据后怎么恢复
    oracle 数据恢复:删除后如何恢复?如果在事务过程中删除数据,可以通过回滚段恢复数据。如果启用了闪回区域,可以通过闪回查询恢复数据。如果定期备份数据库,可以通过备份恢复数据。 Or...
    99+
    2024-04-18
    oracle 数据丢失
  • oracle如何恢复误删除数据
    在 oracle 中恢复误删除的数据的方法包括:检查回收站:如果数据在回收站中,右键单击并恢复。使用闪回查询:执行特定的查询指定误删除数据的时间戳。使用数据泵导入:如果在误删除之前有备份...
    99+
    2024-04-19
    oracle
  • oracle数据库delete删除的数据怎么恢复
    oracle数据库中删除的数据可以通过以下方法恢复:事务回滚:可还原事务内已删除数据。闪回查询:访问特定时间点已删除的数据。闪回表空间:创建数据库副本,包含已删除数据。日志文件:使用专业...
    99+
    2024-04-18
    oracle
  • oracle数据库误删除数据怎么恢复
    误删数据恢复步骤:检查回收站中是否有误删数据。使用闪回查询恢复误删数据(如时间戳在误删后不久)。从备份中恢复数据(如果回收站和闪回查询无法恢复)。 Oracle 数据库误删除数据恢复 ...
    99+
    2024-04-18
    oracle
  • oracle数据库数据删除了怎么恢复
    在 oracle 数据库中恢复已删除的数据有四种方法:1) 撤消最近的提交或回滚;2) 从备份还原;3) 使用闪回查询;4) 使用日志文件分析。恢复数据之前建议备份数据库,具体方法取决于...
    99+
    2024-04-18
    oracle 数据丢失
  • Oracle中怎么恢复被误删除的数据
    在Oracle中,如果数据被误删除,可以使用以下方法来恢复数据: 回滚操作:在数据被删除后,立即使用ROLLBACK命令回滚事务...
    99+
    2024-04-19
    Oracle
  • oracle怎么把删除的数据恢复回来
    oracle 中已删除的数据可从回收站恢复:1. 确认数据仍在回收站中;2. 使用 flashback table 语句恢复数据;3. 提交更改使恢复永久生效。注意:只有事务中已删除的数...
    99+
    2024-04-18
    oracle 数据丢失
  • oracle删除了一条数据怎么恢复
    oracle 中已删除数据的恢复方法包括:撤销未提交事务;使用闪回功能回滚数据库并闪回表;从备份恢复,需要还原备份并应用日志;使用 rman 实用程序恢复数据库。 Oracle 数据恢...
    99+
    2024-04-18
    oracle 数据丢失
  • Oracle误删除表数据后如何恢复
    Oracle误删除表数据后如何恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  Oracle误删除表数据后怎么快速恢复  一、undo...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作