oracle delete误删除表数据后如何恢复


Posted in Oracle onJune 28, 2022

1、根据时间进行恢复

此种方式需要我们大致知道执行delete语句的时间。

查询系统当前时间:select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;

假设在2022-04-02 16:27:11分钟,执行了删除语句
delete from demo ;

oracle delete误删除表数据后如何恢复

此时已经表中不能查询到数据了。我们知道delete执行的时间,往前推1分钟(delete执行时间之前都可以,越小越好,本例以1分钟为例),执行如下语句

select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');

oracle delete误删除表数据后如何恢复

可以看到虽然当前demo表中没有数据,但是可以查询到demo表前1分钟时候的数据。

恢复1:此时可以通过plsql工具的导出查询结果功能导出sql文件,然后在重新执行sql文件中的insert语句进行数据恢复。

恢复2:执行以下sql进行数据恢复:

flashback table DEMO to timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');

如果报错ORA-08189:未启用行移动功能,不能闪回表

则执行:

alter table DEMO enable row movement;

添加表行移动功能后,在进行flashback语句进行恢复

如果报错: ORA-08194: 在实体化视图上不允许闪回表操作;则通过下面介绍的新建临时表的方式进行恢复。

恢复3(新建临时表):

新建demo1表,插入需要恢复的数据

create table DEMO1 as select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:30:11',‘yyyy-mm-dd hh24:mi:ss');

将demo1表的数据恢复到demo表中

insert into DEMO select * from DEMO1 where not exists (select * from DEMO where DEMO.id=DEMO1.id);

恢复4(根据scn恢复):

查询当前的scn号

select current_scn from v$database;

oracle delete误删除表数据后如何恢复

将scn号减少若干,执行下语句,直到能查看到我们delete的数据为止

select * from DEMO as of scn 166937913;

通过合适的scn号,执行下sql语句进行数据恢复

flashback table DEMO to scn 166937913;

总结

到此这篇关于oracle delete误删除表数据后如何恢复的文章就介绍到这了,更多相关oracle delete误删表数据恢复内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Oracle 相关文章推荐
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
Apr 06 Oracle
ORACLE查看当前账号的相关信息
Jun 18 Oracle
快速学习Oracle触发器和游标
Jun 30 Oracle
oracle连接ODBC sqlserver数据源的详细步骤
Jul 25 Oracle
Oracle安装TNS_ADMIN环境变量设置参考
Nov 01 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
Oracle 触发器trigger使用案例
Feb 24 Oracle
Oracle数据库中通用的函数实例详解
Mar 25 Oracle
解决Oracle数据库用户密码过期
May 11 Oracle
Oracle中日期的使用方法实例
Jul 07 Oracle
ORACLE中dbms_output.put_line输出问题的解决过程
Jun 28 #Oracle
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
Jun 28 #Oracle
Oracle数据库事务的开启与结束详解
Jun 25 #Oracle
在Oracle表中进行关键词搜索的过程
Jun 10 #Oracle
Oracle锁表解决方法的详细记录
Jun 05 #Oracle
oracle数据库去除重复数据
May 20 #Oracle
解决Oracle数据库用户密码过期
May 11 #Oracle
You might like
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
PHP7变量处理机制修改
2021/03/09 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
JavaScript多线程详解
2015/08/12 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
python查看FTP是否能连接成功的方法
2015/07/30 Python
Django之路由层的实现
2019/09/09 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
Python 中Operator模块的使用
2021/01/30 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
程序员岗位职责
2013/11/11 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
业务员岗位职责
2015/02/03 职场文书
教师个人学习总结
2015/02/11 职场文书
入党积极分子群众意见
2015/06/01 职场文书
golang内置函数len的小技巧
2021/07/25 Golang
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android