Oracle数据闪回

Oracle闪回详解(闪回查询,闪回数据,回退数据,闪回表,闪回数据库,闪回快照,闪回主备库(恢复关系),闪回归档,注意事项,有关闪回常用查询命令) 即在备库进行,开启此模式时为了在备库进行一些测试操作,而又不行留存在数据库中,当备库切换回physical standby物理备库时,之前在snapshot standby模式进行的测试将会被丢弃。如果一块数据磁盘空间无法保存某个数据时(比如以前是1k,现在update到2k,而当前块的空闲空间不足1k),则会将新的数据保存到另外一个新的块里,然后在以前的块保存一个新位置的地址连接。允许用户查询过去某个时间点的数据,用以重构由于意外删除或更改的数据,数据不会变化。如果已经做了上述操作,从库可以选择重建。 阅读详情

Oracle的闪回功能可以在对数据库进行不完全恢复的情况下,对某一个指定的表进行恢复。闪回数据库是进行时间点恢复的新方法,它能够快速将Oracle恢复到以前的时间,以更正由于逻辑数据损坏或用户错误而引起的问题。当需要恢复时,可以将数据库恢复到错误前的时间点,并且只恢复改变的数据块。

Oracle中的闪回操作包括以下4种:

(1)查询闪回:查询过去某个指定时间、指定实体的数据,恢复错误的数据库更新、删除等。

(2)表闪回:使表返回到过去的某一时间的状态,恢复表、取消对表进行的修改。

(3)删除闪回:可以将删除的表重新恢复。

(4)数据库闪回:可以将整个数据库回退到过去的某个时间点。

1、查询闪回

查询闪回可以查看过去某一时点的任何数据,如果要查询某一表在某一时点的内容,可以把查询目标对象定位为该表在某一时点的表,表在某一时刻的表可以如下表示:

table_name as of timestamp real_timestamp; --它作为一个整体表示一个表

例如,要查询person表在2024-07-12 19:00:00的状态,可以使用如下语句:

select * from person as of timestamp to_timestamp('2024-07-12 19:00:00', 'yyyy-mm-dd HH24:mi:ss');  

知道了表在某一时刻的表之后,我们就可以很容易的把表恢复到某一时刻的样子了,例如我们在2024-07-12 19:00:00这个时候删除了person表中的3条记录,之后我又想把它恢复,那应该如何恢复呢?利用查询闪回我们可以这样操作:

方法一:

第一步,把当前表中的数据全删了:delete from person;

第二步,我们通过查询闪回把2012-6-2 19:00:00这个时点之前的数据拿出来然后插入到当前表中,调用语句如下:

insert into person select * from person as of timestamp to_timestamp('2012-6-2 18:59:59', 'yyyy-mm-dd HH24:mi:ss');  

方法二:

先找出从person表中删除的记录,然后再把它们插到person表中,Sql语句如下:

insert into person select * from person as of timestamp to_timestamp('2012-6-2 18:59:59', 'yyyy-mm-dd HH24:mi:ss') p where not exists(select * from person where id=p.id);  

因为查询闪回是跟时间有关系的,所以说到这就再说一个设置,在sqlplus中输入set time on语句可以打开时间显示功能,这会使得在每次执行语句后都会在该语句的前面显示该语句的执行时间,使用set time off语句可以关闭该功能。

2、表闪回

利用表闪回可以轻松的取消对表的修改。只有Oracle的企业版才能进行表闪回。

对进行表闪回的表必须row movement为enable。

表闪回的语法格式如下:

flashback table [schema.]table_name[,...n] to {[scn] | [timestamp] [[enable | disable] triggers]};  

其中,

scn:表示系统改变号,可以从flashback_transaction_query数据字典中查询。

timestamp:表示通过时间戳的形式来进行闪回。

enable|disable triggers:表示触发器恢复之后的状态,默认为disable。

示例代码:

(1)确保需要闪回的表row movement为enable:

alter table hello enable row movement;  

(2)对表进行闪回:

flashback table hello to timestamp to_timestamp('2012-6-3 14:00:00','yyyy-mm-dd HH24:mi:ss');--恢复表到2012-6-3 14:00:00这个时候的样子

3、删除闪回

在Oracle数据库中有一个叫recyclebin的回收站,当回收站的功能是启用的时候,被用户drop的对象都会保存在recyclebin中,普通用户可以通过select * from recyclebin;语句查看被自己drop掉的对象的相关信息,当然如果普通用户想查看所有用户的recyclebin信息也是可以的,可以通过查看dba_recyclebin视图,DBA用户不存在recyclebin。来获取,如:select * from dba_recyclebin。如果被删除的对象不是彻底删除,而是放到了回收站的话,我们就可以在需要的时候从回收站中进行恢复了。

为了避免被删除的表与其他对象存在名称冲突,Oracle对被删除的对象进行了重命名,当然Oracle也保存了对象的原始名称。在进行对象恢复的时候可以使用对象的原始名称,也可以使用被重新命名的新名称。

系统参数recyclebin控制表删除后是否到回收站,show parameter recyclebin可以查看该参数的状态。

对于系统参数的修改有两种,全局的修改和会话的修改:

(1)alter system set param_name=param_value;

(2)alter session set param_name=param_value;

show recyclebin:可以显示当前用户recyclebin中的表。

purge tablespace tablespace_name:用于清空指定表空间的recyclebin;

purge tablespace tablespace_name user username:清空指定表空间的recyclebin中指定用户的对象。

purge table table_name:清除回收站中的指定表对象。如:purge table hello语句则将清除回收站中的hello表。这里的table_name既可以是原来的表对象名,也可以是

recyclebin中自动生成的名字。

purge recyclebin:删除当前用户的recyclebin中的对象。

purge dba_recyclebin:删除所有用户的recyclebin中的对象

drop table table_name purge:删除对象且不放在recyclebin中。

删除闪回的语法格式如下:

flashback table table_name to before drop [rename to new_name]; --恢复表table_name并重命名为new_name

示例代码:

flashback table hello to before drop rename to dropped_hello;  

4、数据库闪回

数据库闪回可以使数据库回到过去某一时间点或SCN的状态,用户可以不用备份就能快速地实现时间点的恢复。只有Oracle的企业版才能进行数据库闪回。

生产数据恢复系列之使用闪回查询恢复Oracle delete误删数据 使用闪回查询恢复delete误删数据 阅读详情

相关推荐

Oracle闪回技术详解

闪回技术是Oracle备份恢复机制的一部分,主要解决逻辑错误的恢复问题,无法解决物理损坏造成的故障,是一种非常实用的技术。

Ray Song 的 blog 5103

ORACLE利用闪回恢复数据

ORACLE利用闪回恢复数据测试表删除闪回

BABAJack的博客 1859

Oracle闪回数据库【Oracle闪回技术】(二)

Oracle默认是不开启闪回数据库的。如果开启闪回数据库的前提条件是,开启Oracle归档模式并启用闪回恢复区。 因为闪回日志文件存放在闪回恢复区中,如果在RAC环境下,必须将闪回恢复区存储在集群文件或者ASM文件中。

奋斗的阿杰的博客 1646

Oracle数据库闪回技术:时间倒流的魔力

闪回技术是Oracle数据库中一项强大而实用的功能,它为数据库管理员提供了一种高效、精确和安全的数据恢复和查询方法。通过闪回技术,管理员可以轻松应对误操作、数据回滚、数据审计等各种场景,确保数据库的完整性和可靠性。然而,在实际应用中,仍需根据具体情况谨慎选择和使用闪回技术,以充分发挥其优势并避免潜在的风险。

renkejia1988的博客 2123

oracle闪回数据库详解

oracle闪回技术详细整理,包括闪回数据库,闪回表,闪回版本和闪回事务 理论+实践 详细了解ORACLE的闪回技术

3475

Oracle 闪回技术恢复被删除的数据

在平时的工作中难免会遇见一些误操作的情况,特别是一些比较重要的数据,例如生产上面的数据,那么oracle 闪回 将带你走出烦恼。 一、查询误删数据: 方式1:通过scn查询误删数据 获取系统版本的scn select dbms_flashback.get_system_change_number from dual; 找到系统对应的scn闪回: select * from表1 as ...

QQ1012470073的博客 2489

Oracle 数据库闪回

Oracle 数据库闪回一、闪回技术的7个特性二、Oracle 数据库的4种SCN1.系统检查点 SCN2.数据文件 SCN3.结束 SCN4.数据文件头 SCN三、闪回操作1.查询闪回2.基于时间的查询闪回3.基于 SCN 的查询闪回4.闪回版本查询5.闪回事务查询6.表闪回7.删除闪回8.闪回数据库设置闪回数据库环境数据库闪回9.归档闪回        Oracle10g 之前的数据库系统中,当发生数据丢失、用户误操作等问题时,解决问

独醉的博客 3792

LightGBM处理类别特征和缺失值有多省心?一个真实业务数据案例带你上手

本文通过真实电商数据案例,详细解析了LightGBM如何高效处理类别特征和缺失值。相比传统方法,LightGBM仅需一行代码即可自动处理高基数类别特征和缺失值,大幅提升模型训练效率和预测准确度,特别适合业务场景中的脏数据处理。

weixin_30689307的博客 460

oracle 能闪回多久数据,oracle 数据闪回

1,闪回数据库到之前某时间点(在安装时需要开放闪回功能)不支持表空间删除select name from v$database;--看是否打开闪回功能select flashback_on,name from v$database;select name from v$bgprocess where paddr<>'00' order by 1;打开闪回功能SQL> shutdo...

weixin_35809056的博客 1863

将运算放大器(运放)用作比较器

我们研究了一些经典的运算放大器电路。这些电路中运用了负反馈,因此通常就可以使运算放大器工作在线性区域内。 但是,也可以将运算放大器用作比较器,从而使其以非线性方式工作。由于其输入受到硬驱动,因此其输出电压会对电源轨产生猛烈的冲击。如下文所示,这可能并不总是一种好的设计方法。 变为非线性 在线性应用中,可以对运算放大器做如下理想假设:无限增益和带宽、零输出阻抗、无限输入阻抗,以及输入之间为零伏。也可以将运算放大器以非线性方式使用,但有一些地方要特别注意和处理。 一种常见的配置是仅使用开环运算放大器(无反馈),

ltqdxl的博客 3万+

Autodesk激活无无网络选项?许可类型与脱机激活排查修复指南

软件许可激活是保障正版授权正常使用的核心环节,常见的授权模式包括单机版许可和网络版许可,两者在认证机制和应用场景上有所区别。单机版离线授权依托 FlexNet Licensing Service 等底层服务组件,在断网或内网环境下为用户提供可靠的技术支持与授权验证路径。然而在实际部署中,激活窗口并不总是显示“无网络激活方式”入口,这可能与许可类型选择、网络环境干扰、组件安装残留或系统时间偏差有关。理解入口的动态呈现逻辑与排查顺序,有助于在 AutoCAD、Revit 等 Autodesk 产品中高效解决脱机

weixin_28709649的博客 355

oracle 闪回查询,闪回版本查询,闪回事务查询,闪回表,闪回删除,闪回数据库

文章目录1. 闪回查询1.1. 闪回时间查询1.2. 闪回scn查询(1) 获取scn号的方法(2) 闪回scn查询命令2. 闪回版本查询3. 闪回事务查询4. 闪回表5. 闪回删除5. 1 查看回收站内的信息5. 2 彻底删除5. 3 清空回收点5. 4 通过参数 recyclebin 来启用、禁用回收站6. 闪回数据库6. 1 配置数据库为归档模式6. 2 配置闪回恢复区:6. 3 配置闪回保留时间6. 4 启用数据库闪回,在数据库 mount 状态时执行6. 5 进行闪回数据库,必须在 mount 状

不是一枚开发 7万+

QGis二次开发 —— 5.1、基于qgis开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

基于qgis开发雷达扫描、无人机飞行跟踪等

323

oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)

oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。

睡不醒的每天 3409

游戏引擎定制化:大厂如何玩转性能极限(大白话生动有趣版)

游戏大厂如何深度定制游戏引擎?本文系统解析了商业引擎的局限性及大厂定制化的核心诉求。主要内容包括: 大厂定制引擎的根本原因:性能瓶颈、差异化需求、自有生态整合等 主流引擎的优劣势对比及适用场景 定制化重点领域:渲染管线优化、物理系统重构、网络架构改造等 全流程定制方案:从需求分析到模块重构再到工具链开发 典型案例:如腾讯CF手游的渲染优化、原神的热更新系统等 文章指出,顶级游戏产品必须对引擎核心模块动刀,通过深度定制实现性能突破和创新功能开发。同时提供了风险规避建议和技术演进趋势,为游戏开发者提供了宝贵的实

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 634

heygem本地部署报错:SQLite3 can only bind numbers, strings, bigints, buffers, and null...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!    📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位大厂资深架构师和一线开发多年实战经验沉淀,

**My Coding Family** 3246

oracle闪回某个时间点的数据库,Oracle 闪回总结

一、闪回查询(Flashback Query)1、闪回查询技术1.1 闪回查询机制闪回查询是指利用数据库回滚段存放的信息查看指定表中过去某个时间点的数据信息,或过去某个时间段数据的变化情况,或某个事务对该表的操作信息等。为了使用闪回查询功能,需要启动数据库撤销表空间来管理回滚信息。1.2 撤销段(UNDO SEGMENT)简介大部分闪回技术都需要依赖撤销段中的撤销数据。撤销数据是反转DML语句结果...

weixin_36248747的博客 2190

【AI智能体】Coze 数据库从使用到实战操作详解

Coze 数据库使用到实战详解

congge 5911

Oracle 闪回数据

Oracle 闪回数据(Flashback Data)是一组功能,旨在提高数据库的可维护性和数据恢复能力。它们允许你在不需要完全恢复数据库的情况下,对数据进行快速的恢复操作。

qq_34254018的博客 551

第1课:开篇扫盲——OpenClaw是什么?能帮你解决什么问题?(入门必看)

核心目标:学会安装、卸载、管理OpenClaw技能,自定义AI代理的性格与权限,让AI贴合自己的使用习惯。核心内容技能市场详解:ClawHub市场核心技能分类(办公、学习、开发、生活),热门技能推荐(web-search、文件处理、邮件管理)[superscript:3][superscript:4]。技能安装与卸载:终端命令实操(openclaw skill install/uninstall),技能更新与版本管理[superscript:3]。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1754

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Oracle数据库闪回技术

从管理的角度为每个用户“分配”一个回收站,但这个回收站并不实际开辟空间(只是个逻辑容器),当 drop table 时(非 purge),原来的表所使用的段中的数据并没有真正的删除。从图13-14可以看出,TEST 表空间中的空闲空间又回来了,这说明如果 test 表空间不够时,使用了回收站的空间。这部分空闲空间是可以被重新利用的,实际上即使你设置了表空间 autoextend 特性,Oracle 会先使用回收站,若空间还不够,再考虑 autoextend。删除该表后再闪回表,查看索引和约束是否存在。

qq_22201881的博客 978

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

oracle能闪回多久,利用ORACLE的闪回功能恢复数据

利用ORACLE的闪回功能恢复数据一、闪回表数据从9i开始,Oracle提供了闪回(FLASHBACK)功能。使用FLASHBACKTABLE语句从撤消段中(undosegment)读取该表的过去映像,并利用Oracle9i中引入的回闪查询重建表行。UNDO_RETENTION给出了闪回支持的最小时间。也就是说,FLASHBACK最少可以支持UNDO_RETENTION给出的时间,如果系统比较闲...

weixin_34254083的博客 1466

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

oracle闪回用户,Oracle闪回技术之闪回数据库

前言:各种不同的闪回技术Oracle有4种可提供使用的不同闪回技术,每种技术的实现采用不同的底层体系结构,并且能力和限制各异,但他们之间有重叠功能。使用任何一种闪回技术的原因通常是为了纠错-了解哪种闪回技术适用于纠正那些不同类型的错误是非常重要的。闪回数据库闪回查询、事务和表闪回删除Flashback Data Archive闪回数据库-概述闪回数据库就像按下数据库上的倒带按钮,将当前数据库视为起...

weixin_39587164的博客 291

Oracle 11g 闪回数据归档

     虽然ORA-01555错误可以通过种种手段来避免和减少,但是随着时间的流逝,这些UNDO信息总会失去,那么能否将这些信息保存起来,使得数据库在一定的历史周期之内可以不断向后追溯,使得我们可以看到一个数据表在任意历史时间点上的切片呢?      从Oracle Database 11g开始,Oracle 提供了一个这样的功能:闪回数据归档(Flashback Data Archive)。通过这一功能Oracle数据库可以将UNDO数据进行归档,从而提供全面的历史数据查询,也因此Oracle引入一个新

summerycool的专栏 5136

用Oracle闪回功能恢复偶然丢失的数据

  Oracle 9i的闪回查询概述  1、Oracle 9i的闪回查询功能  在Oracle 9i之前,如果用户错误操作数据后,除了不完全恢复外,没有好的解决办法。Oracle 9i中提供闪回查询,由一个新的包DBMS_FLASH来实现。用户使用闪回查询可以及时取得误操作DML(Delete、Update、Insert)前某一时间点数据库的映像视图,用户可以利用系统时间或系统改变号(SCN:Sy

键者天行 9343

oracle之闪回技术(闪回表、闪回数据)

oracle中的闪回技术(闪回表,闪回表数据)

weixin_46093984的博客 4730
上一篇: Oracle或MySQL数据迁移到国产数据库后的注意事项
下一篇: Linux服务器LVM分区扩展
一博一言
博客等级 码龄15年 307粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值