前段时间一不小心把Oracle数据库表中了一条数据删除了,用的是delete from,记得delete删除的话数据是可以找回的,就去查询了一些资料,总结了一下。
1.首先查找表操作的历史记录
select * from v$sqlarea a where a.SQL_TEXT like ‘%表名%’;
2,从上面的记录中找到update语句对应的sql_id
select * from v$sqltext a,v$sqlarea b where a.SQL_ID=b.SQL_ID and b.SQL_ID in(‘cq53826tk4u3c’,‘afftnrfhu5utk’) order by b.LAST_ACTIVE_TIME desc;
3,从上面的记录中找到最新的sql操作记录,然后找到用户名和主机
select * from sys.v_$session l,sys.v_$sql s where s.SQL_ID=‘cq53826tk4u3c’ and l.USERNAME is not null;
示例:
select * from EMP;
delete from EMP where EMPNO=7369;
查询当前电脑时间:
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’)from dual;
查询删除之前数据:
select * from EMP as of timestamp to_timestamp(‘2018-04-12 09:12:11’,‘yyyy-mm-dd hh24:mi:ss’);
恢复数据:
flashback table EMP to timestamp to_timestamp(‘2018-04-12 09:12:11’,‘yyyy-mm-dd hh24:mi:ss’);
前段时间一不小心把Oracle数据库表中了一条数据删除了,用的是delete from,记得delete删除的话数据是可以找回的,就去查询了一些资料,总结了一下。一、查找表操作记录1.首先查找表操作的历史记录select * from v$sqlarea a where a.SQL_TEXT like '%表名%';2,从上面的记录中找到update语句对应的sql_idselect ...
select * from v$sqlarea a where a.SQL_TEXT like '%TB_ACCT_SYSDATE%';
2,从上面的
记录
中找到update语句对应的sql_id
select * from v$sqltext a,v$sqlarea b where a.SQL_ID=b.SQL_ID and b.SQL_ID in('cq53826tk4u3c','afftnrfhu5utk') order by b.LAST_ACTIVE_TIME desc
回复误删除数据信息。
1、执行 alter tabletable_name enable row movement;
2、执行 FlashBack tabletable_name to timestamp to_timestamp('2012-05-24 14:59:36','yyyy-mm-dd hh24:mi:ss');
查询
历史
操作
数据信息。
比较合理的方法是先从闪回区查找出被误...
查询
历史数据关键字TIMESTAMP
SELECT * FROM ROLE_RESOURCE AS OF TIMESTAMP TO_TIMESTAMP('2018-10-11 11:10:00', 'yyyy-mm-dd hh24:mi:ss') WHERE role_id='25' ORDER BY RESOURCE_ID,
做数据减法 关键字minus
SELECT ROLE_id,R...
Flashback技术是
Oracle
提供的一种
数据恢复
机制,可以
查看
到
表
字段在历史上的修改情况。可以通过如下步骤实现:
(1)在创建
表
时指定ROWDEPENDENCIES选项,用于
记录
每行
记录
的物理地址。
(2)执行如下SQL语句创建
表
历史记录
表
:
CREATE TABLE tablename_history AS SELECT * FROM tablename WHERE 1=0
(3)打开Flashback功能:
ALTER TABLE tablename ENABLE ROW MOVEMENT;
(4)通过如下
查询
语句
查看
指定
表
字段在历史上的修改情况:
SELECT * FROM tablename AS OF TIMESTAMP (TIMESTAMP 'yyyy-mm-dd hh:mi:ss');
2.使用Audit功能
Audit功能可以
记录
所有数据
操作
,包括对
表
字段的修改。可以通过如下步骤实现:
(1)启用Audit功能:
AUDIT ALTER TABLE;
(2)执行字段修改
操作
,例如:
UPDATE tablename SET columnname = 'newvalue' WHERE condition;
(3)
查看
Audit
记录
:
SELECT * FROM dba_audit_trail WHERE action_name = 'ALTER' AND obj_name = 'tablename';
通过以上方法,可以方便地
查看
表
字段历史修改
记录
,有助于数据修复和数据追溯。