oracle回滚误删并且commit的表

1.恢复到某个时刻

insert into qual_temp_detail select * from qual_temp_detail
as of timestamp to_date(‘2014-12-29 08:30:22‘, ‘yyyy-mm-dd hh24:mi:ss‘) 

其中qual_temp_detail是要回滚的数据表名称。 to_date函数的第一个参数是要回滚到的时间点。妈妈再也不怕我手滑了!

2. 恢复到15分钟以前

--闪回到15分钟前
select *  from orders  as of timestamp (systimestamp - interval ‘‘15‘‘ minute)  where ......
这里可以使用DAY、SECOND、MONTH替换minute,例如:
SELECT * FROM orders AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL ‘‘2‘‘ DAY) 

3.恢复到几天前

--闪回到两天前
select * from orders  as of timestamp (sysdate - 2) where......... 

4. 如果表结构已经变动

/*2.FLASHBACK DROP*/ 

  1.flashback table orders to before drop; 

  2.如果源表已经重建,可以使用rename to子句:
  flashback table order to before drop  rename to order_old_version; 

/*3.FLASHBACK TABLE*/ 

  1.首先要启用行迁移:
  alter table order enable row movement;
  2.闪回表到15分钟前:
  flashback table order  to timestamp systimestamp - interval ‘‘15‘‘ minute;
    闪回到某个时间点:
  FLASHBACK TABLE order TO TIMESTAMP    TO_TIMESTAMP(‘2007-09-12 01:15:25 PM‘,‘YYYY-MM-DD HH:MI:SS AM‘)
时间: 2025-01-15 19:42:02

oracle回滚误删并且commit的表的相关文章

oracle回滚机制深入研究

这篇文章主要描述oracle的回滚机制,篇幅可能较长,因为对于oracle的回滚机制来说,要讨论和描述的实在太多,只能刷选自己认为最有意义的一部分进行深入研究和分享 一.我们来看一个DML语句的处理过程描述 update undotest set object_type='VIEW' where object_type='PROCEDURE'; 检查shared pool中是否存在相同的语句,如果存在,重用执行计划,执行扫描运算,如果不存在,执行硬解析生成执行计划 根据执行计划中的扫描运算,检查

Oracle回滚段的概念,用法和规划及问题的解决

回滚段概述  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息. 回滚段的作用  事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值. 事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在重做日志文件中,ORA

6. Oracle 回滚(ROLLBACK)和撤销(UNDO)

转载自:http://blog.csdn.net/leshami/article/details/5731158 一.回滚(ROLLBACK)和撤销(UNDO) 回滚和前滚是保证Oracle数据库中的数据处于一致性状态的重要手段. --在9i版本以前 Oracle使用数据库中的回滚段来实现未提交数据或因系统故障导致实例崩溃时进行回滚操作 每一个表空间需要创建回滚段,各个表空间对回滚段实现各自的管理 --在9i及后续版本 提供了一种新的回滚数据的管理方式,即使用Oracle自动管理的撤销(Undo

Mysql数据库InnoDB表和MyISAM表混用后,事务回滚测试。

测试环境CENTOS7.3+MYSQL5.7 一张表使用InnoDB引擎,表名称 innodb_test 另外一张表使用MyISAM引擎,表名称 innodb_test 在事务操作的时候,看看到底会发生什么情况. 表结构相同只有3个字段id,name, money+-------+---------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-----

DDL, DML不是所有SQL都是可以自动回滚的

因为DDL没有事务性,所以DDL不能回滚. 要实现自动回滚.(begin,commit,rollback),则SQL语句中只能包括DML. 这样,自动化发布就会受限规范格式. 故而,一刀切的办法是,假定所有SQL不支持事务,自已定义好ROLLBACK的SQL脚本,在出错时能用代码回滚, 而不是依赖于数据库本身的功能. ======================== DDL和DML DDL (Data Definition Language 数据定义语言) create table 创建表 al

回滚的意义---JDBC事务回滚探究

JDBC手动事务提交回滚的常见写法一直是rollback写在commit的catch之后: try{ conn.setAutoCommit(false); ps.executeUpdate(); ps.executeUpdate(); conn.commit(); }catch(Exception e){ conn.rollback(); } 但是,这种回滚是没有意义的: 一旦commit前出错, 就不提交了, 回滚无用 一旦commit了, 说明没错, 不用回滚 找到一篇和我观点相同的文章:

oracle_回滚

为了保证数据库中多个用户间的读一致性和能够回退事务.一.在一个简单的更新语句中,对于回滚段的操作存在多处,在事务开始时,首先需要在回滚表空间获得一个事务槽,分配空间,然后创建前镜像,此后事务的修改才能进行,oracle必须以此来保证事务是可以回滚的.如果用户提交了事务,oracle会在日志文件记录提交,并且写出日志,同时会在回滚段中把事务标记为已提交:如果用户回滚事务,则oracle需要从回滚段中把前镜像数据读取出来修改数据缓冲区,完成回滚,这个过程本身也要产生redo,所以回退这个操作是很昂贵

mysql事务的提交和回滚

START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] SET AUTOCOMMIT = {0 | 1} 以上是mysql创建存储过程的官方语法.    我这里要说明的mysql事务处理多个SQL语句的回滚情况.比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要判断其

jdbc-mysql基础 引擎Innodb是支持回滚

礼悟:    好好学习多思考,尊师重道存感恩.叶见寻根三二一,江河湖海同一体.          虚怀若谷良心主,愿行无悔给最苦.读书锻炼强身心,诚劝且行且珍惜. 数据.数据,命根就在数据.云计算.AI等技术,都是以数据为基础.操作数据库一定要谨慎小心.给最苦 这里的代码,看看就好,要有自己的判断.遇到抉择,要不耻上下问,三思而后行. javaSE:8                              mysql:5.7.14     mysql-connector-java:5.1.4