oracle闪回表

ops/2025/1/11 9:54:39/

文章目录

    • 闪回表
      • 案例1:(未清理回收站时的闪回表--成功)
      • 案例2(清理回收站时的闪回表--失败)
      • 案例3:彻底删除表(不经过回收站--失败)
      • 案例4:闪回表之后重新命名新表
      • 总结
        • 1、删除关于表的所有数据(表数据,索引,主键等对象),闪回恢复的时候同时恢复。
        • 2、未清理回收的情况下,成功闪回表,清理回收站的情况下,闪回表失败
      • 3、闪回表的同时对原有的表进行重新命名后,所有的数据将恢复到新表中



闪回表利用的是回收站

①.事务回滚|回退:rollback,对于DML操作,只要数据不提交commit,数据回滚到原始状态

②.截断表:truncate,数据无法回滚找回

③.删除表:drop,表都不存在
闪回:flashback

闪回表

案例1:(未清理回收站时的闪回表–成功)

创建一个表,删除之后找回

CREATE TABLE employees (employee_id NUMBER PRIMARY KEY,first_name VARCHAR2(50),last_name VARCHAR2(50),salary NUMBER
);INSERT INTO employees VALUES (5, 'John', 'Doe', 5000);
INSERT INTO employees VALUES (6, 'Jane', 'Smith', 6000);
INSERT INTO employees VALUES (2, 'Jane', 'Smith', 6000);
commit;

删除表:

drop  table  employees 
commit;

查看表:

select  *  from employees 

在这里插入图片描述
查看回收站:

SELECT * FROM recyclebin;

在这里插入图片描述
回收站中drop删除的信息

闪回表:

flashback TABLE employees TO BEFORE DROP;

再次查看表:

select * from employees

在这里插入图片描述

案例2(清理回收站时的闪回表–失败)

未清理回收站的情况下可以正常闪回表,

···清理回收站是否可以闪回表?···

删除表后将回收站清空,再次闪回,查看是否闪回成功

1、drop table employees;删表
2、purge recyclebin;清理回收站
3、再次闪回表:

flashback TABLE employees TO BEFORE DROP;

在这里插入图片描述
当清理回收站的情况下,再次闪回表的时候,将无法成功闪回表。

案例3:彻底删除表(不经过回收站–失败)

在删除表的时候可以将其彻底删除,回收站中不保留其信息。
案例:用彻底删除表的方式,验证能否将表闪回。

彻底删除表:

drop table employees purge;
commit;

回收站查看:

SELECT * FROM recyclebin;

在这里插入图片描述
回收站未有任何信息。

闪回表:

flashback TABLE employees  TO BEFORE DROP

在这里插入图片描述

闪回表失败

案例4:闪回表之后重新命名新表

删除原有的表,闪回的时候对表进行重新命名,查询的时候只能查询到重新命名的表,原表将无法正常查看;

flashback TABLE employees  TO BEFORE DROP rename to employees_new ;

对闪回的表进行重新命名,

查询原表:查询失败

在这里插入图片描述

查询新表:查询成功

在这里插入图片描述
可见原表被恢复到了新表中

总结

drop table
1、删除关于表的所有数据(表数据,索引,主键等对象),闪回恢复的时候同时恢复。
2、未清理回收的情况下,成功闪回表,清理回收站的情况下,闪回表失败

3、闪回表的同时对原有的表进行重新命名后,所有的数据将恢复到新表中


http://www.ppmy.cn/ops/149134.html

相关文章

ISP各模块功能介绍

--------声明,本文为转载整理------- ISP各个模块功能介绍: 各模块前后效果对比: 黑电平补偿(BLC) 在理想情况下,没有光照射的像素点其响应值应为0。但是,由于杂质、受热等其它原因的影响&…

conda管理Python库和虚拟环境

conda 是一个开源的跨平台软件包管理系统和环境管理系统,用于安装、运行和协调不同版本的软件包和其依赖项。它最初是为 Python 语言而设计的,但现在已经支持多种编程语言和工具。conda 可以轻松地创建和使用虚拟环境,这些环境可以独立于系统…

Java的 BIO、NIO、AIO?分别的作用和用法

在Java中,BIO、NIO和AIO代表了不同的I/O操作模式。以下是每个模型的简要描述以及相应的代码示例。 BIO (Blocking I/O) 作用:传统阻塞式I/O,适合低并发场景。用法:使用java.io包中的类,如ServerSocket来监听连接请求…

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨 作品简介 身处当今如火箭般迅猛发展的互联网时代,智能聊天助手已然化身成为提升用户体验的关键利器,全方位渗透至人们的数字生活。 紧紧跟随着这股汹涌澎湃的时代浪潮,我毅然投身于极具挑战性…

el-tree拖拽光标错位问题

背景:el-tree实现的分类树增加拖拽功能后,当分类树由于数量较多产生滚动条,如果分类树已滚动,进行拖拽时会造成光标错位的问题: 原因:el-tree拖拽光标定位的高度并未加上滚动的高度解决:将滚动的样式属性放…

EFCore HasDefaultValueSql (续2 HasComputedColumnSql)

前情:EFCore HasDefaultValueSql EFCore HasDefaultValueSql (续1 ValueGeneratedOnAdd)-CSDN博客 小伙伴在使用 HasDefaultValueSql 时,对相关的 ValueGeneratedOnAdd, HasComputedColumnSql 也有了疑问: HasComputedColumnSql 对于计算…

[IoT]详细设计:智能农业监控系统

以下是基于IoT的智能农业监控系统网络拓扑的详细设计: 网络拓扑详细设计 1. 星型与网状混合拓扑 中心节点:本地服务器或集中控制器作为中心节点,负责协调和管理整个网络。传感器/执行器节点:分布在农田中,负责数据采…

【ROS2】☆ launch之Python

☆重点 ROS1和ROS2其中一个很大区别之一就是launch的编写方式。在ROS1中采用xml格式编写launch,而ROS2保留了XML 格式launch,还另外引入了Python和YAML 编写方式。选择哪种编写取决于每位开发人员的爱好,但是ROS2官方推荐使用Python方式编写…