码迷,mamicode.com
首页 > 数据库 > 详细

Oracle数据表被drop后的恢复

时间:2014-10-15 12:45:30      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   for   sp   数据   on   ef   bs   

对于被drop的表和索引,都会存放在回收站中(所以对于生产的数据库必须设置好回收站功能)

 

因为本次生成环境在drop掉已有的表后,重新创建了许多的表,所有直接还原的话会提示原有对象存在,表名重复。其中解决方法是:先重命名已经存在的表名,让后还原删除的表,最后进行数据合并

 

重命名已经存在的表

 

spool bak.txt

select ‘alter table ‘||t.original_name||‘ rename to ‘||t.original_name||‘_bak;‘,‘ select count(*) from ‘||t.original_name||‘_bak;‘ from user_recyclebin t;

spool off

 

那么会把修改表名的语句存放在bak.txt中,我们可以稍微调整一下直接运行这个脚本或者是拷贝的sqlplus中执行也可以

 

因为考虑到数据的合并,对于 count*)大于的数据需要进行数据的合并,否则可以不用管它

 

使用还原数据库的命令进行数据还原

spool bak2.txt

select ‘ flashback table  ‘||t.original_name|| ‘ to before drop‘  from user_recyclebin t;

spool off

 

执行这个bak2.txt中保存的脚本,可以进行数据的还原

 

 

进行数据库中表数据的合并()

 

需要注意的有的数据是直接insert to 就可以,但是有的本来是计时器的功能,只需要对数量进行累加就可以,还有的数据时因为没有重建了一份一样的数据,对于这样的数据就不需要管他

 

重建索引 

Oracle数据表被drop后的恢复

标签:style   color   使用   for   sp   数据   on   ef   bs   

原文地址:http://blog.csdn.net/h249059945/article/details/40107263

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!