oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)
oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。
文章目录
- 概要
- 闪回查询恢复数据的主要方法包括:
- 基于时间的闪回查询:
- 1、基于时间区间来恢复:恢复前5分钟数据,前20分钟数据等
- 2、基于具体的时间来恢复:20250107 17:15:43 、20250106 17:15:43
- 基于scn闪回查询恢复数据
- 闪回表
- 闪回数据库:
- 利用“回收站”恢复被DROP的表:
概要
1、闪回查询通常只能恢复几小时内的数据,因为Undo表空间的大小和保留策略限制了旧数据版本的保留时间。
2、在进行闪回操作之前,建议备份当前数据库或相关数据,以防止意外情况导致数据丢失。
3、闪回功能不依赖于日志,可以在线恢复,无需关闭数据库,操作简单且恢复速度快1
闪回查询恢复数据的主要方法包括:
基于时间的闪回查询:
使用SELECT * FROM 表名 AS OF TIMESTAMP(时间点)语句,可以查询并恢复在指定时间点之前的数据状态。
例如,要查询10分钟前的数据,可以使用SELECT * FROM 表名 AS OF TIMESTAMP(SYSDATE-10/1440)。
1、基于时间区间来恢复:恢复前5分钟数据,前20分钟数据等
未更新前:4

delete update insert更新后:2

根据更新后的时间来确定数据要恢复的时间,比如恢复5分钟前的数据、20分钟前的等等时间段;
查询3分钟前的数据:
语法:
SELECT * FROM 表名 AS OF TIMESTAMP(SYSDATE-3/1440);

此时查询到的数据为更新发生后,前3分钟的数据,相当于原来的数据,未改变的数据。
实际工作中可以根据具体时间来恢复,此时数据已经查到了原来的旧数据,创建新表拷贝闪回查询的数据:
闪回查询前10分钟的数据并拷贝到新表test_old中:
SQL> create table test_old as select * from test1 as of timestamp(sysdate-10/1440);表已创建。SQL> select * from test_old;NO NAME
---------- ----------1 aa2 bb3 cc4 dd
闪回查询的数据已经拷贝到新表test_old中,然后将原来的表test1表删除,将test_old表名修改未test1,整个闪回查询恢复数据流程到此恢复完成结束。
2、基于具体的时间来恢复:20250107 17:15:43 、20250106 17:15:43
未更新前数据:

未更新前数据库系统时间:

此时的时间为表未发生任何变化的系统时间节点,后期根据这个时间节点来恢复数据,
更新表数据:delete update insert
delete test_old where no='2'--删除表中数据
表中操作已经完成,查询更新后的系统时间:

select to_char(sysdate,'yyyymmdd hh24:mi:ss') from dual -- 更新表后的时间20250107 17:17:33
当表中完成更新,得知更新前的系统时间和更新后的系统,就可以根据具体时间来恢复数据:
比如恢复到更新数据前系统的具体时间,上面第一次获取的时间:
select * from test_old as of timestamp to_date('20250107 17:59:28','yyyymmdd hh24:mi:ss') --恢复具体时间的数据

此时可以看到更新后,根据未更新前的系统时间来恢复了被更新的数据,创建新表拷贝恢复的数据,更新为原来的表,整个恢复流程完成,后期频繁的去更新只要知道具体的时间一定时间内都能正常恢复到为操作前的状态。
更新中:…
基于scn闪回查询恢复数据
1、获取未操作前的scn值:
select dbms_flashback.get_system_change_number from dual --获取当前的scn 27511490

此时scn值未任何操作时候的scn。
2、对表进行delete update insert(更新);

delete test_old where no=5;

更新成功,
3.获取更新后的 scn:

此时更新操作前和操作后的值都获取到了,可以更新scn数值区间进行闪回查询:27511490- 27512132,
4、根据scn闪回查询:
语法: select * from test_old as of scn 数值;
select * from test_old as of scn 27511490–根据scn的区间来一步一进行闪回查询 27511490- 27512132,之间取值

此时根据更新前的scn闪回查询返回到了,未操作前的状态,然后新建立表拷贝闪回查询的数据进行恢复即可:
create table test2_old as select * from test_old as of scn 27511490;

此时将scn闪回查询的数据已经恢复到新表中,可以对新表对象进行任何操作。
注意:
1、如果只有操作后的scn可以根据scn数据值大小一个一个去测试,知道闪回查询
2、如果有操作前后区间的scn值,可以根据区间去一一测试,直到闪回查询
···**闪回查询只要查看过去具体时间点的数据变化**···
闪回表
如果表结构没有发生改变,并且用户有flash any table权限,可以使用ALTER TABLE 表名 ENABLE ROW MOVEMENT和FLASHBACK TABLE 表名 TO TIMESTAMP(时间点)语句来将整个表闪回到指定的时间点45。
闪回数据库:
闪回数据库功能允许将整个数据库回滚到过去某个时间点,但这通常用于更严重的灾难恢复场景,并且需要配置恢复区(Flash Recovery Area)2。
利用“回收站”恢复被DROP的表:
当使用DROP命令删除表时,Oracle并不会立即清空表所占用的空间,而是将表的信息放到一个虚拟的“回收站”中。在块未被重新使用之前,可以通过查询user_tables视图或user_recyclebin来找到被删除的表,并进行恢复
相关文章:
oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)
oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。 文章目录 概要闪回查询恢复数据的主要方法包括…...
C语言——结构体,位段,枚举和联合
目录 前言 结构体 1含义 2语法 3匿名结构体 4结构体自引用 5结构体的定义与初始化 6内存对齐 7修改对齐数 8结构体传参 位段 1含义 2位段的内存分配 编辑3位段的问题 4位段的应用 枚举 1含义 2定义 3枚举优点 4枚举使用 联合 1含义 2定义 3特点 4计…...
期末概率论总结提纲(仅适用于本校,看文中说明)
文章目录 说明A选择题1.硬币2.两个事件的关系 与或非3.概率和为14.概率密度 均匀分布5.联合分布率求未知参数6.联合分布率求未知参数7.什么是统计量(记忆即可)8.矩估计量9.117页12题10.显著水平阿尔法(背公式就完了) 判断题11.事件…...
Python视频处理:噪声矩阵与并行计算的完美融合
噪声级别对视频质量有显著的影响,主要体现在以下几个方面: 1. 视觉质量 低噪声级别:当噪声级别较低时,视频的视觉质量较好。噪声对图像细节的干扰较小,画面看起来较为清晰和自然。观众可以更容易地识别图像中的细节和…...
如何使用SparkSql
一、SparkSql的前世今生 Hive->Shark->Spark SQL 二、SparkSql依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.1.2</version> </dependency> 三、…...
YOLOv8实战人员跌倒检测
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对人员跌倒目标数据集进行训练和优化,该数据集包含丰富人员跌倒图像样…...
QT-TCP-server
为了实现高性能的TCP通讯,以下是一个基于Qt的示例,展示如何利用多个线程、非阻塞I/O、数据分块和自定义协议进行优化。该示例以TCP服务器和客户端的形式展示,能够承受高负载并实现快速数据传输。 高性能TCP Server示例 #include <QTcpSe…...
【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)
视频演示: 基于STM32与QT的智慧粮仓环境监测与管理系统设计 目录: 目录 视频演示: 目录: 前言:...
robot 仿真环境安装测试 [持续更新]
将持续更新各种robot simulation环境的安装过程. RLBench 安装CoppeliaSim、PyRep、RLBench git: https://github.com/stepjam/RLBench/tree/master (1)CoppeliaSim sudo gedit ~/.bashrc设置环境变量 export COPPELIASIM_ROOT=${HOME}/CoppeliaSim export LD_LIBRARY_…...
【FlutterDart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100)
【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100) 【Flutter&Dart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100) 上效果: 这个在知乎里找到的效果&…...
R语言的循环实现
以R语言的循环实现 引言 R语言作为一种强大的统计分析和数据可视化工具,广泛应用于数据科学、统计学和机器学习等领域。在R语言中,循环是一个基本的控制结构,用于重复执行一段代码。循环不仅可以提高代码的可读性,还可以方便地处…...
Web应用安全-漏洞扫描器设计与实现
摘 要 随着Web2.0、社交网络、微博等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上。Web应用的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显ÿ…...
视频生成Sora的全面解析:从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等
前言 真没想到,距离视频生成上一轮的集中爆发(详见《Sora之前的视频生成发展史:从Gen2、Emu Video到PixelDance、SVD、Pika 1.0》)才过去三个月,没想OpenAI一出手,该领域又直接变天了 自打2.16日OpenAI发布sora以来(其开发团队包…...
【已解决】如何让容器内的应用程序使用代理?
首先,按照这种配置方法,即通过在 /etc/systemd/system/docker.service.d/http-proxy.conf 中设置代理,它只会影响 Docker 守护进程本身,并不会自动影响 Docker 容器内部的软件或容器中的网络行为。 这意味着: Docker …...
DC/AC并网逆变器模型与仿真MATLAB
DC/AC并网逆变器是一种将直流电(DC)转化为交流电(AC),并将其与电网并联的设备。它的核心功能是实现直流电源(如光伏电池板或储能电池)与电网的有效连接,同时保证输出电能质量满足电网…...
P10424 [蓝桥杯 2024 省 B] 好数
题目描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。 给定一个正整数 N…...
【Word_笔记】Word的修订模式内容改为颜色标记
需求如下:请把修改后的部分直接在原文标出来,不要采用修订模式 步骤1:打开需要转换的word后,同时按住alt和F11 进入(Microsoft Visual Basic for Appliations) 步骤2:插入 ---- 模块 步骤3:输入以下代码,点击运行 Sub HighlightInsertedText() Dim r As Revision…...
oracle位运算、左移右移、标签算法等
文章目录 位运算基础与或非同或同或应用场景 异或异或应用场景 什么是真值表 oracle基础函数创建bitor(按位或)函数bitnot(按位非)函数bitxor(按位异或)函数左移函数BITSHIFT()函数(实测不可用,废弃掉该方案)右移函数(略,有此场景吗?) 实际应用资质字典…...
spring boot学习第二十三篇:Spring Boot集成RocketMQ
前置条件先安装好RocketMQ 希望在Window10安装rocketMQ并简单使用,可以参考如下文章: Window10安装rocketMQ并简单使用-CSDN博客 1、pom.xml文件里面加上依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId&…...
去掉el-table中自带的边框线
1.问题:el-table中自带的边框线 2.解决后的效果: 3.分析:明明在el-table中没有添加border,但是会出现边框线. 可能的原因: 由 Element UI 的默认样式或者表格的某些内置样式引起的。比如,<el-table> 会通过 border-collapse 或 border-spacing 等属性影响边框的显示。 4…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
