暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Oracle Truncate 表恢复操作指导

原创 IT邦德 2021-08-27
1610
作者:IT邦德

中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g  OCP/OCM、Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007

微信:jem_db
QQ交流群:168797397
表的回復恢复
Fy_Recover_Data是利用Oracle表扫描机制、数据嫁接机制恢复TRUNCATE或者损坏数据的工具包
由纯PLSQL编写

1.环境(10G RAC)
image.png

2.解压FY_Recover_Data.pck包

[oracle@rac1 ~]$ unzip FY_Recover_Data.zip
解压后得到一个文件FY_Recover_Data.pck

image.png

**3.使用sys用户执行解压后的脚本
–我这里解压后的文件在/home/oracle/

SQL> @/home/oracle/FY_Recover_Data.pck
这个脚本实际是在sys用户下创建了一个名为FY_Recover_Data的package
select a.object_name,a.object_type,a.created From all_objects a
where owner='SYS'
and object_type = 'PACKAGE'
and object_name='FY_RECOVER_DATA'

image.png

4.Truncate 表(误操作)
image.png

5.执行恢复(sys用户)

exec fy_recover_data.recover_truncated_table('SCOTT','T');
注:执行上的SQL产生2个表空间FY_REC_DATA、FY_RST_DATA

image.png

6.使用sys用户把恢复的数据从scott.test$$中插回scott.test表

注:scott.test$$中是scott.test表truncate之前的数据

image.png

可以看到被truncate的数据已经恢复。

7.使用sys用户删除恢复时产生的2个表空间及数据文件

SQL> drop tablespace fy_rec_data including contents and datafiles;
Tablespace dropped.
SQL> drop tablespace fy_rst_data including contents and datafiles;
Tablespace dropped.

image.png

本文如有错误或不完善的地方请大家多多指正,请关注公众号:IT邦德
留言微信:jem_db 或 QQ:2243967774 皆可,您的批评指正是我写作的最大动力!
大家多多点赞,转发,谢谢

最后修改时间:2021-08-27 23:24:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论