快速恢复update了的orcale数据表
Posted 大鱼biubiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速恢复update了的orcale数据表相关的知识,希望对你有一定的参考价值。
在update的时候 没有写条件 将整个表中的数据全部都更新了,这时候怎么办呢?
orcale提供了以下的方法产看某一个时间戳, 所执行的sql的语句内容, 同时可以利用该这个时间戳查看当时语句执行显示的结果
查出需要撤销SQL 的执行时间:
SELECT last_load_time, sql_text
FROM v$sql
WHERE last_load_time IS NOT NULL
and sql_text like \'%你错误执行的sql%\'
ORDER BY last_load_time DESC;
说明:这个语句中除了like里的字段 其他的都是固定的,like中写的是你要恢复的那条sql中的一段 或者全部
执行结果如下:
在上图的执行结果里, 找到你错误执行的那条sql的时间,我这里错误执行语句的时间是第二条:2017-08-21/11:07:49
然后通过下面的sql,找回update之前的数据:
select * from your_table
as of timestamp to_timestamp(\'2017-08-21/11:07:49\',\'yyyy-mm-dd/hh24:mi:ss\');
若是全表恢复:
1.将错误更新之前的数据新建一张表tableNameCopy 保存
create table tableNameCopy
as select * from tableName
as of timestamp to_timestamp(\'2017-08-21/11:07:49\',\'yyyy-mm-dd/hh24:mi:ss\');
2.删除原表 tableName 中的所有被错误更新的数据
delete from tableName ;
3.将tableNameCopy 表中的数据写入原表 tableName
insert into tableName select * from tableNameCopy;
------完美啦~
以上是关于快速恢复update了的orcale数据表的主要内容,如果未能解决你的问题,请参考以下文章