博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
truncate表恢复
阅读量:4677 次
发布时间:2019-06-09

本文共 2979 字,大约阅读时间需要 9 分钟。

原理

Truncate 不会逐个清除用户数据块上的数据,而仅仅重置数据字典和元数据块上的元数据(如存储断头和扩展段图)。

也就是说,此时,基本数据表并未破坏,而是被系统回收,等待被重新分配—因此,要恢复被truncate的数据,需要及时备份所在的数据文件。


实验工具

注:本次实验使用Fy_Recover_Data恢复被TRUNCATE的数据


实验步骤

1. 下载并解压Fy_Recover_Data

[oracle@hawker ~]$ lltotal 380-rw-r--r--. 1 oracle oinstall  79775 Mar  7  2014 FY_Recover_Data.pck-rw-r--r--. 1 oracle oinstall  12888 May  4 17:10 FY_Recover_Data.zip-rw-r-----. 1 oracle oinstall 289692 May  4 11:46 install2018-05-04_11-38-06.log

2.编译Fy_Recover_Data

sys@DBHAWK>@FY_Recover_Data.pckEnter value for files: old  30:   --   1. Temp Restore and Recover tablespace & files             ---new  30:   --   1. Temp Restore and Recover tablespace              ---Package created.Package body created.

3.创造实验环境

scott@DBHAWK>select * from hawk_dept;    DEPTNO DNAME      LOC---------- -------------- -------------    10 ACCOUNTING     NEW YORK    20 RESEARCH       DALLAS    30 SALES          CHICAGO    40 OPERATIONS     BOSTONscott@DBHAWK>select count(1) from hawk_dept;  COUNT(1)----------     4scott@DBHAWK>truncate table hawk_dept;Table truncated.scott@DBHAWK>select * from hawk_dept;no rows selectedscott@DBHAWK>select count(1) from hawk_dept;  COUNT(1)----------     0

4.使用Fy_Recover_Data恢复数据

sys@DBHAWK>exec fy_recover_data.recover_truncated_table('SCOTT','hawk_dept');00:08:03: Use existing Directory Name: FY_DATA_DIR00:08:03: Recover Tablespace: FY_REC_DATA; Data File: FY_REC_DATA.DAT00:08:03: Restore Tablespace: FY_RST_DATA; Data File: FY_RST_DATA.DAT00:08:04: Recover Table: SCOTT.HAWK_DEPT$00:08:04: Restore Table: SCOTT.HAWK_DEPT$$00:08:13: Copy file of Recover Tablespace: FY_REC_DATA_COPY.DAT00:08:13: begin to recover table SCOTT.HAWK_DEPT00:08:13: Use existing Directory Name: TMP_HF_DIR00:08:13: Recovering data in datafile /u01/app/oracle/oradata/dbhawk/users01.dbf00:08:13: Use existing Directory Name: TMP_HF_DIR00:08:14: 1 truncated data blocks found.00:08:14: 4 records recovered in backup table SCOTT.HAWK_DEPT$$00:08:14: Total: 1 truncated data blocks found.00:08:14: Total: 4 records recovered in backup table SCOTT.HAWK_DEPT$$00:08:14: Recovery completed.00:08:14: Data has been recovered to SCOTT.HAWK_DEPT$$PL/SQL procedure successfully completed.scott@DBHAWK>select * from HAWK_DEPT$$;    DEPTNO DNAME      LOC---------- -------------- -------------    10 ACCOUNTING     NEW YORK    20 RESEARCH       DALLAS    30 SALES          CHICAGO    40 OPERATIONS     BOSTONscott@DBHAWK>insert into hawk_dept select * from HAWK_DEPT$$;4 rows created.scott@DBHAWK>select * from hawk_dept;    DEPTNO DNAME      LOC---------- -------------- -------------    10 ACCOUNTING     NEW YORK    20 RESEARCH       DALLAS    30 SALES          CHICAGO    40 OPERATIONS     BOSTON

5.清理恢复程序生成的表空间

sys@DBHAWK>drop tablespace FY_REC_DATA including contents and datafiles;Tablespace dropped.sys@DBHAWK>drop tablespace FY_RST_DATA including contents and datafiles;Tablespace dropped.

注:生产环境中谨慎操作,如有必要请联系专业人士处理。

转载于:https://www.cnblogs.com/hawk20110625/p/9309470.html

你可能感兴趣的文章
5.侧边栏逻辑
查看>>
评论博客
查看>>
用户代理字符串识别工具源码与slf4j日志使用
查看>>
算法导论第6部分图算法,第22章图的基本算法
查看>>
提示框第三方库之MBProgressHUD
查看>>
C语言 10-字符和字符串常用处理函数
查看>>
C++ 表达式语句 海伦的故事
查看>>
32位汇编学习笔记(1)
查看>>
day_01
查看>>
2013年12月日本語能力試験N3聴解部分
查看>>
uva 1349(拆点+最小费用流)
查看>>
关于SessionFactory的不同实现类分别通过getCurrentSession()方法 和 openSession() 方法获取的Session对象在保存对象时的一些区别...
查看>>
Web开发细节搜集
查看>>
织梦kindeditor图片上传增加图片说明alt属性和title属性
查看>>
HTML fieldset标签
查看>>
Qt 之 饼图
查看>>
算法总结系列之二: 快速排序(QuickSort)
查看>>
会放弃的人生才会更洒脱
查看>>
正则匹配、替换
查看>>
太阳能路灯软件设计
查看>>