`
aben_liu
  • 浏览: 28122 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

test19

阅读更多

如何恢复删除并且commit后的数据

1、现象、问题描述

经常会发生误删除数据,并且commit了。恍然醒悟!
但如何恢复呢?Oracle 9以前的版本如果在你删除之前没有对数据库完整备份的话,想恢复删除的数据比登天还难。
Oracle9 以后提供了数据库闪回功能,可以将数据库恢复到之前的某个合适的时间点。
而且提供了flashback query 功能,可以查询某个表在某个时间点的状态,即使这个表中的数据已经删除,并且commit了。
这就是用flashback恢复误删除并且commit后数据的原理。
测试如下场景:
SQL> create table t as select OBJECT_ID,object_name from dba_objects where rownum < 5;
 
Table created.
 
Elapsed: 00:00:00.42
SQL> select object_id,substr(object_name,1,15) from t;
 
 OBJECT_ID SUBSTR(OBJECT_N
---------- ---------------
        20 ICOL$
        44 I_USER1
        28 CON$
        15 UNDO$
 
Elapsed: 00:00:00.00
现在将其全部删除,并且commit:
SQL> delete from t;
 
4 rows deleted.
 
Elapsed: 00:00:00.00
SQL> commit;
 
Commit complete.
 
Elapsed: 00:00:00.01
SQL> select * from t;
 
no rows selected
 
Elapsed: 00:00:00.00

现在用flashback操作将其恢复,方法如下:
SQL> insert into t select * from t as of timestamp (systimestamp - 2/24/60);
 
4 rows created.  
SQL> select object_id,substr(object_name,1,15) from t;
 
 OBJECT_ID SUBSTR(OBJECT_N
---------- ---------------
        20 ICOL$
        44 I_USER1
        28 CON$
        15 UNDO$
 
Elapsed: 00:00:00.00

但是,有个问题是:flashback利用的是回滚段机制,将脏(已经删除)数据从回滚段中重新读出。
而回滚段是可重复利用的,所以当经过了很多事务以后,可能存放需要的脏数据的回滚段被重复利用,这样flashback对此就不再奏效了。

分享到:
评论

相关推荐

    seeven-test19

    seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19seeven-test19...

    XILINX FPGA开发板 SPARTAN6 DDR3 千兆以太网开发板VERILOG逻辑例程源码+教程30个合集.zip

    19_vga_char 20_sd_ddr_vga 21_lcd_test 22_flash_ddr_lcd 23_ov7670_vga 24_ov7670_lcd 25_ov5640_vga 26_ov5640_lcd 27_adda_test 28_dds_wave 29_ad9226_test 30_ad706_test ethernet_100 flash_ddr_vga

    BURNINTEST--硬件检测工具

    PassMark BurnInTest V5.3 Copyright (C) 1999-2008 PassMark Software All Rights Reserved http://www.passmark.com Overview ======== Passmark's BurnInTest is a software tool that allows all the major sub...

    mysql-8.0.19-winx64-debug-test.zip

    这个“mysql-8.0.19-winx64-debug-test.zip”压缩包特别针对Windows 10操作系统设计,包含了用于调试和测试的组件。 在Windows 10环境下安装MySQL 8.0.19,首先要解压缩“mysql-8.0.19-winx64-debug-test.zip”文件...

    五、Qt Model与View.zip

    在"五、Qt Model与View.zip"中,可能包含了一系列的示例代码或教程,如test18、test17、test19和test16,这些文件可能用来演示Model/View编程的不同方面。 首先,让我们深入了解Qt的Model/View架构: 1. 数据模型...

    软件测试,三角形的黒盒测试

    例如,test1、test7和test19都是针对边界值的测试,检验输入是否能正确处理。 2. 等价类划分: 等价类划分是将输入数据划分为若干个互斥的类,每个类内的数据对于揭露程序错误来说是等效的。对于三角形,我们可以...

    LMS_Test.Lab中文操作指南.pdf

    ### LMS Test.Lab中文操作指南关键知识点 #### 一、概述 LMS Test.Lab是由比利时LMS国际公司开发的一款先进的振动噪声测试与分析软件。该软件以其独特的界面设计和工作流程,为用户提供了高效且一致的数据处理能力...

    软件黑盒测试PreDate报告.pdf

    测试用例设计包括在这些边界附近的值,如Test1到Test19,确保涵盖边界情况,比如1800年、1801年、2012年、2049年、2050年,以及每个月的第一天和最后一天。 **2. 等价类划分**: - 等价类可以分为有效等价类和...

    java迷宫程序

    在这个特定的程序中,`Test19_8` 类继承自 `JFrame`,这是Swing库中的一个组件,用于创建窗口。`Test19_8` 类包含了迷宫的实现,以及两个按钮:`jbFindPath`(找到出路)和`jbClearPant`(清除路线)。 迷宫的结构...

    Standard Test Interface Language (STIL)手册

    - **1996年4月20日**,版本0.22:Tony Taylor将语言参考的所有章节重新组合成一个单一文件以便于在线使用,并且在4月18日和19日的工作组会议上达成了其他一致意见的修改。 - **1996年4月30日**,版本0.23(ALPHA-...

    interview-code test

    - 时间区间:2015-02-01 至 2038-01-19,库存量为 6000。 - **RAW_ROSE_005** - 时间区间:2014-10-01 至 2014-10-31,库存量为 18。 - 时间区间:2015-01-01 至 2015-01-31,库存量为 666。 这些数据表明了...

    PrivateTest_model

    总之,"PrivateTest_model"是一个基于TensorFlow的、用于人脸表情分类的模型,利用Google官方支持的深度学习技术,特别是VGG19网络架构。它使用FER2013数据集进行训练,以识别并分类不同的人脸表情,这一技术在多个...

    18002 ARMED Radio Policy Manager Test Plan V19.xls

    18002 ARMED Radio Policy Manager Test Plan V19.xls

    c语言C-Test-9-19.rar

    c语言C-Test-9-19.rar

    network generated by openstreetmap.zip

    至于压缩包内的"test19",这可能是生成的路网文件或者一个示例案例的名称。在SUMO中,通常会有类似命名的文件,例如,它可能是一个包含特定交通场景设置的配置文件,或者是一个包含了道路网络信息的.net文件。 总的...

    FM立体声广播解调的Matlab源代码 FM LR.zip

    - `test19.xlsx`:这可能是一个包含测试数据的Excel文件,用于验证解调算法的正确性。MATLAB可以方便地读取Excel数据,这些数据可能包括模拟FM广播信号的样本。 通过学习和理解这个MATLAB源代码,读者不仅可以掌握...

    添加、修改、删除、查询数据库中学生基本信息

    对于名为"test19"的压缩包文件,它可能包含了一个示例数据库、相关代码或测试数据,用于演示如何实现上述的CRUD操作。为了更好地理解和使用这些资源,需要解压文件并查看其中的内容,如数据库文件(可能是.db、....

    START UP AND TEST APG40.pdf

    19. “Audit Script Helpful Hints”可能提供了用于审计目的的脚本编写提示和技巧,以确保配置和操作的正确性。 20. “Communication interface”和“Using Remote Desktop”部分涉及到了远程访问和管理APG40设备的...

    msp430的pwm程序

    在"test19"这个文件中,很可能包含了实现上述功能的C语言代码,代码可能包括初始化定时器、设置PWM参数、处理中断等部分。深入理解这些代码,将有助于读者掌握如何在实际项目中运用MSP430的PWM功能。 总结来说,MSP...

    c++第8单元第19课C++-Test-8-18.rarC++-Test-8-19.rar

    "C++-Test-8-18.rar" 和 "C++-Test-8-19.rar" 压缩文件包含了一系列的练习和示例,帮助学习者巩固并提升C++编程能力。让我们详细地解析这些知识点。 1. **C++测试基础**: 在编程中,测试是至关重要的,因为它确保...

Global site tag (gtag.js) - Google Analytics