oracle删除表能找回么,Oracle 删除表数据 找回方法

Oracle 有个东西要SCN 叫做 system change number 大概就是你对数据库做的任何改变都会 被Oracle 记录下来

很多概念的东西可以去看看 Oracle concept 和官方文档 比如索引 锁 数据块 区 表空间,表连接, 以及 Oracle各个后台进程工作原理 等等(这里推荐看收获不止Oracle 和 Oracle concept )

了解了原理 你才能知道 你编写的一条sql 前前后后是如何工作的,对系统做出哪些影响,你才能优化sql

select * from recyclebin t where t.original_name='TEST1'删除的表因为表名不存在了 所以要去回收站找

flashback table XXX to before drop; #闪回刚删除的表如果drop table test1 其实 Oracle 只是把表放入回收站 能够找回的,但是限于时间 与 undo 表空间大小

flashback table XXX to scn/timestamp [enable trigger]scn 表示 system change number,timestamp 表示时间戳

select * from sys.smon_scn_time t order by t.scn # 查询 SCN timestamp

flashback table XXX to before drop rename to XXXX

另外 在短时间内对表做出DELETE UPDATE INSERT 操作

Oracle 都是能查找到的 如下 查询最近20分钟 内 对test1 的delete insert update 操作

select id,name,VERSIONS_STARTSCN,VERSIONS_ENDSCN,VERSIONS_OPERATION

FROM test1 versions between scn timestamp_to_scn(sysdate-20/1440) and

scn timestamp_to_scn(sysdate)

其中 id name 是属于 test1 表的字段

select * from flashback_transaction_query

查询五分钟前test1 的数据

select * from test1 as of timestamp sysdate - 5/1400;查询scn 编号 时刻 test1 的数据

select * from test1 as of scn 20682041

查询系统scn

select * from sys.smon_scn_time t order by t.scn

select dbms_flashback.get_system_change_number from dual;scn 与 timestamp 对应转换

select to_char(scn_to_timestamp(20680565),'yyyy-MM-dd hh:mi:ss') from dual

select timestamp_to_scn(sysdate) from dual;

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值