这篇文章主要介绍“Oracle下Truncate表的恢复”,在日常操作中,相信很多人在Oracle下Truncate表的恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle下Truncate表的恢复”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Oracle Truncate表恢复(ODU)
从3.0.7版本开始,恢复Truncate表更方便,只需要执行下面的步骤:
· (1)OFFLINE表所在的表空间
· (2)生成数据字典:unload dict
· (3)扫描数据:scan extent
· (4)恢复表:unload table username.tablename object auto
create table tt1 as select * from dba_objects;
create table tt2 as select * from tt1;
select * from dba_objects where object_name='TT1'; ---OBJECT_ID 87295 ---DATA_OBJECT_ID 87295
---object_id: Dictionary object number of the object.
---Data_object_id: Dictionary object number of the segment that contains the object.
truncate table tt1;
select *from tt1;
一:OFFLINE表所在的表空间
select * from dba_objects where object_name='TT1'; ---OBJECT_ID 87290 ---DATA_OBJECT_ID 87297
select tablespace_name from user_tables where table_name='T1'; ---USERS
alter tablespace USERS offline;
alter system checkpoint;
二:ODU 版本3.0.9
三:生成数据字典
四:扫描数据
五:恢复表
自动生成以下三个文件
六:通过sqlldr加载数据到数据库
七:验证数据
select count(*) from tt1; ---86155
select * from tt1;
到此,关于“Oracle下Truncate表的恢复”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!