操作数据库,经常会出现误操作,昨天执行的更新操作之后发现更新错了,只能想办法数据恢复了,现在整理一下
第一步:查询执行更新操作的时间
select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;
执行上面那条SQL语句,在下图的SQL_TEXT字段找到你执行更新操作的那条更新语句,找到更新操作时间
![7a1ca509c1c4a260d556e939b77b22f8.png](https://i-blog.csdnimg.cn/blog_migrate/d804c6b9251862c324eecfdd978dd8a9.png)
第二步:创建一张新表,把数据恢复到新创建的表里
create table t_table_recove --新表
as
select * from table1--你操作的那张表
as
of timestamp to_timestamp('2016-08-25/11:20:09','yyyy-mm-dd hh24:mi:ss'); --执行更新操操作的时间
第三步:恢复数据(table1是你执行更新操作的那张表 )
delete table1;--将原表的数据全部删除
insert into table1 select * from t_table_recove;--恢复数据
第四步:查询一下,你更新的数据又还原了
select
* from
table1