oracle的闪回查询,闪回删除:

create table t1 as select * from dba_objects;

[email protected]> select sysdate from dual;

SYSDATE

-------------------

2015-09-20 14:54:10

1 row selected.

[email protected]> delete from t1;

0 rows deleted.

[email protected]> commit;

Commit complete.

[email protected]> select count(*) from t1;

COUNT(*)

-----------------

0

1 row selected.

[email protected]> select count(*) from t1 as of timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘);

COUNT(*)

-----------------

91692

1 row selected.

[email protected]> flashback table t1 to timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘);

flashback table t1 to timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘)                *

ERROR at line 1:

ORA-08189: cannot flashback the table because row movement is not enabled

[email protected]> alter table t1 enable row movement;

Table altered.

[email protected]> flashback table t1 to timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘);

Flashback complete.

[email protected]> select count(*) from t1;

COUNT(*)

-----------------

91692

1 row selected.

注意system表空间下面的表不能闪回,不能跨越DDL语句,

[email protected]> flashback table t2 to timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);

flashback table t2 to timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘)                *

ERROR at line 1:

ORA-08185: Flashback not supported for user SYS

但是可以查询:

[email protected]>  select count(*) from t2 as of timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);

COUNT(*)

-----------------

91694

1 row selected.

可以重新建一张表或者直接insert:

[email protected]> create table t3 as select * from t2 as of timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);

Table created.

[email protected]> insert into t2 select * from t2 as of timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);

91694 rows created.

@ORA12C> commit;

Commit complete.

时间: 2024-10-14 05:49:46

oracle的闪回查询,闪回删除:的相关文章

Oracle闪回查询恢复delete删除数据

Flashback query(闪回查询)原理 Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回. Flashback query(闪回查询)前提: SQL> show parameter undo; NAME                                TYPE       VALUE ------------------------------------ ----------- --------

[课]10.1闪回查询的三种方式:闪回查询/闪回版本查询/闪回事务查询

数据库版本 1.1闪回查询演示 1.2闪回版本查询演示 1.3闪回事务查询演示 在做闪回事务查询时候,我们需要使用ORACLE提供的一个系统视图FLASHBACK_TRANSACTION_QUERY.闪回事务查询与闪回版本查询之间有着密切的关系,从刚才我们实验的闪回版本查询中可以知道有一个伪列VERSIONS_XID,那么闪回事务查询就是通过这个伪列与闪回版本查询发生关联. 我们现在查看一下该表的表结构: 开始演示:

oracle闪回查询和闪回数据库

oracle闪回查询和闪回数据库 区别: 数据闪回查询,只需要启用撤销表空间自动管理回滚信息. 使用闪回删除技术和闪回数据库技术,需要启动回收站,闪回恢复区.(归档模式使用) 具体设置: ---cmd sqlplus nolog sys as sysdba hanatech 具体设置----数据闪回查询的设置: 查看撤销表信息undo: show parameter undo; 设置撤销表信息: alter system set undo_managerment=auto;设置为auto才可以使

oracle闪回查询

一.引言 程序中用到需要同步oracle更新和删除数据,于是考虑利用oracle的闪回查询机制来实现. 利用该机制首先需要oracle启用撤销表空间自动管理回滚信息,并根据实际情况设置对数据保存的有效期,即对数据的操作保存多久? 查看撤销表信息undo: show parameter undo; 设置撤销表信息: alter system set undo_managerment=auto;设置为auto才可以使用闪回查询 alter system set undo_retention=900;

ORACLE查询闪回

在Oracle中如果错误地提交了修改操作,然后想查看修改前的值,这时候可以使用查询闪回(query flashback). 查询闪回可以根据根据一个时间值或者系统变更号(SCN)进行. 执行闪回操作,要使用户具有EXECUTE权限,下面以sys身份登录,并授权给store用户 一.时间查询闪回 用户store登录,查询customers表 select * from customers; 然后update customers set LAST_NAME=LAST_NAME || 's' ; co

oracle 闪回技术--闪回删除

1.查看是否启动闪回删除 SQL> show parameter recyclebin; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ recyclebin string on 启动闪回 2.测试闪回删除的表: 创建两个一样的表,然后都删除,进行恢复. SQL> create table edu.test_flash(id number(12),na

Oracle OCP笔记(31)使用闪回功能

Oracle OCP笔记(31)使用闪回功能 Oracle的闪回功能受到3个数据库结构之一的支持: 撤消数据.闪回恢复区和回收站. 撤消表空间中的撤销数据不仅支持事务回滚,也支持大多数闪回表操作.Flashback Data Archives允许查询先前版本的表行,它在撤销表空间之外的一个或多个表空间中提供一个区域,支持的保留期比撤销表空间还长.闪回日志保存在闪回恢复区中,从而无需执行传统的还原和恢复操作,即可方便地将整个数据库回滚到过去的时间点.每个表空间中的回收站包含一个或多个版本的已删除的

闪回查询

运行环境:SQLPLUS, SERVEROUTPUT已打开 下列语句创建了表和数据: CREATE TABLE plch_products(   id     NUMBER, name   VARCHAR2 (10))/ BEGIN   INSERT INTO plch_products (id, name)        VALUES (1, 'Mouse'); COMMIT;END;/ 我成功地编译了下列过程: CREATE OR REPLACE PROCEDURE plch_change_

【MySQL】MariaDB10.3新特性--闪回查询

MariaDB10.3新特性--闪回查询 System-Versioned表特性的引入,可以对表进行闪回.完成类似于Oracle的闪回查询. 修改已有表为System-Versioned MariaDB [zsd]> alter table test with system versioning; MariaDB [zsd]> select * from test; +------+-----------+ | id | name | +------+-----------+ | 1 | 张盛

Oracle的闪回技术--闪回错误的DML操作

提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在还原段中的时间:但是这也并不能完全保证指定的时间的数据一定能够被恢复,还原表空间没有足够的时间时,仍会覆盖要求保留的磁盘空间. 查看undo_retention的当前值: SQL> show parameter undo_retention NAME TYPE VALUE -------------