Oracle9i使用闪回操作

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

从9i开始,Oracle提供了闪回(FLASHBACK)功能。即查找当前时间之前的某个时间点系统或表的状态。
可以闪回的最大时间和回滚空间有关。如果使用了自动管理回滚表空间,那么UNDO_RETENTION给出了闪回支持的最小时间。也就是说,FLASHBACK最少可以支持UNDO_RETENTION给出的时间,如果系统比较闲,则可以闪回更长的时间。(当然,如果回滚表空间的空间分配不足,当系统处于忙时,有可能重用还没有达到UNDO_RETENTION时间限制的数据的空间)
使用闪回的一个前提是表不能进行DDL操作。不但不能对DDL操作进行回闪,而且,也无法闪回到DDL操作以前的数据了。

Oracle提供两种方法支持闪回:
一种是使用DBMS_FLASHBACK包,这是SESSION级的回闪。执行DBMS_FLASHBACK包的ENABLE_AT_TIME或者ENABLE_AT_SYSTEM_CHANGE_NUMBER过程后,当前session处于闪回状态,此时任何的查询返回的是ENABLE_AT_TIME指定的时间点或ENABLE_AT_SYSTEM_CHANGE_NUMBER指定的SCN的时刻对应的状态。当执行DISABLE过程后,系统恢复到当前状态。
这种方法是SESSION级别,此后对任何表的任意的查询语句都返回以前某个时间点的结果。不过缺点是闪回状态下,不支持DML语句。如果用以前的某个时间点的数据恢复当前数据,则必须ENABLE_AT_TIME后,打开一个游标,然后DIABLE闪回状态,然后从游标中读取数据并插入到当前表中。
第二种方式是采用AS OF语句,这是语句级的回闪。AS OF后面可以跟TIMESTAMP或SCN。通过在查询表后面直接加AS OF时间点的方式,可以查询到那一时刻的数据。这种方法直观方便,使用于恢复个别表,或对某个表提供基于时间点的访问。
下面给出一个例子:
SQL> alter session set nls_date_format = ‘yyyy-mm-dd hh24:mi:ss’;
会话已更改。
SQL> create table t (id number, name varchar2(30));
表已创建。
SQL> insert into t values (1, ‘yangtingkun’);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select sysdate from dual;
SYSDATE

2005-01-24 23:21:23
SQL> commit;
提交完成。
SQL> commit;
提交完成。
SQL> commit;
提交完成。
SQL> commit;
提交完成。
SQL> commit;
提交完成。
SQL> select sysdate from dual;
SYSDATE

2005-01-24 23:26:05
SQL> delete t;
已删除 1 行。
SQL> commit;
提交完成。
SQL> commit;
提交完成。
SQL> exec dbms_flashback.enable_at_time(to_timestamp(‘2005-1-24 23:26:5’, ‘yyyy-mm-dd hh24:mi:ss’))
PL/SQL 过程已成功完成。
SQL> select * from t;
ID NAME


     1 yangtingkun

SQL> exec dbms_flashback.disable
PL/SQL 过程已成功完成。
SQL> select * from t;
未选定行
SQL> select * from t as of timestamp to_timestamp(‘2005-1-24 23:26:5’, ‘yyyy-mm-dd hh24:mi:ss’);
ID NAME


     1 yangtingkun

上面给出了通过两种方法实现回闪查询的方法。在上面的例子中,我在执行insert命令和delete命令直接间隔了5分钟左右,且提交了一些空事务。这样做的原因是由于Oracle把时间点映射到SCN上,大约每5分钟左右映射依次。因此两个操作间隔5分钟,且保证两个操作间SCN发生了变化,从而使Oracle可以将timestamp正确的映射到不同的SCN上。
下面给出两种不同方法是如何实现数据恢复的。
SQL> select * from t;
未选定行
SQL> declare
2 cursor c is select * from t;
3 v_record c%rowtype;
4 begin
5 dbms_flashback.enable_at_time(to_timestamp(‘2005-1-24 23:26:5’, ‘yyyy-mm-dd hh24:mi:ss’));
6 open c;
7 dbms_flashback.disable;
8 loop
9 fetch c into v_record;
10 exit when c%NOTFOUND;
11 insert into t values (v_record.id, v_record.name);
12 end loop;
13 close c;
14 end;
15 /
PL/SQL 过程已成功完成。
SQL> select * from t;
ID NAME


     1 yangtingkun

SQL> rollback;
回退已完成。
SQL> select * from t;
未选定行
SQL> insert into t
2 select * from t as of timestamp to_timestamp(‘2005-1-24 23:26:5’, ‘yyyy-mm-dd hh24:mi:ss’);
已创建 1 行。
SQL> select * from t;
ID NAME


     1 yangtingkun 
【EB-03】 AUTOSAR builder与EB RTE集成 打开EB工具后,在EB的步骤是:执行MultiTask(2)-> Mapping Component to Partitions(4)->Task Mapping(5)-> SvcAs_Trigger(7)-> Code Generation(8)如涉及新增BSW Module,也需要重复以上步骤。 阅读详情

相关推荐

Pinocchio 安装教程|机器人学的必备库

安装pinocchio,不要安装pip3 install pinocchio!

darcsdn 1660

oracle9i能闪回吗,[转]Oracle 9i的闪回查询概述

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

weixin_42489252的博客 184

最新扣子(coze)案例:在coze上用DeepSeek+私有数据库、知识库,创建你的专属智能体

Gartner预测,到2026年,70%的企业将通过Al知识库实现「组织记忆外化」。数字化时代,数据已成为企业发展的核心资产。我们通过人工智能将知识库从“静态存储"升级为“智能服务”。让"沉睡宝藏"焕发新生,助力企业突破数据困局。

weixin_72689845的博客 2163

oracle不小心删除数据并且已经提交后 恢复数据

oracle不小心删除数据并且已经提交。 一:根据时间来恢复: 1、查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点) select  to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 2、查询删除数据时间点之前的数据 select * from 表名 as

不忘初心-方得始终 4582

在MCUXpresso上通过J-link烧写KW45

背景: KW45B是nxp 的ble npi产品,其使用的IDE为MCUXpressso或者IAR,MCUXpressso有一些bug,但是由于MCUXpressso阅读查找代码相对IAR容易,所以我经常使用的MCUXpressso进行开发。当然IAR也有其优势,比如编译、烧写速度相对MCUXpressso更快,是比较通用的一个平台,而MCUXpressso是NXP独有的。 Kw45有两种烧写方式,一是使用MCUlink,二是使用Jlink。NXP ble 产品线提供的IDE资料里有最新的15.0版本的

weixin_41889258的博客 2859

【FPGA】AD9694调试注意事项

基于FPGA的AD9694设计及其注意事项,包括同步的设计注意事项

weixin_41246509的博客 2899

oracle利用as of timestamp语句找回误删除的数据

oracle利用as of timestamp语句找回误删除的数据

失之东隅,收之桑榆 3793

攻克+86手机号Discord验证墙:从“无效”到“成功”的实战指南

本文提供了一份针对+86手机号在Discord注册时频繁遭遇“手机号无效”问题的实战解决指南。文章系统分析了问题根源,并分步详解了从打造纯净网络环境、尝试多种手机号格式(如+86前加0),到更换iOS等客户端设备的有效方法,旨在帮助用户成功完成Discord手机号验证。

mac99的博客 1107

Oracle按照时间回滚数据

Oracle按照时间回滚数据 修改语句没有添加条件的情况下,我修改了全表数据 select * from 表名 as of timestamp to_timestamp(‘2021-06-08 14:50:00’,‘yyyy-mm-dd HH24:MI:SS’); 使用这个语句查询需要回滚的表,查看数据是否是自己需要的未改之前的数据 alter table t_user enable row movement; 开启 flashback table t_user to timestamp to_time

qq_35181338的博客 623

【产品】 产品设计:如何解决铝合金氧化着色后表面硬度低的问题(硬质氧化)

1、氧化处理技术 1)化学氧化 化学氧化处理所获得的膜层较薄,一般厚度为0.5μm ~4μm,质软不耐磨,抗蚀能力低于阳极氧化膜。 一般不宜单独便用,由于化学氧化膜吸附能力好,主要作用于油漆的底层,化学氧化按其溶液性可分为碱性和酸性两种。按其膜层性质可分为氧化膜,磷酸盐膜、铬酸盐膜及磷酸一铬酸盐膜等(这类型的氧化膜是可导电)。 2)电化学氧化(阳极氧化) 电化学氧化(俗称阳极氧化)是铝及...

产品线负责人 9724

rk3576 适配摄像头 (mipi 双摄)

RK3576 自带两个 4-Lane DPHY 和一个 DCPHY CSI 接口,可以连接 4lane 的双摄像头,最直接的方式就是充分利用其两个 D-PHY 接口。次选方案是 DCPHY + DPHY方案,更次之方案是单DPHY,设置成分离模式,连接两颗摄像头。

weixin_35723192的博客 388

oracle恢复修改错,oracle 恢复错误修改数据 寒冬冒冷汗!!

今天,由于一时疏忽,造成了对正式数据库修改了用户密码的情况。寒冬冒冷汗!!!立即上网找修改方法,万幸找到,也修改回来,特此在此留个记忆!!create table t_table_new----这是要新建的表asselect * from t_user---这是误操作的表as of timestamp to_timestamp(‘2018-11-25 15:00:53‘,‘yyyy-mm-dd h...

weixin_42512913的博客 196

25 - GRACE Mascon数据缺失月份数据插值

本篇基于文章的相关内容和文章公开的奇异谱分析(SSA)插值算法程序包,对grace Mascon数据种缺失的月份进行 插值 ,总结了使用程序包的相关过程,可以将该程序应用到其他数据处理插值计算中。

weixin_43339605的博客 1842

oracle9i 闪回操作

1、用timestamp select * from tab_name as of  timestamp (to_timestamp(2008060115,yyyymmddhh24mi)

zwbill的专栏 311

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Oracle Flashback 闪回查询功能操作范例(9i and 10g)

Oracle 从 9i开始提供了基于回滚段的闪回查询(Flashback Query)功能,可用于恢复错误的DML操作。在Oracle 10g中对闪回查询做了较大改进,不再局限于闪回查询,还可用于恢复错误的DDL(Drop)操作、闪回表、闪回数据库等。           Oracle9i中提供闪回查询,由一个新的包DBMS_FLASH来实现。用户使用闪回查询可以及时取得误操作DML(Delet

SimplyJava的专栏 2108

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Oracle 9i中闪回查询操作实例

在利用闪回功能前需要确认:1、用户有对dbms_flashback包有执行权限!2、进行闪回查询必须设置自动回滚段管理,在init.ora设置参数UNDO_MANAGEMENT=AUTO,参数UNDO_RETENTION=n,决定了能往前闪回的最大时间,值越大就需要越多Undo空间。Oracle 9i中闪回查询操作实例查看Oracle中Delete和Commit操作的流程分...

weixin_34015566的博客 92

关于oracle 9i的闪回的一个错误

引自: http://space.itpub.net/22275400/viewspace-626577今天学习oracle 9i的闪回操作,一开始就不明白怎么操作,开始是瞎鼓捣的,还真的找回了一次删除了的数据,庆幸了一下,不过...

ckmb78490的博客 208

oracle 9i闪回schema,Oracle9i闪回功能(flashback)

用Oracle9i闪回功能(flashback)恢复删除的数据描述了利用Oracle 9i或Oracle 10g的闪回功能进行恢复偶然丢失数据的方法。人为的错误是数据库系统失败的重要原因之一,根据调查约40%的系统问题是操作失误或者用户错误引起的,这些人为的错误又特别难以避免。传统上当发生数据丢失、数据错误问题时,解决的主要方法就是数据的导入/导出、备份/恢复技术。这些方法都需要发生数据错误之前有...

weixin_33119123的博客 190

Oracle Flashback 闪回查询功能操作范例(9i and 10g)【转】

Oracle 从 9i开始提供了基于回滚段的闪回查询(Flashback Query)功能,可用于恢复错误的DML操作。在Oracle 10g中对闪回查询做了较大改进,不再局限于闪回查询,还可用于恢复错误的DDL(Drop)操作、闪回表、闪回<a onclick="function onclick(){tagshow(event, %CA%FD%BE%DD%BF%E2);}"

JavaSky的专栏 723

Oracle 9i的闪回查询概述

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

Jack的专栏 773

Oracle 9i闪回测试。

最近读了eygle的新作,实践了一下闪回:os:windows xpdb:oracle 9.2.0.1关于闪回功能的测试,如果是正常存在的一个表,删除部分数据,可以保证数据的闪回。C:Documents and Settings...

cijiangen0848的博客 179

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

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

键者天行 9343

oracle9i能闪回吗,OracleFlashback闪回查询功能9i和10g的区别

Oracle从9i开始提供了基于回滚段的闪回查询(Flashback Query)功能,可用于恢复错误的DML操作.在Oracle 10g中对闪回查询做了较大改Oracle从9i开始提供了基于回滚段的闪回查询(Flashback Query)功能,可用于恢复错误的DML操作.在Oracle 10g中对闪回查询做了较大改进,不再局限于闪回查询,还可用于恢复错误的DDL(Drop)操作,闪回表,闪回数...

weixin_39980596的博客 109
上一篇: ORACLE中树的各种查找方法.
下一篇: 在where条件中如何使用CASE子句
SkidRow_xp
博客等级 码龄6年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值