原创

ORACLE 误操作 恢复更新前的数据

今天在某客户的服务器上搞事情的时候,忘记做表的备份,直接给UPDATE了,这个UPDATE必须明天执行,今天不能执行,震惊之余,整个人都清醒过来。

开始恢复之旅,

一、 备份当前表:

CREATE TABLE TABLE_20180111
AS
SELECT * FROM TABLE;

这里注意,速度一定要快!!!!以最快的速度备份当前表!!!!

二、取得操作时间

参考网上的方法,首先找到执行UPDATE语句的时间点,因为我是刚更新的,而这张表这个时间点,没有业务发生,所以我采用了模糊的方式来进行回滚。(建议精确的时间点)

SELECT FIRST_LOAD_TIME,LAST_ACTIVE_TIME  FROM V$SQL WHERE SQL_FULLTEXT LIKE '%UPDATE TABLEXXXXXX%' --怕有问题的,直接查找表名

总之,尽量找到靠近的时间

三、创建恢复表

CREATE TABLE TABLE_RECOVE
AS
SELECT * FROM TABLE
AS OF TIMESTAMP TO_TIMESTAMP('2018-01-11 15:14:03','yyyy-mm-dd hh24:mi:ss');

四、整合数据,回滚对应的记录

这个只能自己写脚本了,使用UPDATE中的条件进行查找更改的数据,然后再按条更新进去。

温馨提示:
本文最后更新于 2022年06月23日,已超过 14 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录