当前位置: 首页 > news >正文

Oracle恢复删除的数据

不下心删除了生产库的数据或者不小心删除了一部分数据,如何恢复找回。

Oracle恢复删除数据的方法

方案一

  1. 利用oracle提供的闪回方法进行数据恢复,适用于delete删除方式

首先获取删除数据的时间点:

select * from v$sql where sql_text like '%table_name%' ;

示例sql

select sql_text as boothno,first_load_time as submarket from v$sql where sql_text like '%MK_BOOTHINFO%' and sql_text like '%DELETE FROM MK_BOOTHINFO WHERE BOOTHID = %'

根据结果中的sql_text内容,找到delete执行语句对应的删除时间点,执行下面语句查询出删除的数据。

select * from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)
where (删除时的条件)

示例sql

      select * from Mk_Boothinfo as of timestampto_timestamp(#{time2,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss')where  BOOTHID = #{boothId}

ps:这个时间点可以适当加减30s内去获取数据 有可能查不到

检查数据无误后,执行下面操作,将数据插回原表中。注意主键不重复

insert into table_name
select * from from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)
where (删除时的条件)

方案二

  1. 利用oracle虚拟回收站功能
    原理是因为oracle数据库在删除表时会将删除信息存放于某虚拟回收站中而非直接清空,在此种状态下数据库标记该表的数据库为可以复写,所以在该块未被重新使用前依然可以恢复数据。该方法多用于drop删除。

首先查询123user_table==视图,找到被删除的表:

select table_name,dropped from user_tables;
select object_name,original_name,type,droptime from user_recyclebin;

注意此时的,object_name和original_name就是回收站存放的表名和原来删除的表名,如果表名没有被重新命名,可以通过下面语句进行恢复:

flashback table object_name to before drop new_table_name;

方案三

  1. 用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’);
  1. 彻底删除数据

如果确定需要删除的数据又不想无谓的占用空间,我们可以使用以下3种方式:

  1. 采用truncate方式进行截断。(不能进行数据回恢复)

  2. 在drop时加上purge选项:drop table table_name purge

  3. 通过删除recyclebin区域来永久性删除表 ,drop table table_name cascade constraints purge table table_name;

  4. 关于清空回收站

删除当前用户回收站
purge recyclebin;
删除全体用户在回收站的数据
purge dba_recyclebin;

http://www.lryc.cn/news/99257.html

相关文章:

  • (无人机方向)ros小白之键盘控制无人机(终端方式)
  • 【python学习笔记】argparse --- 命令行选项、参数和子命令解析器
  • 【Java框架】RPC远程调用
  • 云原生全栈体系(一)
  • 【【51单片机直流电机调速】】
  • 【Spring Boot】
  • 使用docker 部署自己的chatgpt
  • Python适配器模式介绍、使用方法
  • 【数据结构】复杂度
  • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考
  • 微服务入门---SpringCloud(二)
  • 51单片机IO口控制
  • ERROR 1064 - You have an error in your SQL syntax;
  • leetcode做题笔记46
  • 快问快答JS面向对象面试题
  • googlenet论文理解
  • OnnxRuntime TensorRT OpenCV::DNN性能对比(YoloV8)实测
  • 【QT 网络云盘客户端】——获取用户文件列表信息
  • 从0到1,无代码开发如何简化产品创新流程
  • select、epoll 的快速核心理解
  • HTTP和HTTPS的区别
  • 分布式异步任务处理组件(二)
  • Jenkins 拉取 GitHub 私有仓库失败问题
  • 小程序 多层次对象数组的赋值、动态赋值
  • angular踩坑
  • C#时间轴曲线图形编辑器开发1-基本功能
  • elasticsearch查询操作(DSL语句方式)
  • JavaScript详解
  • 电缆振荡波局部放电检测定位技术
  • AI Chat 设计模式:10. 组合模式