oracle环境下 表被异常drop,Oracle数据表被drop后的恢复

5268f80b9b1e01f982625ef6fac83ca1.png

Oracle数据表对于被drop的表和索引,都会存放在回收站中(所以对于生产的数据库必须设置好回收站功能),因为本次生成环境在drop掉

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

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

1 重命名已经存在的表

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(*)大于0 的数据需要进行数据的合并,否则可以不用管它

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

spool bak2.txt

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

spool off

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

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

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

4 重建索引

Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

logo.gif

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值