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中的条件进行查找更改的数据,然后再按条更新进去。
本文来自:ORACLE 误操作 恢复更新前的数据-小码农,转载请保留本条链接,感谢!
温馨提示:
本文最后更新于 2022年06月23日,已超过 912 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
正文到此结束
- 本文标签: oracle update 回滚
- 本文链接: https://djc8.cn/archives/oracle-misoperation-to-restore-the-data-before-the-update.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
相关文章
该篇文章的评论功能已被站长关闭