如何分析oracle表是否被人删除或者更新过?
来源:互联网 发布:360浏览器mac版 编辑:程序博客网 时间:2024/06/05 10:11
今天开发来找我,问我客户的一张表的数据没了,但是开发觉得没人动过,所以他们让我查下是否有人动过这个表
初步想到2个办法,这里做个备记 ,数据库没有开归档
S1#:闪回版本查询
SELECT .....FROM tablename VERSIONS {BETWEEN {SCN | TIMESTAMP} start AND end}
--start,end可以是时间也可以是scnFlashback Version Query伪列说明
versions_start{scn|time} 版本开始的scn或时间戳
versions_end{scn|time} 版本结束scn或时间戳,如果有值表明此行后面被更改过是旧版本,如果为null,则说明行版本是当前版本或行被删除(即versions_operation值为D)。
versions_xid 创建行版本的事务ID
versions_operation 在行上执行的操作(I=插入,D=删除,U=更新)
eg:
SELECT versions_startscn, versions_starttime, versions_endscn, versions_endtime, versions_xid, versions_operation, LIXORA.last_name,LIXORA. salary
FROM LIXORA.employees
VERSIONS BETWEEN TIMESTAMP
TO_TIMESTAMP('2017-04-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND TO_TIMESTAMP('2017-05-24 17:00:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE first_name = 'LIXORA';
select a.*,versions_operation,versions_xid,versions_starttime from LIXORA.test A versions between timestamp minvalue and maxvalue;
s2#:sql基表调查
利用sql基表查询
select * from wrh$_sqltext where sql_text like '% LIXORA.test%'; LIXORA.test 为表名
然后根据里面的记录看下是否有delete,update 等操作,然后根据snapid 查询 dba_hist_snapshot 视图就可以知道该操作是在什么时候做的了
wrh$_sqltext 基表可以存放一个月的记录,一般的问题回溯足够了
阅读全文
0 0
- 如何分析oracle表是否被人删除或者更新过?
- Oracle 更新或者删除游标行
- 如何查看数据文件或者Log文件是否增长过?
- oracle删除或者更新了表里面的数据…
- JFrame 组件添加或者删除后,如何更新窗口
- Magento-如何新增、更新或者删除数据库中的数据
- 判断ie浏览器版本是否过低,然后提示更新或者使用其他浏览器
- oracle 恢复被删除的存储过程或者表等
- 电子邮件如何监控是否被打开过
- 删除oracle的用户或者表
- Oracle 修改或者删除临时表
- 如何恢复oracle误删除、更新、插入的数据
- oracle-单表更新和删除
- Oracle如何删除表空间、删除用户
- oracle的多表关联更新或者插入
- 如何检查windows的dll文件是否被修改过?
- 如何查看你的域名是否被K过
- 如何验证下载的linux内核是否被修改过
- 使用DWR在js中调用Java类,检验用户的唯一性
- 2.本地缓存
- Android Studio 导入BSP源码
- java日期的一些处理
- 在 Java 9 里对 IntegerCache 进行修改?
- 如何分析oracle表是否被人删除或者更新过?
- 配置jdk注意事项(java.lang.outofmemory)
- 在不超过价格上限的情况下,点k个菜有多少种点法
- Qt与MySQL连接,drivers not loaded问题
- compass 配置文件config.rb中relative_assets的作用
- Linux点点滴滴
- Android文件存储详解
- JBOSS的下载安装、环境变量配置以及部署
- 怎么看时序图--nand flash的读操作详解