专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

详解Oracle数据库如何利用闪回查看Oracle表历史操作记录

ins518 2024-10-16 12:32:25 技术文章 14 ℃ 0 评论

概述

最近发现某张表数据有点异常,想看下这段时间这张表是否做了一些改动,因为审计没针对这张表单独审计,所以不好查询到,就利用了闪回来查看Oracle表历史时刻数据,因为数据比较敏感,所以单独做了个实验来演示。


利用闪回查看Oracle表历史时刻数据

测试数据准备

create table nc633gold.t1 as select * from dba_objects;
select * from nc633gold.t1;

模拟误删数据

delete from nc633gold.t1 where owner='SYS';
delete from nc633gold.t1 where owner='PUBLIC';
delete from nc633gold.t1;

查看表历史时刻数据

select * from nc633gold.T1 AS OF TIMESTAMP to_timestamp('2019-09-16 10:25:00','yyyy-mm-dd hh24:mi:ss');

查看过去某一段时间内对表的操作,以确认需要恢复到的时间点

select SQL_TEXT, LAST_ACTIVE_TIME
from v$sqlarea
where LAST_ACTIVE_TIME >
to_date('2019-09-16 10:25:00','yyyy-mm-dd hh24:mi:ss')
and SQL_TEXT like '%nc633gold.t1%'
order by 2 desc;

利用flashback table恢复表到过去某一时刻

alter table nc633gold.t1 enable row movement;
flashback table nc633gold.t1 to timestamp to_timestamp('2019-09-16 10:35:00','yyyy-mm-dd hh24:mi:ss');
alter table nc633gold.t1 disable row movement;

测试

select count(*) from nc633gold.t1;

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表