今天虚惊一场, 我在给项目经理演示的时候 不小心 把一个按钮 点错, 正好系统功能是 仙人留下的, 我们都不知道业务,
功能是 把一个设备 调拨到另一个项目中去了, 调拨中设计到金额, 项目经理说这个很麻烦。 我们正合计着 把数据恢复过来,
这个JDBC 中 正好 有commit 了事物, 我们先要找到 sql ,
于是 我在 v$sql; 试图中 找到 java 执行的sql, 还好 顺利找到, 设计到两张表, 两个sql 一个是 insert , 一个是 update, 我们删除掉insert 表数据, 然而恢复 update的数据
我靠 数据已经 改了, 这么找?不知道之前的状态, 于是项目经理找到这个设备的状态的log, 正好 有设备的日志记录, 但是这个不太给力。 于是我想到了查询 oracle 历史
select * from emp1 as of timestamp sysdate-20/1440 类似这个, 这个是查询 20分钟之前的数据。。
select * from (
select * from emp1 as of timestamp sysdate-20/1440
) tab where tab.empno = 7654; 于是数据恢复
Scn转换成时间:
select to_char(scn_to_timestamp(3998591352171),'YYYY-MM-DD HH24:MI:SS') from dual;
时间转换成scn:
select timestamp_to_scn(to_date('2015-08-07 11:10:25','YYYY-MM-DD HH24:MI:SS')) from dual