Oracle数据库恢复删除数据的方法
误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据呢?
下面介绍3种方法。
1. 利用oracle提供的闪回方法进行数据恢复,适用于delete删除方式
首先获取删除数据的时间点:
select * from v$sql where sql_text like '%table_name%' ;
根据结果中的sql_text
内容,找到delete
执行语句对应的删除时间点,执行下面语句查询出删除的数据。
select * from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)
where (删除时的条件)
检查数据无误后,执行下面操作,将数据插回原表中。注意主键不重复
insert into table_name
select * from from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)
where (删除时的条件)
2. 利用oracle虚拟回收站功能
原理是因为oracle数据库在删除表时会将删除信息存放于某虚拟回收站中而非直接清空,在此种状态下数据库标记该表的数据库为可以复写,所以在该块未被重新使用前依然可以恢复数据。该方法多用于drop删除。
首先查询user_table
视图,找到被删除的表:
select table_name,dropped from user_tables;
select object_name,original_name,type,droptime from user_recyclebin;
注意此时的,object_name
和original_name
就是回收站存放的表名和原来删除的表名,如果表名没有被重新命名,可以通过下面语句进行恢复:
flashback table original_name to before drop;
如果不知道源表名,或者需要重新命名新的表名存放数据,则可以通过回收站中的object_name
进行恢复,命令如下:
flashback table object_name to before drop new_table_name;
3. 用oracle数据库的闪回功能可以将数据库恢复到过去某一状态
注意,此时是整库恢复,具体语法如下:
SQL>alter database flashback on
SQL>flashback database to scn SCNNO;
SQL>flashback database to timestamp to_timestamp(‘frombyte 2021-09-02 23:59:59’,‘yyyy-mm-dd hh24:mi:ss’);
4. 彻底删除数据
如果确定需要删除的数据又不想无谓的占用空间,我们可以使用以下3种方式:
- 采用truncate方式进行截断。(不能进行数据回恢复)
- 在drop时加上purge选项:
drop table table_name purge
- 通过删除
recyclebin
区域来永久性删除表 ,drop table table_name cascade constraints purge table table_name;
5. 关于清空回收站
删除当前用户回收站
purge recyclebin;
删除全体用户在回收站的数据
purge dba_recyclebin;
Oracle数据库恢复删除数据的方法相关推荐
- oracle怎么将一列挪到另一列,详细讲解Oracle数据库的数据迁移方法
<详细讲解Oracle数据库的数据迁移方法>由会员分享,可在线阅读,更多相关<详细讲解Oracle数据库的数据迁移方法(4页珍藏版)>请在人人文库网上搜索. 1.详细讲解 Or ...
- Oracle数据库迁移测试数据,Oracle数据库的数据迁移方法
Oracle数据库的数据迁移方法 发表于:2008-04-14来源:作者:点击数: 随着数据库管理系统和操作系统平台的更新换代的速度的加快,数据库管理员经常需要在两个不同的数据库之间或在两种不同的系统 ...
- ORACLE使用copy方式存储迁移,详细讲解Oracle数据库的数据迁移方法
添加所需的表空间和用户到目标数据库中:安装所需的SQL*Net2或者Net8软件,并配置用于连接数据库的别名. 在DOS命令提示符下设置oracle_sid=Oracle7_sid. 以Interna ...
- 数据分片排序oracle,基于ORACLE数据库的海量数据脱敏方法与流程
本发明涉及一种数据脱敏方法,尤其涉及一种基于oracle数据库的海量数据脱敏方法. 背景技术: oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管 ...
- ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法
ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法(转载) 10小时前 ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法(转载) 分类: ASP.NET| ...
- oracle数据库删除数据Delete语句和Truncate语句的对比
oracle数据库删除数据Delete语句和Truncate语句的对比 当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分 ...
- 修改linux下全局数据库名,linux/unix下修改oracle数据库实例名的方法
linux/unix下修改oracle数据库实例名的方法 2018年12月10日 | 萬仟网IT编程 | 我要评论 linux/unix下修改oracle实例名的方法 1.检查原来的数据库实例名 $ ...
- navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...
使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中 发布时间:2018-08-20 14:41, 浏览次数:471 , 标签: Navicat pre ...
- mysql 刷新二进制日志_使用binlog日志恢复MySQL数据库删除数据的方法
binlog日志简介: binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间. b ...
- oracle数据库导入txt,oracle数据库导入TXT文件方法介绍
客户端连接数据库导入 1. 安装有oracle客户端,配好监听. 2. 以oracle数据库app用户的表user_svc_info为例 CREATE TABLE USER_SVC_INFO( PHO ...
最新文章
- java 参数 exception_java – 在异常的参数中使用泛型
- Ubantu使用笔记
- 关于前端开发 Framework Agnostic 和微前端的话题
- Sublime Text3—Code Snippets(自定义代码片段)
- 电脑word文档打不开怎么办_word怎么转pdf?两个值得学习的高效转换法
- Tomcat7.0+的JNDI问题
- Qt工作笔记-多线程时间服务应用
- 聪明女人的七个致富之道,学会它你也能成为人人羡慕的小富婆
- 数据集查找神器!100个大型机器学习数据集都汇总在这了 | 资源
- Linux操作系统基础知识学习
- 后台管理系统中英文版本切换
- 超像素分割 SLIC算法 使用示例
- 【转载】MINI2440 TD35 P35触摸屏不能使用? 让我们来把一线触控改四线触控
- Linux 系统硬盘MBR转换为GPT格式并扩容
- html embed高度自适应,腾讯优酷视频分享iframe,embed高度多种比例控制
- pythonppt生成替换_python生成ppt的方法
- 04树莓派迅雷远程下载
- Openlayers + Vue实现GIS地图的一些常见问题(整理)
- Go设计模式学习准备——下载bilibili合集视频
- 着眼未来 巅峰对决 | “智算之道—2020人工智能应用挑战赛”圆满收官!
热门文章
- C#/.NET 通过代码一键清理IE缓存文件/强制重置IE设置
- ICT通信运营企业的重建之服务升级(二)----ICT技术及产品种类
- 笔顺演示动画gif_如何将动画GIF插入PowerPoint演示文稿
- 双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级
- java面向对象之实现房屋出租系统
- 猪八戒网分析报告_米米米米粒口红_新浪博客
- 定时任务中cron表达式详解
- 内容太干准备好水:项目进度管理S曲线制作方法新探
- Rhino在java中的用法
- 论文丨免费下载SCI全文文献的10个方法