我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle数据库truncate table后恢复原来数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle数据库truncate table后恢复原来数据

概述:北京某国企客户 Oracle 11g R2 数据库误truncate table CM_CHECK_ITEM_HIS,表数据丢失,业务查询到该表时报错,此时发现数据库的备份不能用,表数据无法查询。

客户Oracle 11g R2 数据库误truncate table CM_CHECK_ITEM_HIS,表数据丢失,业务查询到该表时报错,此时发现数据库的备份不能用,表数据无法查询。
Truncate数据的机理是,ORACLE会在数据字典和Segment Header中更新表的Data Object ID,而实际数据部分的块则不会做修改。由于数据字典与段头的DATA_OBJECT_ID与后续的数据块中的并不一致,所以ORACLE服务进程在读取全表数据时不会读取到已经被TRUNCATE的记录,但是实际仍未被覆盖的数据。

数据恢复过程

为保护用户数据,本文档构造与客户相同的故障。Scott用户创建表emp1,复制emp表,连续复制多次,总记录数为:7340032条。truncate表emp1,之后没有进行任何操作。查询该表,数据库中该表的记录为0条。
图一:
Oracle数据库truncate table后恢复原来数据
注: Os:win server 2008R2。数据库版本:win_oracle_11.2.0.1_x64;
1 对system表空间文件进行分析,找到truncate表的原始数据所在的位置
图二:
Oracle数据库truncate table后恢复原来数据
Oracle数据库truncate table后恢复原来数据
Oracle数据库truncate table后恢复原来数据
Oracle数据库truncate table后恢复原来数据
2 解析表所在的数据文件数据库,找到truncate的数据
3 将truncate的数据库插入到数据库中

数据恢复结果

通过解析system01.dbf文件,找到truncate的数据所在的位置,找到被删除的数据。解析表所在的数据文件,将truncate的数据插入到数据库中。
在数据库中,查找被truncate,发现数据回来了,直接备份数据。
图三:
Oracle数据库truncate table后恢复原来数据
Exp导出scott用户;
图四:
Oracle数据库truncate table后恢复原来数据

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle数据库truncate table后恢复原来数据

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

下载Word文档

猜你喜欢

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

目录前言1.创建测试表2.truncate table pak_tab3 编译fy_recover_data包4.执行fy_rechttp://www.cppcns.comover_data包5.把数据插回原表6.校验数据总结前言TRUN
2022-07-20

Oracle数据泵备份还原恢复库

select * from dba_directories;--创建数据泵路径create directory dump_dir as "/u01/app/oracle/admin/dump/dump";--授权路径给用户grant read,write on
Oracle数据泵备份还原恢复库
2017-01-23

oracle如何恢复数据库

可以通过三种方法恢复 oracle 数据库:使用 rman 实用程序:连接到目标数据库,执行恢复操作,然后打开数据库。使用 flashback 技术:检查日志,确定时间点,启动 flashback 回滚,然后打开数据库。使用数据恢复 adv
oracle如何恢复数据库
2024-04-19

oracle数据库delete的数据怎么恢复

oracle数据库中已删除的数据可以通过以下步骤恢复:检查回收站:进入回收站查看已删除的数据,如在则恢复。使用flashback query:在数据不在回收站时使用flashback query命令恢复。使用logminer工具:通过解析r
oracle数据库delete的数据怎么恢复
2024-04-18

oracle删除数据后怎么恢复

oracle 数据恢复:删除后如何恢复?如果在事务过程中删除数据,可以通过回滚段恢复数据。如果启用了闪回区域,可以通过闪回查询恢复数据。如果定期备份数据库,可以通过备份恢复数据。Oracle 数据恢复:删除后如何恢复直接回答:删除 Or
oracle删除数据后怎么恢复
2024-04-18

Oracle数据库使用DMP文件恢复数据

要使用DMP文件恢复Oracle数据库中的数据,可以按照以下步骤进行操作:1. 在Oracle数据库服务器上找到DMP文件,并确保数据库版本与DMP文件版本匹配。如果版本不匹配,需要使用相应版本的Oracle数据库工具进行数据导入。2. 登
2023-09-17

oracle数据库数据删除了怎么恢复

在 oracle 数据库中恢复已删除的数据有四种方法:1) 撤消最近的提交或回滚;2) 从备份还原;3) 使用闪回查询;4) 使用日志文件分析。恢复数据之前建议备份数据库,具体方法取决于备份策略和数据库配置,某些方法可能不可用,如果数据已从
oracle数据库数据删除了怎么恢复
2024-04-18

gitlab删库后怎么恢复数据

随着互联网的高速发展,开源项目的代码托管平台也越来越多,GitLab作为其中的佼佼者吸引了众多用户。然而,随着代码提交量的增多,GitLab也不时出现一些问题。尤其是删库事件,一旦发生,对于团队的影响不可估量。本文将重点介绍GitLab删库
2023-10-22

电脑重装系统后如何恢复原来的数据

重装电脑系统后,可以通过以下方法恢复原来的数据:备份数据:在重装系统之前,应该提前备份所有重要的数据文件。可以将文件复制到外部硬盘、USB闪存驱动器或云存储服务中。使用备份工具:如果之前使用备份工具创建了系统映像或备份文件,可以使用该工具来
2023-10-21

oracle数据库误删除数据怎么恢复

误删数据恢复步骤:检查回收站中是否有误删数据。使用闪回查询恢复误删数据(如时间戳在误删后不久)。从备份中恢复数据(如果回收站和闪回查询无法恢复)。Oracle 数据库误删除数据恢复误删数据恢复的步骤Oracle 数据库中误删数据后,恢复
oracle数据库误删除数据怎么恢复
2024-04-18

oracle数据库怎么恢复删除的数据

启用闪回查询,然后使用恢复点目标 (rpo) 或闪回区域查询表恢复已删除的数据:1. 启用闪回查询以指定数据库保留已提交事务时所创建数据的时长。2. 使用 rpo 根据特定时间点恢复数据,或使用闪回区域查询表查询存储已删除数据历史记录的特殊
oracle数据库怎么恢复删除的数据
2024-04-18

编程热搜

目录