千家信息网

oracle中commit之后该怎么进行数据回滚

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章将为大家详细讲解有关oracle中commit之后该怎么进行数据回滚,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。commit之后第一种:记住
千家信息网最后更新 2025年02月02日oracle中commit之后该怎么进行数据回滚

这篇文章将为大家详细讲解有关oracle中commit之后该怎么进行数据回滚,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

commit之后

第一种:

记住大概的时间,获取前大概时间的数据。

select * from Test as of timestamp to_timestamp('2021-12-08 09:30:56','yyyy-mm-dd hh34:mi:ss');

上面的代码就可以查看你要恢复的时间点的记录,看看是不是有你想要的刚刚提交的DML相关记录。

能看到,剩下的就简单了,可以把现在表中的数据备份到一个临时表,然后把记录插进去原表就行了

不要用truncate删除,不然你就回不去了,到时候你就又要哭了。

delete from Test;insert into Test select * from Test as of timestamp to_timestamp('2021-12-08 09:30:56','yyyy-mm-dd hh34:mi:ss');commit;

第二种:

Oracle在9i版本的时候引入了闪回技术,在Oracle 10g已经全面提供了闪回功能,主要提供了快速简单恢复数据库误操作的数据的恢复方法,而不用从逻辑备份或物理备份中恢复过来。

如果多次commit数据后,那可不可以闪回呢?貌似不可以。闪回只能暂存最近一次的数据操作。
闪回执行步骤: 

  1.查询最近更新数据之前的数据(以便确定是不是Commit之前的数据)

select * from Test as of timestamp to_timestamp('2021-12-08 08:00:00', 'yyyy-mm-dd hh34:mi:ss');

  其中Test为被误操作的表,'2021-12-08 08:00:00'表示上次更新数据前的时间,

  2.闪回操作前启用行移动功能(不启用不可以闪回)

alter table Test enable row movement;

  其中Test表示被误操作的表 

  3.执行闪回语句:

flashback table Test to timestamp TO_TIMESTAMP('20211208 15:10:00','YYYYMMDD HH24:MI:SS');

  这样被误操作的数据就可以"找"回来了。哈哈~

注:方法来源于网络整理,请谨慎操作!!!修改数据前养成好习惯,手动备份下数据!

关于oracle中commit之后该怎么进行数据回滚就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 备份 时间 内容 功能 文章 方法 更多 知识 篇文章 更新 不错 到时候 可不 不用 代码 到时 手动 技术 数据备份 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 mysql数据库表的查询 app应用网络安全检查工具 网络安全工作压实工作责任 计算机网络技术名词解释量化 excel格式的数据库 对网络安全说不 手抄报 教育系统网络安全课程 泉州市宝庭软件开发有限公司 wss 服务器 谷歌地图怎么提示服务器错误呢 互联网科技公司的价值观 循证医学资源专用数据库是 软件开发 请示 山东交互网络技术有限公司 临沂天马网络技术有限公司怎么样 嘉兴数据库防伪技术 做好国家网络安全 开源关系型数据库 重庆软件开发代码 阿里云后台怎么看服务器密码 吉林网络技术服务质量保障 两台服务器自动备份切换 微信手机数据库密码怎么修改 安徽大规模软件开发技巧 蚌埠市公安局网络安全保卫支队 没有检测到数据库模块 我的世界空岛生存服务器 高级网络安全工程师日常 酒店网络技术安全保护 小学生关于网络安全的看法
0