oracle怎么恢复误删除的列,三种方式恢复oracle数据库误删除的数据
原标题:三种方式恢复oracle数据库误删除的数据
有很多朋友都遇到过在操作数据库时误删除某些重要数据的情况,如果数据库没有备份而且数据有十分重要的情况下怎么做才能找回误删除的数据呢?我在这里为大家介绍几种误删除数据库中重要数据的恢复方法(不考虑全库备份和利用归档日志)
第一种数据恢复方法是利用oracle提供的闪回方法进行数据恢复,适用于delete删除(一条记录)方式:
首先需要知道是什么时间进行的删除操作,如果不能确定具体时间点则选择尽量准确的删除数据前的时间。然后利用
select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss')
语句可以找回删除的数据。利用
insert into 表名 (select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss'));
语句就可以将恢复出来的数据插入原表中(注意要保证主键不重复)。
另一种方法可以通过闪回整个表来恢复误删除的数据,但仅适用于表结构没有发生改变且用户有flash any table权限的情况下,语句如下:
·alter table 表名 enable row movement
·flashback table 表名 to timestamp to_timestamp(删除时间点',' frombyte yyyy-mm-dd hh24:mi:ss')
第二种数据恢复方法的原理是因为oracle数据库在删除表时会将删除信息存放于某虚拟“回收站”中而非直接清空,再此种状态下数据库标记该表的数据库为“可以复写”,所以在该块未被重新使用前依然可以恢复数据。该方法多用于drop删除。
首先需要查询user_table视图找到被删除的表:
· select table_name,dropped from user_tables
· select object_name,original_name,type,droptime from user_recyclebin
注意此时的表名称已经被重新命名,table_name和object_name就是回收站中的存放表名,如果管理员此时可以明确原表的名称可以通过
flashback table 原表名 to before drop
语句进行数据恢复,如果不知道原表名称可以直接按照回收站中的表名称将数据恢复回复来,然后通过
flashback table "回收站中的表名(如:Bin$DSbdfd4rdfdfdfegdfsf==$0)" to before drop rename to 新表名
语句就可以重新命名。
第三种方法同样利用oracle数据库的闪回功能可以将数据库恢复到过去某一状态,语法如下:
SQL>alter database flashback on
SQL>flashback database to scn SCNNO;
SQL>flashback database to timestamp to_timestamp('frombyte 2007-2-12 12:00:00','yyyy-mm-dd hh24:mi:ss');
介绍到这里有朋友发现问题了,oracle数据库提供了可以恢复数据的保障机制,但也不可避免的占用了大量空间,使用drop一个表或者delete数据后空间并不能自动进行回收,如果确定需要删除的数据又不想无谓的占用空间该如何操作呢?我们可以使用以下两种方式:
1、采用truncate方式进行截断。(但不能进行数据回恢复了)
2、在drop时加上purge选项:drop table 表名 purge
该选项也可以通过删除recyclebin区域来永久性删除表 ,原始删除表drop table emp cascade constraints
purge table emp;
删除当前用户的回收站:
purge recyclebin;
删除全体用户在回收站的数据:
purge dba_recyclebin_frombyte.com返回搜狐,查看更多
责任编辑:
oracle怎么恢复误删除的列,三种方式恢复oracle数据库误删除的数据相关推荐
- 三种方式修改 MySQL 数据库名
原文:三种方式修改 MySQL 数据库名 在 Innodb 数据库引擎下修改数据库名的方式与 MyISAM 引擎下修改数据库的方式完全不一样,如果是 MyISAM 可以直接去数据库目录中 mv 就可以 ...
- C#蓝牙连接及传输数据的三种方式(蓝牙传输文件、二进制数据)
先下载InTheHand.Net.Personal.dll并在C#中引用,这个需要在网上下载 第一种.通过ObexWebRequest传输文件 先看界面 using InTheHand.Net; us ...
- php+oracle新增数据类型,Oracle 修改某个字段的数据类型三种方式
1.将该列设置为null,再修改其类型(这样会丢失数据) 2.最简单的方法: 假设你的表名为 tab_target create table test as select 1.将该列设置为null,再 ...
- oracle修改某个数据类型,Oracle 修改某个字段的数据类型三种方式
1.将该列设置为null,再修改其类型(这样会丢失数据) 2.最简单的方法: 假设你的表名为 tab_target create table test as select * from tab_ta ...
- php连接mysql_PHP连接MySQL数据库的三种方式
本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...
- php连接虚拟机中mysql数据库吗,PHP连接MySQL数据库的三种方式
本篇文章给大家介绍一下PHP连接MysqL数据库的三种方式(MysqL.MysqLi.pdo),结合实例形式分析了PHP基于MysqL.MysqLi.pdo三种方式连接MysqL数据库的相关操作技巧与 ...
- php 复制mysql数据库_PHP连接MySQL数据库的三种方式
本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...
- .net mysql和php mysql数据库连接_浅谈PHP连接MySQL数据库的三种方式
本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- Python处理mat文件的三种方式小结
文章目录 处理mat文件的三种方式 scipy h5py mat73 python操作.mat文件 python读取.mat格式 mat转图片 处理mat文件的三种方式 读书的时候,处理数据都是采用m ...
最新文章
- 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)
- 远程监控 – 数据采集管道
- Resources about Rx(Reactive Extensions)
- Soap UI 负载测试
- 《程序员代码面试指南第二版》Python实现(个人读书笔记)
- secureCRt中文乱码问题
- 七点建议,帮助你编写出简洁、干练的Java代码
- Angular jasmine单元测试框架TestBed.createComponent的实现原理
- 冒泡排序算法 (JAVA)
- [转]关于java中的 sychronized 同步方法 与 同步块的理解
- JQuery弹出菜单时禁止页面(body)滚动
- 【月径流预测】基于matlab人工生态系统算法优化BP神经网络月径流预测【含Matlab源码 2000期】
- layui 调整表格样式
- 提取ansible hosts分组IP
- python are you ready_如果要检查recv_ready(),是否必须检查exit_status_ready?
- 济南发力大数据和智慧城市 大数据时代的济南智慧
- 利用高德地图API获取任意两座城市之间的距离!异地也有惊喜!
- 基础拓扑学笔记(1)——欧拉定理
- 阿里云对腾讯企业邮箱设置域名解析
- loadrunner-介绍